Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/12/2008, 12:33
kirkem
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Datagridview ya ordenado por fecha

En el proyecto este que me creé de cero solamente con el datagridview y el botón para añadir las fechas lo hacía todo en tiempo de diseño, la creación de la columna, el estilo de la celda con el formato de fecha, etc. Solamente le insertaba en tiempo de ejecución dos fechas.

Te adjunto el código real del problema.

La configuración del la grid grdHis la hago todo por código, es este (aunque aquí no aplico el formato a la celda de la fecha si lo he hecho anteriormente pero al no funcionar la ordenación quité todo lo referente al formato de la celda de la fecha:
Código PHP:
 Me.grdHis.Columns.Add("CODHIS""Código")
        
Me.grdHis.Columns.Add("FECHIS""Fecha")
        
Me.grdHis.Columns.Add("DESHIS""Descripción")

        
Me.grdHis.Columns(0).Visible False
        Me
.grdHis.Columns(1).AutoSizeMode DataGridViewAutoSizeColumnMode.DisplayedCells 

Con esta consulta devulevo los datos en un DataTable
Código PHP:
"SELECT * FROM HIS WHERE CODHIS = " Me.txtCOD.Text " ORDER BY FECHIS;" 
Cargo los datos en una matriz que pertenece a un tipo de datos creado por mi. La variable Fila es un DataRow.
El procedimiento prcLinGridHis se encaga de asignar los datos a las columnas del datagridview.
Código PHP:
ReDim HIS(Tabla.Rows.Count)
        If 
Tabla.Rows.Count 0 Then
            i 
0
            
For Each Fila In Tabla.Rows
                With HIS
(i)
                    .
CODHIS Fila.Item("CODHIS")
                    .
CPAHIS Fila.Item("CPAHIS")
                    .
FECHIS Fila.Item("FECHIS")
                    .
DESHIS Fila.Item("DESHIS")
                    
Me.grdHis.Rows.Add()
                    
prcLinGridHis(ii)
                    
1
                End With
            Next 
Esta es la defición del tipo de dato
Código PHP:
Dim HIS as HisClin
--------------------------------
    Public 
Structure HisClin
        
Public Grabar As Boolean
        
Public CODHIS As Integer
        
Public CPAHIS As Integer
        
Public FECHIS As Date
        
Public DESHIS As String
    End Structure 
El procedimiento prcLinGridHis recibe como parámetros el índice de la matriz HIS que queremos leer y la fila de la grid donde se añadirán los datos
Código PHP:
 Private Sub prcLinGridHis(ByVal Indice As IntegerByVal Fila As Integer)

        
With HIS(Indice)
            
Me.grdHis.Item("CODHIS"Fila).Value = .CODHIS
            Me
.grdHis.Item("FECHIS"Fila).Value Format(.FECHIS"dd/MM/yyyy")
            
Me.grdHis.Item("DESHIS"Fila).Value = .DESHIS.Replace(Chr(13) & Chr(10), " ")
            If .
DESHIS <> "" Then
                Me
.grdHis.Item("DESHIS"Fila).ToolTipText = .DESHIS
            
Else
                
Me.grdHis.Item("DESHIS"Fila).ToolTipText ""
            
End If
        
End With
    End Sub 

A ver si lo conseguimos.

Gracias de nuevo. Un saludo