Msflexgrid y campo varchar

Ahí va eso.
Tengo un tabla con los datos de mis clientes y me ocurre algo curioso, el campo nombre de cliente es un varchar, yo utilizo visual basic 6 y el control Msflexgrid para mostrar los datos lo curioso es que cuando muestro el nombre de un cliente que por ejemplo empiece por número como "2000 Animaciones", por defecto me alinea el nombre a la derecha, y si no empieza por numero me lo alinea a la izquierda...
Es curioso pero para resolverlo tengo que volver a recorrer el grid y alinear celda a celda lo que hace un consumo de recursos absurdo, ¿Existe alguna forma de solucionarlo?

1 respuesta

Respuesta
1
Si vas a tener que pintar las celdas vas tener que, forzosamente, recorrer la rejilla. Haz ambas cosas a la vez ya que perderás menos tiempo que averiguando algo tan raro como lo que te pasa.
Dim iRow As Integer
Dim iCol As Integer
For iRow = 0 To Me.MSFlexGrid1.Rows - 1
For iCol = 0 To Me.MSFlexGrid1.Cols - 1
Me.MSFlexGrid1.Col = iCol
Me.MSFlexGrid1.Row = iRow
Me.MSFlexGrid1.CellAlignment = flexAlignRightCenter
Next iCol
Next iRow
Si no puedo ayudarte en nada más acuérdate de finalizar la pregunta (y ponme un 4 por lo menos que si no me baja la media, je je).
He probado tu código es perfecto y funciona perfectamente con una columna pero mi programa muestra 7 columnas lo que encarece demasiado los recursos, intentare buscar la forma de que por defecto ya entren los datos alineados a la izquierda. Además al mostrar los datos y dependiendo del contenido de los mismos, las filas las pinto de un color u otro lo que riza un poco más el rizo. Pero de todos modos Tu solución es muy Buena Muchísimas Gracias por tu esfuerzo. Saludos
La verdad es que no creo que afecte el tipo de conexión aunque si el tipo de datos: ¿Has probado a convertir el campo a nvarchar?.
Otra cosa, como puede ser que te tarde tanto la alienación, yo he probado con más registros y no me tarda nada:
Dim iRow As Integer
Me.MSFlexGrid1.Col = 2
For iRow = 0 To Me.MSFlexGrid1.Rows - 1
Me.MSFlexGrid1.Row = iRow
Me.MSFlexGrid1.CellAlignment = flexAlignRightCenter
Next iRow
¿Se me escapa algo?.
No consigo repetir lo que te pasa, siempre me lo alinea a la izquierda (reconoce siempre que es texto). ¿Qué gestor de BBDD utilizas (Access, SQL Server, etc)?. Si acaso también puedes probar a cambiar el control y probar el Microsoft Hierarchical Flexgrid, que es un poco más flexible de usar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas