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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Comparar duas FlexGrid
Zork
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 25/03/2011 11:43 hs            
Bom Dia

Pessoal tenho 2 MSFLEXGRID ambos preenchidos.

Preciso preencher um TERCEIRO FLEXGRID com os DADOS que forem iguais e os que nao forem tb.

Ex:
GRID 1                                          GRID 2
JOAO ROBERTO - SP - MG              ADALBERTO   -  SP  - MG
REBECA            - SP - MG               REBECA         -  SP  -  MG  
PEDRO             - SP - MG               JOSELITA       -  SP   - MG

O terceiro GRID ficaria:
JOAO ROBERTO
REBECA
PEDRO
JOSELITA

Estou usando um codigo que comparo o PRIMEIRO Nome da GRID1 com os demais da GRID2. Se for igual COLOCO os dados na GRID 3.
Mas e se o NOME da GRID 1 nao estiver na GRID2 ? Como colocaria ele na GRID3 tb ?

Abraçosssss


   
Juan Carlos R.A
Pontos: 2843
MACEIO
AL - BRASIL
ENUNCIADA !
Postada em 25/03/2011 16:03 hs            
vc pode fazer com 2 loop ou 1.
se for de 2 loops
grava todos os iguais e depois no outro lop somente os diferentes.
   
Zork
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 25/03/2011 17:02 hs            
Juan Carlos obrigado pela resposta.

Ja estou usando dois loops. Um le o primeiro registro da GRID 1 e todo o GRID2 e depois o registro 2 da GRID1 para todos da GRID2 e por ai vai.

Mas preciso mostrar tb os que nao sao iguais.
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 28/03/2011 02:56 hs            
Coloca na Grid3, todos os registros da Grid1, depois de um Loop na Grid2 e compare com a Grid3, o que for diferente coloca. Foi isto que o Juan Carlos disse.

vlu//
   
Zork
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 28/03/2011 10:50 hs            
Juan e LCRamos obrigado pela atenção.

Eu entendi o que o Juan disse, vou postar o codigo para ver se compreendem.

If vTotalVG > vTotalAP Then
   Do While i <= vTotalVG  ---------------------------- GRID 1
     Do While t <= vTotalAP ---------------------------- GRID 2
       If grd.TextMatrix(i, 2) = grdAp.TextMatrix(t, 2) Then
          grdTotal.TextMatrix(w, 1) = grd.TextMatrix(i, 1)
          grdTotal.TextMatrix(w, 2) = grd.TextMatrix(i, 2)
          grdTotal.Rows = grdTotal.Rows + 1
          w = w + 1
          Exit Do
       Else
        'nada
       End If

       t = t + 1
     Loop
   i = i + 1
   t = 1
   Loop

End If

Acima eu comparo a primeira linha da GRID1 com a primeira da GRID 2.
Se for igual eu ponho na GRID3, se nao for eu "colocaria na GRID3" mas a cada uma linha que percorro na GRID1 eu percorro TODAS da GRID2.

Tenho certeza que estou errando em alguma parte do codigo. Se puderem dar uma força.
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 28/03/2011 18:05 hs            
Olha tenta assim, colocando uma variável pra pegar o valor da Grid1, e compara se existe na Grid3, se não existir coloque, não testei o código abaixo, mas tenta assim, considerando apenas 2 (duas) colunas nas Grids.

Coloque primeiro todo conteúdo da Grid1, na Grid3.

Depois o que existir na Grid2, e não existir na Grid3, voce coloca na Grid3


Dim sCOLUNA( 0 TO 1 ) As String
Dim linha(0 To 1) As Integer
Dim bACHOU As Boolean
For linha(0) = 1 To Grid2  '   aqui, se houver titulos na Grid2 ele ignora, senão coloca 0 (zero)
        sCOLUNA(0) = Grid2.TextMatrix(linha(0), 0)
        sCOLUNA(1) = Grid2.TextMatrix(linha(0), 1)
        bACHOU = False
        For linha(1) = 1 To Grid3
                  If Grid3.TextMatrix(linha(1), 0) = sCOLUNA(0) THEN
                            bACHOU = True
                  End If
        Next linha(1)
        If bACHOU = False Then

                   ' coloca o valor da Grid2 na Grid3, pois não existe.

        End If
Next linha(0)

Claro não testei, mas por ai, vc tem a idéia, espero que sirva.

vlu//

        


     
Página(s): 1/3      PRÓXIMA »


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