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
|
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
|
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
|
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 ?
|
|
|
|