Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Duda Sobre Como Llenar Un ColumnView
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Duda Sobre Como Llenar Un ColumnView 
 
Ante todo pedir disculpas a la comunidad por si no es el sitio adecuado para crear este tema,pero no sabia muy bien donde colocarlo.

Lo primero os explico,tengo que utilizar ColumnsView en muchos de los formularios que utilizo en mi proyecto, dicho proyecto gestiona todo el proceso de un taller de costura, Entradas, Acabados de trabajos, Entregas de trabajos así como varios tipos de listados según la necesidad.

Bueno ahora os explico mi duda, en un formulario que yo llamo (FormLstPrendasXAcabar) tengo un ColumnView para mostrar los datos de la tabla, me funciona perfectamente, os pongo el código.

PUBLIC Resultado AS Result

PUBLIC SUB Form_Open()

  DIM $reg AS Integer
    
  ME.Center

  Tabla.Clear

  ModuloGeneral.Conectar()

  Tabla.Columns.Count = 9
  Tabla.Columns[0].Text = "COD-CLI"
  Tabla.Columns[0].Width = 100
  Tabla.Columns[0].Alignment = 3

  Tabla.Columns[1].Text = "*"
  Tabla.Columns[1].Width = 90
  Tabla.Columns[1].Alignment = 3

  Tabla.Columns[2].Text = "NOMBRE"
  Tabla.Columns[2].Width = 150
  Tabla.Columns[2].Alignment = 1

  Tabla.Columns[3].Text = "TELEFONO"
  Tabla.Columns[3].Width = 90
  Tabla.Columns[3].Alignment = 3

  Tabla.Columns[4].Text = "ENTRADA"
  Tabla.Columns[4].Width = 90
  Tabla.Columns[4].Alignment = 3

  Tabla.Columns[5].Text = "SALIDA"
  Tabla.Columns[5].Width = 90
  Tabla.Columns[5].Alignment = 3

  Tabla.Columns[6].Text = "PRECIO"
  Tabla.Columns[6].Width = 60
  Tabla.Columns[6].Alignment = 3

  Tabla.Columns[7].Text = "A CUENTA"
  Tabla.Columns[7].Width = 80
  Tabla.Columns[7].Alignment = 3

  Tabla.Columns[8].Text = "TRABAJO"
  Tabla.Columns[8].Alignment = 1

  Resultado = ModuloGeneral.con.Exec("select * from clientes where terminado = 'N' order by salida")
    FOR $reg = 0 TO Resultado.Count - 1 STEP +1
      Tabla.Add($reg, Resultado!cod_cli)
      Tabla[$reg][1] = ""
      Tabla[$reg][2] = Resultado!nombre
      Tabla[$reg][3] = Resultado!telefono
      Tabla[$reg][4] = Resultado!entrada
      Tabla[$reg][5] = Resultado!salida
      Tabla[$reg][6] = Resultado!precio
      Tabla[$reg][7] = Resultado!acta
      Tabla[$reg][8] = Resultado!trabajo
      Resultado.MoveNext
    NEXT
  Tabla.Refresh
  ModuloGeneral.con.Close

END


Hasta aquí todo perfecto ahora bien, y aqui es donde viene mi duda. He creado un modulo que se llama MontaTabla en el cual he puesto el siguiente código

PUBLIC Formulario AS String
PUBLIC $Condicion AS String
PUBLIC $ValorCondicion AS String
PUBLIC $Ordenacion AS String

