Ver Mensaje Individual
  #21 (permalink)  
Antiguo 15/04/2010, 01:45
Avatar de XYON126
XYON126
 
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Importar de un .dat o txt a MSFlexGrid

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 original
  1. Public Sub GridCabecera(Grid1 As MSFlexGrid1, Grid2 As MSFlexGrid2, Columna As Single, AnchoTwips As Single, Titulo As String, Ajuste As String)
  2.  
  3. ' Si la Columna no existe, la añadimos ya que de lo contrario se produciría un error
  4. If Grid1.Cols - 1 < Columna Then Grid1.Cols = Columna + 1
  5.     Grid1.ColWidth(Columna) = AnchoTwips
  6.     Select Case UCase(Ajuste)
  7.       Case "I": Grid1.ColAlignment(Columna) = 1 ' Izquierda
  8.      Case "D": Grid1.ColAlignment(Columna) = 7 ' Derecha
  9.      Case "C": Grid1.ColAlignment(Columna) = 4 ' Centro
  10.    End Select
  11. If Grid2.Cols - 1 < Columna Then Grid2.Cols = Columna + 1
  12.     Grid2.ColWidth(Columna) = AnchoTwips
  13.     Select Case UCase(Ajuste)
  14.       Case "I": Grid2.ColAlignment(Columna) = 1 ' Izquierda
  15.      Case "D": Grid2.ColAlignment(Columna) = 7 ' Derecha
  16.      Case "C": Grid2.ColAlignment(Columna) = 4 ' Centro
  17. End Select
  18.  
  19.    Grid1.Row = 0
  20.    Grid1.Col = Columna
  21.    Grid1.CellAlignment = 4                     ' Título siempre Centrado
  22.   Grid1.Text = Titulo
  23.  
  24.    Grid2.Row = 0
  25.    Grid2.Col = Columna
  26.    Grid2.CellAlignment = 4                     ' Título siempre Centrado
  27.   Grid2.Text = Titulo
  28. End Sub
  29.  
  30. Private Sub GridPonerDato(Grid1 As MSFlexGrid1, Grid2 As MSFlexGrid2, Fila As Single, Columna As Single, Dato As Variant)
  31. ' Si la fila no existe, la añadimos. La columna es de suponer que ya le hemos puesto cabecera
  32. If Grid1.Rows - 1 < Fila Then Grid1.Rows = Fila + 1
  33.     Grid1.TextMatrix(Fila, Columna) = Dato
  34. If Grid2.Rows - 1 < Fila Then Grid2.Rows = Fila + 1
  35.     Grid2.TextMatrix(Fila, Columna) = Dato
  36.    
  37. 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 original
  1. Option Explicit
  2.  
  3. Private Type CamposClientes
  4.   Codigo As String * 10
  5.   Nombre As String * 40
  6.   Domicilio As String * 40
  7.   Poblacion As String * 40
  8.   ' Posiciones disponibles en el Registro. Con esto consigo la longitud deseada, por ejemplo 256
  9.  Libres As String * 126
  10. End Type
  11.  
  12. Dim RegistroClientes As CamposClientes
  13. 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 original
  1. FicheroClientes "registros", Registros
  2. For Registro = 1 to Registros
  3. FicheroClientes "leer", Registro
  4. ' Procesar el registro leido
  5. 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

Última edición por XYON126; 15/04/2010 a las 04:04