Ver Mensaje Individual
  #30 (permalink)  
Antiguo 20/04/2010, 06:08
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!


Aqui he encontrado parte del error, he cogido todo el codigo y lo he simplificado sin sentencias intermedias o rutinas para ver donde se me colapsaba y parte era debido a que al entrar los datos a la variable dia_C de .dia no he tenido en cuenta que en Horas.dat el tamaño de .dia es siempre el mismo, ya sea lunes o martes con lo que si no Trimaba el resultado lo de dia_C no era igual a lo del case es decir .:

dia_C = " lunes" y

case "lunes" ya que el primero tenia tres espacios y en el otro no, he variado esto .:

dia_C = Trim(.dia)

en vez de

dia_C = .dia

ahora se me rellena la grilla pero me falta ordenarla y que no me coja datos de una semana por otra.

Por otro lado, ahora he empezado a aplicar lo por ti comentado con funciones iniciales o modulos, he creado un modulo.bas con por ejemplo el GridponerDatos y al ejecutar el programa en la linea donde lo llamo me da el error "Procedimiento Sub o funcion no definida" ¿A que es debido eso? Lo he probado con Modulo.bas y de clase e idem de idem incluso como funcion dentro del formulario.

Aqui te pongo la parte del codigo donde lo llamo :

Código vb:
Ver original
  1. ' ---------------------------------------------------------------------------
  2. ' \\ -- Subrutina que Visualiza los datos en el MSFlexGrid
  3. ' ---------------------------------------------------------------------------
  4. Private Sub VisualizarDatos()
  5.                
  6. 'Mostramos los datos en las celdas
  7. Select Case dia_C
  8.  
  9.     Case "lunes"
  10.          GridPonerDato MSFlexGrid, 0, 0, inicio1_C
  11.          GridPonerDato MSFlexGrid, 1, 0, fin1_C
  12.          GridPonerDato MSFlexGrid, 2, 0, inicio2_C
  13.          GridPonerDato MSFlexGrid, 3, 0, fin2_C
  14.          GridPonerDato MSFlexGrid, 4, 0, inicio3_C
  15.          GridPonerDato MSFlexGrid, 5, 0, fin3_C
  16.          GridPonerDato MSFlexGrid, 6, 0, tiempo_C
  17.          
  18.          'MSFlexGrid.TextMatrix(0, 0) = inicio1_C
  19.         'MSFlexGrid.TextMatrix(1, 0) = fin1_C
  20.         'MSFlexGrid.TextMatrix(2, 0) = inicio2_C
  21.         'MSFlexGrid.TextMatrix(3, 0) = fin2_C
  22.         'MSFlexGrid.TextMatrix(4, 0) = inicio3_C
  23.         'MSFlexGrid.TextMatrix(5, 0) = fin3_C
  24.         'MSFlexGrid.TextMatrix(6, 0) = tiempo_C
  25.  
  26. 'Aqui faltan el resto de dias que son igual pero con columna diferente.
  27.      
  28. End Select
  29. End Sub

Y la parte del codigo en el Modulo es esta:

La de cabecera es identica y esta igual aunque la he de modificar pues no tengo cabecera y tampoco la llamo en ninguna parte.

Código vb:
Ver original
  1. Private Sub GridPonerDato(Grid As MSFlexGrid, Fila As Single, Columna As Single, Dato As Variant)
  2.  
  3. ' Si la fila no existe, la añadimos. La columna es de suponer que ya le hemos puesto cabecera
  4. If Grid.Rows - 1 < Fila Then Grid.Rows = Fila + 1
  5.     Grid.CellAlignment = 4
  6.     Grid.TextMatrix(Fila, Columna) = Dato
  7. End Sub

Es practicamente igual a la tuya solo le he añadido una linea para centrar los datos en la celda.

Un saludo

Última edición por XYON126; 21/04/2010 a las 02:17