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
|
|
|
|
|
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
|
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.
|
|
|
|
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//
|
|
|