Notifications
Clear all

listview

22 Posts
4 Usuários
0 Reactions
7,315 Visualizações
(@assilva)
Posts: 5
Active Member
Topic starter
 

Olá, preciso fazer dois filtros em um listview o exemplo é o seguinte, na planilha tem 4 campos.
codigo nome tipo qtde
1 café 1 4
2 café 2 6
3 leite 1 10
4 leite 2 12
5 leite 1 7

no 1º textbox quero filtrar o nome "leite" e mostra na labeltotal a soma de todos os tipos = 29.
Com o listview filtrado mostrando apenas "leite" quero
2º textbox filtrar o tipo "1" e mostra na labeltotal = 17.

Se alguem puder ajudar agradeço

 
Postado : 07/11/2011 5:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Exemplo, de acordo com seu exemplo...

Veja se o resultado é o esperado.
Caso contrário, indique o que não está de acordo ou se ocorre algum erro.

 
Postado : 08/11/2011 8:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edson me permite?
Baseado em uma planilha que tenho, mas não sei quem é o autor. :oops:
Disconfio que seja o tomas vasquez...
Seguinte, não consegui adaptar 2 textbox.
O 1 combobox seleciona o campo a ser filtrado e a textbox insere o criterio.
Testa ai e da um retorno

 
Postado : 08/11/2011 9:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom o modelo é citado aqui.
viewtopic.php?f=11&t=2754
e é do tomas mesmo :D

 
Postado : 08/11/2011 11:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

...Baseado em uma planilha que tenho, mas não sei quem é o autor. :oops:
Disconfio que seja o tomas vasquez...

Na verdade, essa aplicação, utilizando o controle ListView, foi desenvolvida originalmente por mim, inspirado em um modelo do Tomás, que utilizou o ListBox. Estava treinando no ListView. É com grande satisfação que vejo várias adaptações.

 
Postado : 09/11/2011 8:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara desculpa!
É que sou colecionador de arquivos e fica dificil as vezes lembrar onde consegui.
Acho de uma importancia muito grande dar credito a quem desenvolve algum trabalho. :x
Já passei por situações no trampo mesmo de desenvolver alguns controles e outra pessoa receber o credito.
VLW CARA!!! :D
E parabens ficou show!!! :lol:

 
Postado : 09/11/2011 9:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Adaptando, informe se é isso.

 
Postado : 10/11/2011 8:29 am
(@assilva)
Posts: 5
Active Member
Topic starter
 

Edson, desde já agradeço a disponibilidade de ajudar.
O objetivo do filtro é examente esse, perfeito.
Preciso que seja feito examente isso mas usando dois textbox para pesquisa e o resultado aparece numa label.
Funciona assim:
Os dados são carregados numa listview ao inicializar o formulario, até aqui tudo bem já consegui fazer.
O que eu preciso agora é que quando usar o filtro do 1º textbox apareça na listview os dados referentes a café, e ao usar o
2º textbox apareça os dados referentes ao tipo.
Esses dados que eu enviei serve apenas para exemplo, preciso usar o textbox para pesquisa pois vou aplicar esse filtro em mais de 2000 itens, então acho mais facil digitar do que procurar no combo pela questão do tempo.
E estou usando a listview pelo numero de colunas que precisam ser exibidas, 15 colunas.
Volto a dizer, o objetivo é exatemente como voce postou, só precisa ser aplicado no textbox e na listview.
Se puderes ajudar, ficarei muito agradecido, pois estou tentando aqui mas não estou tendo sucesso.

 
Postado : 13/11/2011 1:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vistes o exemplo que postei - baseado no exemplo do Edson -, faça o filtro, clique no produto desejado e clique nos botões e confira...

 
Postado : 13/11/2011 8:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

...baseado no exemplo do Edson...

Desculpem-me, na verdade "Anderson Olegario".

 
Postado : 13/11/2011 9:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue minha contribuição.

[]s

 
Postado : 13/11/2011 10:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

:shock: Nooooossa!!!! :o

Maurão,

