Autor Tema: Como mejorar esta funcion para ordenar un Datagrid  (Leído 2656 veces)

0 Usuarios y 1 Visitante están viendo este tema.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Como mejorar esta funcion para ordenar un Datagrid
« en: Octubre 01, 2011, 12:09:32 am »
Necesito ordenar las columnas de un datagrid al hacerle click en la cabecera de cada campo, encontre este codigo y funciona pero tengo 10 formularios y tendria que copiar el codigo en cada uno sin mencionar que el numero de campos de cada tabla es diferente, en el ejemplo que coloco es para cuando hay 2 campos.

Estoy intentando crear una funcion en un .bas que funcione mas o menos asi pero no he tenido buenos resultados, todavia estoy verde:
Funcion_Ordenar_cabecera(MiRecordset as recordset,NumeroDeCampos as integer)

Código: [Seleccionar]

Dim tb1_rs as Recordset
Private Sub Datagrid1_HeadClick(ByVal ColIndex As Integer)
With tb1_rs
     If (.Sort = .Fields(ColIndex).[Name] & " Asc") Then
        .Sort = .Fields(ColIndex).[Name] & " Desc"
     Else
        .Sort = .Fields(ColIndex).[Name] & " Asc"
     End If
End With
End Sub

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Como mejorar esta funcion para ordenar un Datagrid
« Respuesta #1 en: Octubre 01, 2011, 12:16:50 am »
No uso Datagrid, uso el MSHFlexgrid, y para ordenar uso también una función que ordena el grid, pero en la función le paso también el control. No te sirve pasarle el control a tu función también?. De esta manera solo repites una linea de código (la que llama a la función).

Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Como mejorar esta funcion para ordenar un Datagrid
« Respuesta #2 en: Octubre 01, 2011, 12:30:36 am »
Si podria pasarle como parametro el control para hacerlo en una sola linea al parecer tuve un lapsus brutus.
« última modificación: Octubre 01, 2011, 02:36:00 am por lucius »