• Jueves 2 de Mayo de 2024, 22:22

Autor Tema:  Problemas Con Msflexgrid  (Leído 1774 veces)

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Problemas Con Msflexgrid
« en: Martes 9 de Marzo de 2004, 17:56 »
0
Hola amigos, tengo el siguiente problema. Realizo unos calculos en varias celdas de un msflexgrid. Pero en la ultima columna, me incrementa varias columnas vacias, las cuales no deberian aparecer.

Les muestro el codigo por si alguien encuentra el error.

Código: Text
  1.  
  2.  
  3. Private Sub Command1_Click()
  4. Call Estado_Refrescar60
  5.  
  6. Dim SG, SG60 As Single
  7. Dim T As Single
  8. Dim c, R As Integer
  9. Dim BT As Integer
  10.  
  11. BT = 60
  12.  
  13.  
  14. Call Estado_Comp
  15.  
  16. If ((a1.text <> "") And (a2.text <> "") And (t1.text <> "") And (t2.text <> "")) Then
  17. a1.text = Format(a1.text, "#,##0.0000")
  18. a2.text = Format(a2.text, "#,##0.0000")
  19. t1.text = Format(t1.text, "#,##0.0")
  20. t2.text = Format(t2.text, "#,##0.0")
  21.  
  22.     tabla.Cols = (a2 - a1) * 1000
  23.     tabla.Rows = (t2 - t1) * 2 + 2
  24.    
  25.     tabla.TextMatrix(0, 0) = "Temp.°F"
  26.    
  27.     T = t1
  28.     R = 0
  29.     While (T <= t2)
  30.        
  31.         SG = a1
  32.         c = 0
  33.         While (SG <= a2)
  34.    
  35.             If (c = 0) Then
  36.                 tabla.Col = c
  37.                 tabla.Row = R + 1
  38.                 tabla.text = T
  39.             End If
  40.             If (R = 0) Then
  41.                 tabla.Col = c + 1
  42.                 tabla.Row = R
  43.                 tabla.text = SG
  44.             End If
  45.                
  46.             SG60 = calcular_SG(SG, T)
  47.            
  48.                            
  49.             tabla.Col = c + 1
  50.             tabla.Row = R + 1
  51.             tabla.text = SG60
  52.             tabla.text = Format(tabla.text, "#,##0.0000")
  53.                            
  54.                                      
  55.                
  56.            
  57.             SG = SG + 0.002
  58.             c = c + 1
  59.            
  60.         Wend
  61.    
  62.    
  63.         T = T + 0.5
  64.         R = R + 1
  65.     Wend
  66.    
  67.    
  68.  
  69.  
  70.  
  71. Else
  72. Call Estado_Datosporc
  73. End If
  74.  
  75. End Sub
  76.  
  77.  

Gracias por su ayuda

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #1 en: Martes 9 de Marzo de 2004, 20:01 »
0
Seria mejor si enviaras los archivos del programa para evaluarlo mejor y asi poder detectar mas facilmente el error...

 :comp:
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #2 en: Martes 9 de Marzo de 2004, 20:46 »
0
Ok. Aqui adjunto el proyecto para ver si puede decirme donde esta el error que les comente hace rato.

Gracias.

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #3 en: Martes 9 de Marzo de 2004, 20:51 »
0
Ok. Aqui adjunto el proyecto para ver si puede decirme donde esta el error que les comente hace rato.

Gracias.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #4 en: Miércoles 10 de Marzo de 2004, 07:15 »
0
Hola rechy!

Por lo que pude observar las casillas en blanco te las esta generando la siguiente instruccion...

Código: Text
  1.  
  2.       tabla.Cols = (a2 - a1) * 1000
  3.       tabla.Rows = (t2 - t1) * 2 + 2
  4.  
  5.  


Cuando multiplicas por 1000 al parecer estas generando mas columnas de las que necesitas, si te das cuenta cuando colocas en densidad relativa de 1 a 3, le dices a la Tabla que coloque 2000 columnas y tu programa le esta asignando " " a estas columnas que aparecen vacias, osea que no hay nada malo con el MsFlexGrid

Te aconsejo que en lugar de hacerlo de esta forma utilices la funcion AddNew del MsFlexGrid


:devil: --------------------------- :angel:
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #5 en: Miércoles 10 de Marzo de 2004, 15:32 »
0
Hola. Asi es ahi, es donde me crea las columnas de mas. Pero si no lo multiplico por 1000, no me aparece mas que 1 columna. No se que hacer. Ya le he movido a todo y no se como implementar la función ADDNEW del Msflexgrid que me comentas, gracias de todas formas.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #6 en: Miércoles 10 de Marzo de 2004, 16:16 »
0
Hola rechy.

No he examinado a fondo tu codigo, pero...

Podrías usar el método AddItem, pero esto inserta una fila en el flexgrid. Lo que puedes hacer es controlar cuando te hace falta una nueva columna y añadirla en el momento: MsFlexGrid1.Cols=MsFlexGrid1.Cols + 1, en lugar de añadir todas las columnas previamente. Lo mismo podrías hacer con las filas.

Chao.

roxiii

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #7 en: Miércoles 10 de Marzo de 2004, 19:19 »
0
Hola,tiene razon Brroz, cada vez que tienes que asignar la columna de tu rejilla asi:

tabla.Col = c + 1

comprueba si tabla.cols es menor o igual que c asi:

if tabla.cols<=c+1 then
   tabla.cols=tabla.cols+1
   tabla.Col = c + 1
endif

de esta forma la cantidad de  columnas crecera a la necesidad de tus datos

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #8 en: Jueves 11 de Marzo de 2004, 07:52 »
0
Hola rechy!!!

Ya consegui la soluciona tu problema lo unico que tienes que hacer es la formula de tu programa, es una tonteria pero funciona perfectamente.... en tu codigo tienes

Código: Text
  1.  
  2.     tabla.Cols = (a2 - a1) * 1000
  3.  
  4.  

Pues bien lo que tienes que hacer es cambiarlo por este

Código: Text
  1.  
  2.     tabla.Cols = ((a2 - a1) * 1000 / 2) + 2
  3.  
  4.  

Y todo esta listo, te agrega solo las columnas que necesitas y ya no tienes mas las columnas en blanco... Tiene razon cuando dicen que las soluciones mas faciles son las mas dificiles de encontrar.

Si tienes instalada la ayuda de VB leer un poco sobre los MSFlexGrid y sobre todo la propiedad FormatString y el metodo AddNew que tambien te habrian podido solucionar este problema pero fuera sido un poco mas fastidioso... :comp:

:devil: --------------------- :angel:
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Re: Problemas Con Msflexgrid
« Respuesta #9 en: Jueves 11 de Marzo de 2004, 17:42 »
0
Muchas gracias. Era exactamente lo que queria y no podia hacerlo. Asi como dices, lo mas facil resulta ser lo mas dificil.

Gracias de nuevo.

Nos vemos