VB6 - SOMAR LISTVIEW COM CHECKBOX
Boa noite amigos
estou usando a função abaixo para somar uma coluna do listview, funciona perfeitamente, porem preciso adapta-la para somar somente os itens que eu selecionar o check box (do proprio listview)
alguem tem alguma ideia de como fazer?
Alterado para compatibilidade correta. (Jonathan Stecker)
estou usando a função abaixo para somar uma coluna do listview, funciona perfeitamente, porem preciso adapta-la para somar somente os itens que eu selecionar o check box (do proprio listview)
Citação:Function ComputeAmount() As String
Dim X As Long
Dim total As Double
For X = 1 To ListView1.ListItems.Count
total = (total + ListView1.ListItems(X).SubItems(2))
Next X
ComputeAmount = Format(total, [Ô]###,##0.00[Ô])
End Function
alguem tem alguma ideia de como fazer?
Function ComputeAmount() As String
Dim X As Long
Dim total As Double
For X = 1 To ListView1.ListItems.Count
if ListView1.ListItems(X)..Checked = True then
total = (total + ListView1.ListItems(X).SubItems(2))
End if
Next X
ComputeAmount = Format(total, [Ô]###,##0.00[Ô])
End Function
amigo perfeito funcionou certinho!
ontem fiz parecido e dava erro, devo ter trocado algo....
aproveitando, vou precisar atualizar os itens selecionados no banco de dados, como sou iniciante estou pensando ainda em como fazer isto. penso que preciso relacionar os items selecionados em um textbox ou em variaveis.
tens ideia de como poderia fazer isso? ja tenho uma rotina de update, so preciso adapta-la.
em resumo é esta:
obrigado!
ontem fiz parecido e dava erro, devo ter trocado algo....
aproveitando, vou precisar atualizar os itens selecionados no banco de dados, como sou iniciante estou pensando ainda em como fazer isto. penso que preciso relacionar os items selecionados em um textbox ou em variaveis.
tens ideia de como poderia fazer isso? ja tenho uma rotina de update, so preciso adapta-la.
em resumo é esta:
Citação:con.Execute [Ô]Update TB_EST_PRODUTO Set QTD_ATUAL=[ô][Ô] & nova & [Ô][ô][Ô] & [Ô] Where ID_IDENTIFICADOR=[ô][Ô] & cod & [Ô][ô][Ô]
obrigado!
Private Sub AtualizaItens()
Dim X As Long
Dim nova As Integer, cod As Integer
For X = 1 To ListView1.ListItems.Count
if ListView1.ListItems(X)..Checked = True then
cod = ListView1.ListItems(X).SubItems(0)
nova = ListView1.ListItems(X).SubItems(2)
con.Execute [Ô]Update TB_EST_PRODUTO Set QTD_ATUAL=[Ô] & nova & [Ô] Where ID_IDENTIFICADOR=[Ô] & cod
End if
Next X
End Function
otimo amigo deu bem certo!
so pra finalizar estou tentando fazer uma validação pra ver se nenhum checkbox do listview foi selecionado, mas nao esta dando certo, alguem tem alguma ideia?
gera alguns erros de [ô]index of bounds, etc[ô]
obrigado!
so pra finalizar estou tentando fazer uma validação pra ver se nenhum checkbox do listview foi selecionado, mas nao esta dando certo, alguem tem alguma ideia?
gera alguns erros de [ô]index of bounds, etc[ô]
obrigado!
Como você esta fazendo isso?
opa
algo assim:
precisava q ele verificasse tipo, se ao menos 1 item nao estiver selecionado gera o msgbox.
obigado!
algo assim:
Citação:If ListView1.ListItems(0).Checked = False Then
MsgBox [Ô]Nenhum item selecionado![Ô]
Else
Call faturapergunta
End If
precisava q ele verificasse tipo, se ao menos 1 item nao estiver selecionado gera o msgbox.
obigado!
Private Function VerificaSelecao() As Boolean
Dim X As Long, bOK As Boolean
bOK = False
For X = 1 To ListView1.ListItems.Count
if ListView1.ListItems(X).Checked = True then
bOK = True
End if
Next X
End Function
[ô]Para chamar a função faça assim
if Not VerificaSelecao() Then
MsgBox [Ô]Nenhum item selecionado![Ô]
End if
nao usei a função e chamar, usei direto na sua funçao ai funcionou, se eu chamar ele entende se foi ou nao selecionado mas gera msgbox de qlq forma...mas deu cert
vou precisar abusar da sua boa vontade, mas agora percebi um detalhe, o programa que estou fazendo vai marcar as ordens de serviço como faturadas, esta funcionando tudo certo.
o detalhe eh q o banco de dados nao fui eu que criei, e ele grava id_os repetidos para valores diferentes, existe a função que soma o que foi selecionado (que vcs me ajudaram a faze-la), um timer fica somando tudo o que é selecionado. porem preciso adaptar para que se por exemplo, existirem 2 itens com valores iguais na coluna X, quando eu selecionar o primeiro os outros sao selecionados sozinhos, ai meu timer vai conseguir calcular o valor final da OS.
é possivel?
obrigado!
vou precisar abusar da sua boa vontade, mas agora percebi um detalhe, o programa que estou fazendo vai marcar as ordens de serviço como faturadas, esta funcionando tudo certo.
o detalhe eh q o banco de dados nao fui eu que criei, e ele grava id_os repetidos para valores diferentes, existe a função que soma o que foi selecionado (que vcs me ajudaram a faze-la), um timer fica somando tudo o que é selecionado. porem preciso adaptar para que se por exemplo, existirem 2 itens com valores iguais na coluna X, quando eu selecionar o primeiro os outros sao selecionados sozinhos, ai meu timer vai conseguir calcular o valor final da OS.
é possivel?
obrigado!
consegui usando a função abaixo:
ele seleciona todos os itens que sao iguais, porem não me permite desmarca-los
alguem sabe porque?
posso ir marcando os proximos ele verifica e marca os iguais, mas nao deixa desmarcar nenhum :/
Citação:Dim x As Long
For x = 1 To ListView1.ListItems.Count
If ListView1.ListItems(x).Text = itemselecionado.Text Then
ListView1.ListItems(x).Checked = True
End If
Next x
ele seleciona todos os itens que sao iguais, porem não me permite desmarca-los
alguem sabe porque?
posso ir marcando os proximos ele verifica e marca os iguais, mas nao deixa desmarcar nenhum :/
Tópico encerrado , respostas não são mais permitidas