Simplesmente show de bola. Apenas uma ressalva, fácil de resolver, o ComboBox1 não filtra instantâneo. Agora as instruções RemoverIten e SomarItens, são um achado (verdadeiras referências).

Uma informação:

Na instrução "SomarItens" é feito um loop na 4ª coluna (Qtde.), só não entendí a função de "lngRunningTotal1". Explica aí.

Com licença: Usarei sua instrução "RemoverIten" no meu exemplo, estava tomando uma surra nessa tentativa. :lol:

Assim que terminar postarei o meu exemplo. O seu é bem mais simples e mais SHOW.

Abraços.

 
Postado : 14/11/2011 8:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Parabéns Mauro, muito bom

É bem parecido com o que estou usando, será que teria como implementar, ao clicar duas vezes no item do listbox o mesmo ir para célula ativa da planilha?

Obrigada!

 
Postado : 14/11/2011 8:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

JoséA, grato pela consideração, quanto as rotinas Remover e SomarItens, a principio não teem nada de outro mundo, apesar da ajuda do Excel não conter quase nada sobre ListView a propridade Remove faz parte do Objeto, geralmente o pessoal ao invez de usar Remove, costumam utilizar o Clear no Listview e buscar na Planilha somente os dados referentes aos critérios e preencher o ListView novamente, o que dependendo é mais demorado, pois processamos duas vezes a busca na planilha, então acho mais eficiente e rapido varrer os dados no próprio ListView e Remover, e SomarItens não tem muito o que explicar, faz um Loop pela coluna que queremos e efetua a Soma.

Quanto a variavel, lngRunningTotal1, de fato foi um lapso, tamebm pela hora, já eram perto das 02 da manhã, a instrução :

Dim lngRunningTotal1 As Double - que está no inicio da rotina Sub FiltroCriterio(), nada mais é do que uma variável para ir armazenando os Valores capturados na coluna do ListView, e quando construi a rotina de filtro, eu tambem fiz a de soma na mesma rotina, só depois que resolvi separa-la pelo fato da Soma do segundo criterio, e acabei deixando a instrução no lugar errado.

Então o correto é que a instrução esteja na rotina :

Sub SomarItens()

Dim lngRunningTotal1 As Double

    For i = 1 To ListView1.ListItems.count
        lngRunningTotal1 = lngRunningTotal1 + CDbl(ListView1.ListItems(i).ListSubItems(3))
    Next
    
    lblTotal.Caption = lngRunningTotal1

End Sub

O que faz esta Variável, quando encontra o primeiro valor ela armazena, e para a Soma utilizamos ela + ela que será o proximo valor :

Seria assim :

Primeiro Valor => 10 => armazenou em lngRunningTotal1
Segundo Valor => 20 => armazenou em lngRunningTotal1 novamente, então, como já tinhamos armazenado o Valor 10, na instrução Somamos ela com ela mesma.

lngRunningTotal1 = lngRunningTotal1 é iGual a 20 + 10

Quanto a Filtragem Instantanea do Combo, vou deixar para vocâ esta implementação, lógico, se não for lhe atrapalhar.

Não sei se fui claro, mas qq duvida reporte.

[]s

 
Postado : 14/11/2011 11:56 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Parabéns Mauro, muito bom

É bem parecido com o que estou usando, será que teria como implementar, ao clicar duas vezes no item do listbox o mesmo ir para célula ativa da planilha?

Obrigada!

Regi, só para ficar claro, e não devemos misturar pois trata-see de Controles bem diferentes na questão das propriedades, o que foi utilizado não é LISTBOX e sim LISTVIEW, este controle tem muito mais propriedades que o Listbox, aceitando vários tipos de implementações que um Listbox não aceita.

Quanto sua questão, tem sim como fazer o que quer, só precisao saber o que quer que vá para a planilha, somente os dados referentes a Linha onde efetuará os 02 cliques ou todas as Linhas filtradas do Listview ?

[]s

 
Postado : 14/11/2011 12:03 pm
Página 1 / 2