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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Como ordenar 3 colunas ao mesmo tempo em um Grid
Perk
não registrado
ENUNCIADA !
Postada em 12/11/2006 11:28 hs   
Preciso ordenar por três colunas ao mesmo tempo.
 
Exemplo.
Grid bagunçado                           Grid organizado
col 1       col2     col3                   col1       col2     col3
  1            2         1                      1          1          2
  2            1         1                      1          2          1
  1            1         2                      2          1          1
  4            2         1                      3          1          2
  3            1         2                      4          1          2
  4            1         3                      4          1          3
  4            1         2                      4          2          1
 
Preciso que elas sejam organizadas através de sort, pois estou alterando os dados do grid e organizando de novo, e não trazendo eles do banco de forma desorganizada.
   
Shel
GOIÂNIA
GO - BRASIL
ENUNCIADA !
Postada em 12/11/2006 14:17 hs         
não conseguir ver uma sequência/organização no novo grid....
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 13/11/2006 12:37 hs            
tem sequencia sim...a ordem é 1a coluna, segunda coluna e depois 3a coluna
observe q a coluna 1 está na ordem correta; a coluna 2 ordena-se sem alterar a coluna 1 e a coluna 3 idem observe os negritos...
1            1          2
1                   1
2          1          1
3          1          2
4          1          2
                  3
4          2          1
infelizmente eu não uso o dbgrid ...eu faria esta organização usando array
 
   
Perk
não registrado
Postada em 13/11/2006 14:54 hs   
E como seria desta outra forma PH1959 ?
 
Mesmo usando ela daria para mostrar num dbgrid ? É que elas devem ficar à mostra na tela, podendo ser alteradas, excluída, ou incluídas novas. E só depois tudo ser gravado no BD
     
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 14/11/2006 10:59 hs            
monta o array..
para o caso aí, primeiramente precisamos saber:
1 qual a qtde total de itens na lista
2- qual o maior valor q irá cair em cada coluna..(1 dígito ? 2? 3?...qtos digitos no máximo por coluna?) se for um é moleza..
vou dar um ex baseada na tabela acima ok?
em declarations
dim lista as variant
dim lista1 as variant
 
No procedure...
private sub organiza()
redim lista(N) as variant    ' Para o caso acima N=7
redim lista1(N) as variant    ' Para o caso acima N=7
supondo q vc esteja carregando os dados de uma tabela...
ssql="select * from tabela blablabla......
set tabela=banco.openrecordset(ssql,dbopensnapshot)
k=0
do until tabela.eof
          k=k+1
           lista(k)=format(tabela("Campo1"),"0")   'OBSERVA Q ESTOU USANDO 1DIGITO
           lista(k)=lista(k) & format(tabela("Campo2"),"0")  
           lista(k)=lista(k) & format(tabela("Campo3"),"0")  
'OS VALORES dos 3 campos foram concatenados
tabela.movenext
loop
tabela.close
 
agora acertando os valores na sequencia...
n1=n
 
for i=N1 to 1
        for j=1 to N
                 if j=1 then
                     a=val(lista(j))
              else
                  if a < val(lista(j) then
                     a=val(lista(i)
                     else
                       if j=n then
                           lista1(i)=a   ' AQUI o Maior Valor é armazenado na lista1
                       
                            exit for         ' aqui sai do For j               
                         endif
                   endif
                endif
            next j
 next i         
       
 
 Não testei este código... mas já fiz um parecido em outra ocasião..(Era um pokinho + complicado)... depois é só refazer as colunas usando mid$
     
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