PUBLIC SUB DatosTabla()

  DIM $reg AS Integer
  DIM Resultado AS Result
  
  ModuloGeneral.Conectar()

  Formulario.Tabla.Columns.Count = 9
  Formulario.Tabla.Columns[0].Text = "COD-CLI"
  Formulario.Tabla.Columns[0].Width = 100
  Formulario.Tabla.Columns[0].Alignment = 3

  Formulario.Tabla.Columns[1].Text = "*"
  Formulario.Tabla.Columns[1].Width = 90
  Formulario.Tabla.Columns[1].Alignment = 3

  Formulario.Tabla.Columns[2].Text = "NOMBRE"
  Formulario.Tabla.Columns[2].Width = 150
  Formulario.Tabla.Columns[2].Alignment = 1

  Formulario.Tabla.Columns[3].Text = "TELEFONO"
  Formulario.Tabla.Columns[3].Width = 90
  Formulario.Tabla.Columns[3].Alignment = 3

  Formulario.Tabla.Columns[4].Text = "ENTRADA"
  Formulario.Tabla.Columns[4].Width = 90
  Formulario.Tabla.Columns[4].Alignment = 3

  Formulario.Tabla.Columns[5].Text = "SALIDA"
  Formulario.Tabla.Columns[5].Width = 90
  Formulario.Tabla.Columns[5].Alignment = 3

  Formulario.Tabla.Columns[6].Text = "PRECIO"
  Formulario.Tabla.Columns[6].Width = 60
  Formulario.Tabla.Columns[6].Alignment = 3

  Formulario.Tabla.Columns[7].Text = "A CUENTA"
  Formulario.Tabla.Columns[7].Width = 80
  Formulario.Tabla.Columns[7].Alignment = 3

  Formulario.Tabla.Columns[8].Text = "TRABAJO"
  Formulario.Tabla.Columns[8].Alignment = 1

  Resultado = ModuloGeneral.con.Exec("select * from clientes where " & $Condicion & " = '" & $ValorCondicion & "' order by " & $Ordenacion & ")")
    FOR $reg = 0 TO Resultado.Count - 1 STEP +1
      Formulario.Tabla.Add($reg, Resultado!cod_cli)
      Formulario.Tabla[$reg][1] = "*"
      Formulario.Tabla[$reg][2] = Resultado!nombre
      Formulario.Tabla[$reg][3] = Resultado!telefono
      Formulario.Tabla[$reg][4] = Resultado!entrada
      Formulario.Tabla[$reg][5] = Resultado!salida
      Formulario.Tabla[$reg][6] = Resultado!precio
      Formulario.Tabla[$reg][7] = Resultado!acta
      Formulario.Tabla[$reg][8] = Resultado!trabajo
      Resultado.MoveNext
    NEXT
  Formulario.Tabla.Refresh
  ModuloGeneral.con.Close
END


Mi pregunta al respecto es : si yo en FormLstPrendasXAcabar en vez del código para llenar la tabla  pongo el siguiente código

ModuloGeneral.Conectar()
MontaTabla.Formulario = "FormLstPrendasXAcabar"
MontaTabla.$Condicion = "terminado"
MontaTabla.$ValorCondicion = "N"
MontaTabla.$Ordenacion = "salida"
MontaTabla.DatosTabla()


¿ Por que no me funciona este ultimo código ?

Mi intención es declarar el código de llenado una sola vez para claro está no tener código repetido en el proyecto. Gracias
 




===================
[img]http://www.gambas-es.org/files/images/990/bart_1280257146_713683.gif[/img] Estoy Donde He Llegado y He Llegadfo porque aquí Estoy
 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Sobre Como Llenar Un ColumnView 
 
Hola, la idea es buena, pero el parámetro Formulario es un String. Una cadena que referencie a un "tabla"?.
Yo lo convertiría en una clase y los parámetros que fueran Property. Cuando lo creas, buscas entre la lista de formularios y referencias el formulario (o directamente lo pasas como un parámetro Formulario As Form. Veo que Tabla siempre se llamará tabla, pero tabla no es un String es un ColumnView, por tanto tienes que pasar como parámetro el ColumnView o al recibir el parámetro convertirlo, por ejemplo:

Dim miColumn as ColumnView
miColumn = formulario.Controls["tabla"]

y entonces podrás acceder a las celdas de tabla pero como miColumn.propiedad.

Lo de crear una clase con Property puede ser rizar el rizo pero si lo vas a emplear mucho, merece la pena.

Espero haberte ayudado.

Un saludo
 



 
ahtonio - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Sobre Como Llenar Un ColumnView 
 
Las fechas, Ahtonio, las fechas, que el hilo es de 2010 y si el pobre desoijor está todavía buscando solución a su columnview es para darle un premio.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Sobre Como Llenar Un ColumnView 
 
oops

Que razón tienes.

Corramos un tupido velo (debe ser la edad)......
 



 
ahtonio - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Duda Sobre Formularios (Solucionado) kimizombie General 16 Martes, 27 Julio 2010, 23:12 Ver último mensaje
Invitado
No hay nuevos mensajes Como Colocar A Una Persona Con Un Codigo U... jousseph General 3 Miercoles, 28 Julio 2010, 20:45 Ver último mensaje
jousseph
No hay nuevos mensajes Duda Sobre Grilla Y Tabla Haseo Controles/Librerías/Componentes 4 Viernes, 04 Noviembre 2011, 04:57 Ver último mensaje
Haseo
No hay nuevos mensajes Duda Sobre Los Contenedores [Solucionado] Moriarty Controles/Librerías/Componentes 5 Domingo, 05 Junio 2016, 16:21 Ver último mensaje
Moriarty
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron