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 29/03/2011 14:38 hs            
Ramos confesso que achei um pouco confuso o codigo.

Tentei adaptar sua ideia mas nao consegui.

Fiz o seguinte, todo o valor igual entre as 2 GRIDs em marquei um X. Consequentemente os que nao tiverem o X eu pego depois em um outro loop.

Consegui resolver dessa forma, mas nao creio ser a certa.

Se tiverem alguma ideia.......
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 29/03/2011 15:49 hs            
Ok, faça o seguinte, me passa as informações abaixo, eu te mando o código pronto;

No código, vou preencher somente a Grid3, partindo do fato que a Grid1, e Grid2, estarem preenchidas.
Quantas colunas tem as Grids ?
Que tipo de dados vai em cada coluna (Double, String, Integer, Boolean)  ?
Na linha 0 das Grids vai títulos ?
Mande as informações, que te envio uma rotina pronta, você pode colocar em qualquer evento, mas sugiro que seja no evento Change, do Grid1 ou Grid2, ou em ambos.

vlu//
   
Zork
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 29/03/2011 15:55 hs            
Ramos obrigado!

Vamos lá.

A GRID1 tem 22 colunas
A GRID2 tem 15 colunas
A GRID3 tem 18 colunas.

*Nem todas as colunas da GRID 1 e 2 vao para a GRID3.

Os dados sao String.

Sim em todas as GRID acompanha TITULOS.

Obrigado Ramos.  Nem sempre da forma que fazemos quer dizer que é a forma certa, mas sempre tem um jeito certo de se fazer. kkkkk
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 31/03/2011 22:36 hs            
VEJA, PARTINDO DO PRINCIPIO QUE VC TEM A Grid3, PREENCHIDA COM OS DADOS DA Grid1.

Dim sCOLUNA(0 TO 1) As String
Dim iLINHA(0 To 2) As Integer
Dim bACHOU As Boolean
     iLINHA(2) = Grid3.Rows
     If Grid1.Rows > 0 Then
          For iLINHA(0) = 0 To Grid1.Rows
               If iLINHA(0) > 0 Then
                   sCOLUNA(0) = Grid1.TextMatrix(iLINHA(0), 0)
                   sCOLUNA(1) = Grid1.TextMatrix(iLINHA(0), 1)
                   bACHOU = False
                      If Grid2.Rows > 0 Then
                         For iLINHA(1) = 0 To Grid2.Rows
                                If iLINHA(1) > 0 Then
                                      If Grid2.TextMatrix(iLINHA(1), 0) = sCOLUNA(0) Then
                                           If Grid2.TextMatrix(iLINHA(1), 1) = sCOLUNA(1) Then
                                               bACHOU = True
                                           End If
                                    End If
                                 Else
                                    bACHOU = True
                                 End If
                                 If bACHOU = False Then
                                       iLINHA(2) = (iLINHA(2) + 1)
                                   Grid3.Rows = iLINHA(2)
                                   Grid3.TextMatrix(iLINHA(2), 0) = sCOLUNA(0)
                                   Grid3.TextMatrix(iLINHA(2), 1) = sCOLUNA(1)
                                 End If
                          Next iLINHA(1)
                        End If
                  End If
          Next iLINHA(0)
     End If
     Grid3.Refresh

Bem, fiz isto no Bloco de Notas, portanto sem teste, mas deve funcionar, salvo algum erro na digitação, e também está ai a lógica para você melhorar.

vlu//
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 31/03/2011 22:38 hs            
Agora você incrementa as variáveis das colunas, alternando as colunas que quer comparar, e colocar na Grid3.

vlu//
   
Zork
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/04/2011 10:09 hs            
Ramos obrigado, coloquei para testar e me deu um erro que fiquei em duvida.

For iLINHA(1) = 0 To grdAp.Rows

Nessa Linha diz que eu ja tenho essa variavel declarada. Porem vc esta usando o indice 1, mas o VB aponta que ja tem um FOR usando a variavel iLINHA.  Tenho de criar outra variavel ?
   
Página(s): 2/3     « ANTERIOR    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