COMPRAR DUAS LISTVIEW
Alguém me pode ajudar a fazer esta comparação?
Citação::
Como você preenche os grids? DataTable? é esse um caso clássico das incontáveis vantagens da POO
Eu utilizo:
Private myCON, myCON1 As MySql.Data.MySqlClient.MySqlConnection
Private myCMD As MySql.Data.MySqlClient.MySqlCommand
Private myDRR As MySql.Data.MySqlClient.MySqlDataReader
1º Criaria-se um loop entre as colunas email de cada ListView;
2º Atribuiria-se, a cada loop, a uma variável, ovalor da coluna da ListView1 e a outra variável, ovalor da coluna da ListView2;
3º Faria-se uma comparação entre as duas variáveis para certificar se são idênticas;
4º Se NÃO forem, seta a propriedade checked = True ao item das duas ListView.
Exemplo:
Obs: Estou supondo que as duas ListView têm quantidades iquais de emails. Caso contrário, você terá de criar um tratamento para isso.
Dim EmailDoListView1, EmailDoListView2 As String
Dim ItemList1, ItemList2 as ListViewItem
For A = 0 To ListView1.Items.Count - 1
ItemList1 = ListView1.Item(A)
ItemList2 = ListView2.Item(A)
EmailDoListView1 = ItemList1.SubItems(1).Text
EmailDoListView2 = ItemList2.SubItems(1).Text
If Not EmailDoList1 = EmailDoList2 Then
ItemList1.Checked = True
ItemList2.Checked = True
End If
Next
Outra coisa, no exemplo acima eu uso [txt-color=#0000f0].SubItems(1)[/txt-color]. Isso significa que, no meu exemplo, minha coluna de emails é a SEGUNDA coluna, então você deve colocar o index que corresponde a sua coluna de emails.
Bem é isso.
Espero ter ajudado.
Citação::
Isso é questão de lógica de programação:
1º Criaria-se um loop entre as colunas email de cada ListView;
2º Atribuiria-se, a cada loop, a uma variável, ovalor da coluna da ListView1 e a outra variável, ovalor da coluna da ListView2;
3º Faria-se uma comparação entre as duas variáveis para certificar se são idênticas;
4º Se NÃO forem, seta a propriedade checked = True ao item das duas ListView.
Exemplo:
Obs: Estou supondo que as duas ListView têm quantidades iquais de emails. Caso contrário, você terá de criar um tratamento para isso.Dim EmailDoListView1, EmailDoListView2 As String
Dim ItemList1, ItemList2 as ListViewItem
For A = 0 To ListView1.Items.Count - 1
ItemList1 = ListView1.Item(A)
ItemList2 = ListView2.Item(A)
EmailDoListView1 = ItemList1.SubItems(1).Text
EmailDoListView2 = ItemList2.SubItems(1).Text
If Not EmailDoList1 = EmailDoList2 Then
ItemList1.Checked = True
ItemList2.Checked = True
End If
Next
Outra coisa, no exemplo acima eu uso [txt-color=#0000f0].SubItems(1)[/txt-color]. Isso significa que, no meu exemplo, minha coluna de emails é a SEGUNDA coluna, então você deve colocar o index que corresponde a sua coluna de emails.
Bem é isso.
Espero ter ajudado.
Obrigado Pegudo pela resposta. Acho que entendi o código que indicou em cima.
No entanto cada listview tem valores diferentes. Para que possa perceber as 2 listview:
- Listview 2: Baseada na tabela (tb_contacto) de pedido de informações (formulairo) do meu site (BD MYSQL)
- Listview 1: Baseada na tabela (tb_pedidos_contactos) onde ponho os registos que já tirei da tabela (tb_contacto) do meu site e outros registos que tinha em excel, ou seja quando recebo um pedido de informações no site tenho de passar à mão (copy/paste) para esta tabela
O que queria fazer era comprar ambas as listview (tabelas) e se houvesse um registo na litview dos contactos do site que não estivesse na outra este registo ficava marcado para depois fazer uma consulta SQL e inserir automaticamente.
Citação::
Isso é questão de lógica de programação:
1º Criaria-se um loop entre as colunas email de cada ListView;
2º Atribuiria-se, a cada loop, a uma variável, ovalor da coluna da ListView1 e a outra variável, ovalor da coluna da ListView2;
3º Faria-se uma comparação entre as duas variáveis para certificar se são idênticas;
4º Se NÃO forem, seta a propriedade checked = True ao item das duas ListView.
Exemplo:
Obs: Estou supondo que as duas ListView têm quantidades iquais de emails. Caso contrário, você terá de criar um tratamento para isso.Dim EmailDoListView1, EmailDoListView2 As String
Dim ItemList1, ItemList2 as ListViewItem
For A = 0 To ListView1.Items.Count - 1
ItemList1 = ListView1.Item(A)
ItemList2 = ListView2.Item(A)
EmailDoListView1 = ItemList1.SubItems(1).Text
EmailDoListView2 = ItemList2.SubItems(1).Text
If Not EmailDoList1 = EmailDoList2 Then
ItemList1.Checked = True
ItemList2.Checked = True
End If
Next
Outra coisa, no exemplo acima eu uso [txt-color=#0000f0].SubItems(1)[/txt-color]. Isso significa que, no meu exemplo, minha coluna de emails é a SEGUNDA coluna, então você deve colocar o index que corresponde a sua coluna de emails.
Bem é isso.
Espero ter ajudado.
Tive outra ideia de como fazer, vou encerrar este tópico e vou criar outro mais especifico