DATAGRID MÊLTIPLAS SELE?ÕES

DINHORSO 30/03/2016 22:51:23
#460165
Boa noite

Estou desenvolvimento um sistema para controle de pagamentos. A idéias é ter uma DataGrid para fazer a seleção de vários recibos para poder excluir, gerar os recibos, efetuar o pagamento.

Como faço essa grid com várias seleções, verifiquei algumas dicas de colocar o checkbox junto com a grid. Como usar um checkbox junto com a grid e como fazer reconhecer as várias seleçoes para por exemplo excluir?
KERPLUNK 30/03/2016 23:30:11
#460166
Como está preenchendo o Grid?
ACCIOLLY 30/03/2016 23:32:50
#460167
para adicionar este campo no DataGridView basta clicar com o botão direito em cima de sua grid e depois em Edit Columns. Na próxima janela clique no botão add.
Depois informe um name e um HeaderText que será como um rótulo. Em Type selecione DataGridViewCheckBoxColumn.

por fim coloque seu comando de deletar numa estrutura de repetição (For). Pra percorrer linha por linha da grid. Fica +/- assim já que não estou com o vs.

Dim i As Integer

For i = 0 To dataGridView1.Rows.Count - 1
If dataGridView1.Rows(i).Cells(0).Value.ToString = [Ô]True[Ô] Then
Coloque seu comando de exclusão aqui
End If
Next i


Neste exemplo o Cells(0) representa a primeira coluna já que se trabalha com índices e o primeiro sempre é 0.

Té mais
DINHORSO 31/03/2016 10:16:17
#460176
Bom dia

Estou desenvolvimento o aplicativo em VB 6.0, ainda não migrei para o Vb.NET
ACCIOLLY 31/03/2016 10:27:50
#460178
Véi! CheckBox na grid creio que seja só no .Net. Mas se quer uma dica, porque ao invés de tentar colocar um checkbox não coloca uma coluna onde pode estar digitando um caracter Ex: [Ô]X[Ô]. Esse caracter será responsável por representar essas seleções. No mais só seguir a mesma lógica postada no VB.Net
OMAR2011 31/03/2016 11:56:52
#460185
Use o Listview do Vb6 com CheckBox.
DINHORSO 01/04/2016 00:55:38
#460234
Mudei ao invés da Grid estou usando ListBox, este é o código para preencher.
Private Sub cboClientes_Click()
Dim strClientes As New ADODB.Recordset
strClientes.Open [Ô]Select CNPJ, Nome from tbClientes where Nome=[ô][Ô] & cboClientes.Text & [Ô][ô][Ô], BaseDados

adRecibo.ConnectionString = ([Ô]DRIVER={Firebird/InterBase(r) driver};[Ô] & _
[Ô]user=SYSDBA; password=masterkey; DBNAME=[Ô] & App.Path & [Ô]\BaseClientes.fdb;[Ô])
adRecibo.CursorLocation = adUseClient
adRecibo.CommandType = adCmdText
adRecibo.RecordSource = [Ô]Select Competencia, Codigo, Vencimento, Valor, Pagamento from tbRecibo where CodCliente=[ô][Ô] & strClientes!CNPJ & [Ô][ô] order by Codigo desc[Ô]
adRecibo.Refresh
Do Until adRecibo.Recordset.EOF
lstRecibos.AddItem adRecibo.Recordset.Fields([Ô]Competencia[Ô])
lstRecibos.ItemData(lstRecibos.NewIndex) = adRecibo.Recordset.Fields([Ô]Codigo[Ô])
adRecibo.Recordset.MoveNext
Loop

End Sub

A ideia é selecionar um cliente e aparecer todos recibos emitidos para ele, assim aqueles que estiverem marcados eu posso excluir ou gerar um extrato. Usando o código abaixo só está excluindo o último registro selecionado

Private Sub cmdExcluir_Click()
BaseDados.Execute ([Ô]Delete from tbRecibo where Codigo=[Ô] & lstRecibos.ItemData(lstRecibos.ListIndex))

End Sub
DINHORSO 01/04/2016 19:53:48
#460292
Boa noite

alguém poderia me ajudar com esta solução
OMAR2011 01/04/2016 20:26:10
#460295
Preenche um listview com checkbox, ai vai selecionar todos registro desejados.
Larga este objeto data.Ele pesa muito, fora outrossssssssssssssss.
DINHORSO 03/04/2016 01:49:26
#460346
Boa noite
Depois de 3 anos sem programar em VB, realmente fazendo uma revisão em manuais realmente dei uma Upgrade no código, agora o programa está funcionando. Estou postando o código pra sugestões ou correções.

#Código para filtrar Recibos de um cliente
Private Sub cboClientes_Click()
lstRecibos.Clear
BaseDados.Execute [Ô]Delete from tbAuxRecibo[Ô]
strClientes.Open [Ô]Select CNPJ, Nome from tbClientes where Nome=[ô][Ô] & cboClientes.Text & [Ô][ô][Ô], BaseDados
strRecibos.Open [Ô]Select Competencia, Codigo, Vencimento, Valor, Pagamento from tbRecibo where CodCliente=[ô][Ô] & strClientes!CNPJ & [Ô][ô] order by Codigo desc[Ô], BaseDados

Do Until strRecibos.EOF
lstRecibos.AddItem strRecibos([Ô]Competencia[Ô])
lstRecibos.ItemData(lstRecibos.NewIndex) = strRecibos([Ô]Codigo[Ô])
strRecibos.MoveNext
Loop
strClientes.Close
strRecibos.Close

End Sub

#Codigo que filtra somente os itens selecionados
Private Sub lstRecibos_ItemCheck(Item As Integer)
If lstRecibos.Selected(lstRecibos.ListIndex) = True Then
BaseDados.Execute ([Ô]INSERT INTO tbAuxRecibo (CodigoRecibo) VALUES ([Ô] & lstRecibos.ItemData(lstRecibos.ListIndex)) & [Ô])[Ô]
ElseIf lstRecibos.Selected(lstRecibos.ListIndex) = False Then
BaseDados.Execute ([Ô]Delete from tbAuxRecibo where CodigoRecibo=[Ô] & lstRecibos.ItemData(lstRecibos.ListIndex))
End If
End Sub

Foi necessário criar um tabela temporario, para auxiliar o tratamento de dados com os itens selecionados
Tópico encerrado , respostas não são mais permitidas