USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  ordenar dados na dbgrid
D4rk Schn31d3r
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 26/01/2005 12:13 hs            
Eu tenho dados provenientes de uma consulta, dentro de uma dbgrid e quero ordená-los sempre q eu clicar no title de uma respectiva coluna em ordem alfabética, se os dados daquela coluna forem do tipo string, ou fazer uma ordenação numérica, caso os dados sejam do tipo inteiro. Como faço isso?
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/01/2005 15:17 hs            
Hummmmm, diferente do FlexGrid o DataGrid não tem a propriedade sort mas o recordset q vc deve ter linkado ao grid tem então no evento headclick do datagrid tente assim:
sendo RS como recordset
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
RS.Sort = "Campo ASC" 'Ordem Ascendente
End Sub
 
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
RS.Sort = "Campo DESC" 'Ordem Descendente
End Sub
 
Sendo "campo" o nome do campo q vc deseja ordenar os dados... aí vc pode fazer várias coisas para saber qual campo é para ordenar. Uma sugestão é fazer um vetor com os nomes dos campos então qdo vc quiser ordenar basta fazer assim:
 
campo(0) = "Nome"
campo(1) = "Data"
...
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
RS.Sort = Campo(CodIndex) & " ASC" 'Ordem Ascendente
End Sub
 
ok?? Se tiver problema é só postar
 
t+
   
D4rk Schn31d3r
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 27/01/2005 17:36 hs            
blz kra, vc me deu uma boa ajuda, aproveitei seu código e ainda fiz uma pequena modificação, para eliminar as redundâncias de ter q ficar escrevendo cada coluna de minha grid, ..., fiz dessa forma:
 
[CODE]
Private Sub Form_Load()
    gTipoOrdenacaoGrid = "DESC"
End Sub
[/CODE]
 
[CODE]
Private Sub dgrConsCliente_HeadClick(ByVal ColIndex As Integer)
    If gTipoOrdenacaoGrid = "ASC" Then
        de.rsspCliente_sps.Sort = dgrConsCliente.Columns(ColIndex).DataField & " ASC"
        gTipoOrdenacaoGrid = "DESC"
    ElseIf gTipoOrdenacaoGrid = "DESC" Then
        de.rsspCliente_sps.Sort = dgrConsCliente.Columns(ColIndex).DataField & " DESC"
        gTipoOrdenacaoGrid = "ASC"
    End If
End Sub
[/CODE]
 
fiz esse exemplo utilizando data environment (de) utilizando uma store procedure (spCliente_sps) do SQL Server 2000, uma variável global q tem q ser setada no carregamento do form, q irá determinar se a ordenação será crescente ou decrescente e um grid chamado: dgrConsCliente, ...
tenta usar as propriedades Columns(ColIndex).DataField , da sua grid, para q vc não precise ter q fazer um vetor para dizer qual é o nome do campo correspondente a cada coluna, ..., isso facilita muito!!!
Emoções
 
de qq modo, obrigado pela força
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página