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
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
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()
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