Hola erbunson"
He probado lo antes comentado y me da el error "No se ha definido el tipo definido por el usuario" :
Código vb:
Ver originalPublic Sub GridCabecera(Grid1 As MSFlexGrid1, Grid2 As MSFlexGrid2, Columna As Single, AnchoTwips As Single, Titulo As String, Ajuste As String)
' Si la Columna no existe, la añadimos ya que de lo contrario se produciría un error
If Grid1.Cols - 1 < Columna Then Grid1.Cols = Columna + 1
Grid1.ColWidth(Columna) = AnchoTwips
Select Case UCase(Ajuste)
Case "I": Grid1.ColAlignment(Columna) = 1 ' Izquierda
Case "D": Grid1.ColAlignment(Columna) = 7 ' Derecha
Case "C": Grid1.ColAlignment(Columna) = 4 ' Centro
End Select
If Grid2.Cols - 1 < Columna Then Grid2.Cols = Columna + 1
Grid2.ColWidth(Columna) = AnchoTwips
Select Case UCase(Ajuste)
Case "I": Grid2.ColAlignment(Columna) = 1 ' Izquierda
Case "D": Grid2.ColAlignment(Columna) = 7 ' Derecha
Case "C": Grid2.ColAlignment(Columna) = 4 ' Centro
End Select
Grid1.Row = 0
Grid1.Col = Columna
Grid1.CellAlignment = 4 ' Título siempre Centrado
Grid1.Text = Titulo
Grid2.Row = 0
Grid2.Col = Columna
Grid2.CellAlignment = 4 ' Título siempre Centrado
Grid2.Text = Titulo
End Sub
Private Sub GridPonerDato(Grid1 As MSFlexGrid1, Grid2 As MSFlexGrid2, Fila As Single, Columna As Single, Dato As Variant)
' Si la fila no existe, la añadimos. La columna es de suponer que ya le hemos puesto cabecera
If Grid1.Rows - 1 < Fila Then Grid1.Rows = Fila + 1
Grid1.TextMatrix(Fila, Columna) = Dato
If Grid2.Rows - 1 < Fila Then Grid2.Rows = Fila + 1
Grid2.TextMatrix(Fila, Columna) = Dato
End Sub
Por lo que creo que no se declara asi que se comporta como una subrutina
¿Como identifico los MsFlexgrid en el modulo o hay que hacerlos todos?.
Por otro lado y volviendo al apartado de este codigo tuyo (solo un trozo como ref.)
Código vb:
Ver originalOption Explicit
Private Type CamposClientes
Codigo As String * 10
Nombre As String * 40
Domicilio As String * 40
Poblacion As String * 40
' Posiciones disponibles en el Registro. Con esto consigo la longitud deseada, por ejemplo 256
Libres As String * 126
End Type
Dim RegistroClientes As CamposClientes
e
Consigues la longitud deseada, en este caso 256; en mi caso donde tengo variables String, Date, Integer y ademas no siempre se llenan todos los campos, aunque conozcamos el tamaño en bytes que asigna VB a cada tipo de variable, no es siempre de longitud igual por el String con lo que tu rutina la he de adaptar para registros de tamaño aleatorio, ¿Es asi, no?
Y como ultima consulta, en el codigo :
Código vb:
Ver originalFicheroClientes "registros", Registros
For Registro = 1 to Registros
FicheroClientes "leer", Registro
' Procesar el registro leido
Next
Segun la subrutina
FicheroClientes le deberiamos especificar la Opcion y un número de registro, entonces
Registros entiendo que te refieres a ese número de registro(1, 22, 33, etc) o en su defecto a la variable
Registro es decir le sobra la "s" de Registros, ¿Es asi?
Un saludo