AJUDA COM LISTVIEW

WEBIER 23/03/2012 23:12:23
#398132
Carrego os dados no meu listview assim:
    If txtCodBarra.Text <> [Ô][Ô] Then
lstBusca.Visible = True
lstBusca.View = lvwReport
lstBusca.ListItems.Clear
lstBusca.ColumnHeaders.Clear
Dim ItemLst As ListItem
lstBusca.ColumnHeaders.Add , , [Ô]CÓDIGO[Ô], 0
lstBusca.ColumnHeaders.Add , , [Ô]COD_BARRA[Ô], 0
lstBusca.ColumnHeaders.Add , , [Ô]DESCRIÇÃO[Ô], 1500
lstBusca.ColumnHeaders.Add , , [Ô]QUANT[Ô], 500
lstBusca.ColumnHeaders.Add , , [Ô]VALOR[Ô], 500

If txtCodBarra.Text <> [Ô][Ô] Then
Call Abrir_BancodeDados
SQL = [Ô]SELECT (PRODUTOS.CODIGO) as var_COD, (PRODUTOS.COD_BARRA) as var_CodBarra,(PRODUTOS.DESCRICAO) as var_desc, (PRODUTOS.QUANT_ESTOQUE) as var_Quant, IIF(ISNULL(PRODUTOS_ENTRADA_ITENS.VENDA),0 ,PRODUTOS_ENTRADA_ITENS.VENDA) AS VENDA FROM (PRODUTOS LEFT JOIN ULTIMAS_ENTRADAS ON PRODUTOS.CODIGO = ULTIMAS_ENTRADAS.CODIGO_PRODUTO) LEFT JOIN PRODUTOS_ENTRADA_ITENS ON (ULTIMAS_ENTRADAS.CODIGO_PRODUTO = PRODUTOS_ENTRADA_ITENS.CODIGO_PRODUTO) AND (ULTIMAS_ENTRADAS.ULTENTRADA = PRODUTOS_ENTRADA_ITENS.CODIGO_ENTRADA) WHERE PRODUTOS.DESCRICAO like [ô]*[Ô] & txtCodBarra.Text & [Ô]*[ô] and PRODUTOS.ATIVO = TRUE ORDER BY PRODUTOS.descricao[Ô]
Set RS = BD.OpenRecordset(SQL, dbOpenSnapshot)

Do While Not RS.EOF
[ô]primeira coluna
Set ItemLst = lstBusca.ListItems.Add(, , RS!var_COD)
[ô]segunda e terceira coluna, que são sub itens da coluna 1
ItemLst.SubItems(1) = RS!var_CodBarra
ItemLst.SubItems(2) = RS!var_desc
If Not IsNull(RS!var_Quant) Then ItemLst.SubItems(3) = RS!var_Quant
If Not IsNull(RS!VENDA) Then ItemLst.SubItems(4) = RS!VENDA
RS.MoveNext
Loop
End If


são 2 controles.... um textbox (txtcodbarra) e um listview (lstBusca)

Então quando digito no txtcodbarra, ele automaticamente preenche o listview com os dados da consulta.

DUAS PERGUNTAS:
-Como eu faço para clicar numa linha do listview e ele selecionar a linha inteira?
-Como eu faço para pressionar a tecla ENTER e ele pegar o numero que tá na coluna 1 (ItemLst.SubItems(1) = RS!var_CodBarra) da linha selecionada e preenche o objeto txtcodbarra com o esse numero?
JESUEL.OLIVEIRA 24/03/2012 00:15:47
#398133
Amigo, Webier

1º Selecionando na lista
Entre na propriedades do listview e marque a opção de FullRowSelect

2º Enter na listview
No evento KeyDown do listview

   
List_Fechamentos_Empresa.SelectedItem.Text [ô]desta maneira você seleciona a coluna (0)

For I = 1 To List_Fechamentos_Empresa.ListItems.Count [ô]ja quando precisar selecionar outras colunas use a função abaixo
ICODIGO_CONVENIO = List_Fechamentos_Empresa.ListItems(I).ListSubItems(2)
ICODIGO_FECHAMENTO = List_Fechamentos_Empresa.ListItems(I).ListSubItems(1)
Next

WEBIER 24/03/2012 12:48:15
#398145
amigo, nao encontrei a opção FULLROWSELECT nas propriedades do meu listview

outra coisa, deu erro nesse codigo que vc me passou:
Private Sub lstBusca_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
lstBusca.SelectedItem.Text
For i = 1 To lstBusca.ListItems.Count
ICODIGO_CONVENIO = lstBusca.ListItems(i).ListSubItems(2)
ICODIGO_FECHAMENTO = lstBusca.ListItems(i).ListSubItems(1)
Next
End If
End Sub


OBS: coloquei no evento KeyUP


OMAR2011 24/03/2012 17:35:39
#398159
Resposta escolhida
Cabra,clique com o botão direito em cima do listview e vá em propriedade e lá esta tudo conforme quiser.
Bem simples.
Valeu.
JESUEL.OLIVEIRA 24/03/2012 18:13:42
#398161
Amigo, copiei do meu projeto funcionando.

Você carregou os dados no listview?
qual erro que dá?

no te passei duas funções para você e você colocou na mesma função, como você esta tentando recuperar os dados do listview

coloque
   
msgbox lstBusca.SelectedItem.Text


coloque no evento click vai mostrar o campo 0 do listview

Quanto a propriedade, qual VB que utiliza?
WEBIER 25/03/2012 10:59:11
#398190
Citação:

:
Cabra,clique com o botão direito em cima do listview e vá em propriedade e lá esta tudo conforme quiser.
Bem simples.
Valeu.



Logico que fiz assim, mas não tem não... tem varias checkbox e vários combobox, mas nenhum com esse nome.

Citação:

:
Amigo, copiei do meu projeto funcionando.

Você carregou os dados no listview?
qual erro que dá?

no te passei duas funções para você e você colocou na mesma função, como você esta tentando recuperar os dados do listview

coloque

   
msgbox lstBusca.SelectedItem.Text


coloque no evento click vai mostrar o campo 0 do listview

Quanto a propriedade, qual VB que utiliza?



quando clico em qualquer nome da lista (mas nao fica selecionada) e pressiono o ENTER ele dar o erro:
invalid use of property

ai debugo e ele seleciona [Ô][txt-color=#e80000]text[/txt-color][Ô] da linha lstBusca.SelectedItem.[txt-color=#e80000]Text[/txt-color]

o que quero era algo que eu fazia com flexgrid assim:
Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
txtCodBarra.Text = Grid.TextMatrix(Grid.Row, 2)
End Sub

MARCELO.TREZE 25/03/2012 11:36:02
#398191
viebre só pra vc entender o fullrowselect

em tempo de projeto clique com o botão direito em cima do listview e selecione conforme a figura abaixo

WEBIER 25/03/2012 12:14:28
#398195
no meu listview nao tem essa propriedade.

Uso VB6
OMAR2011 25/03/2012 16:06:02
#398205
Então vamos lá Maluco.
No seu formulário,barra de ferramentas,Components,Controls e marque [txt-color=#007100] Microsoft Windows Common Controls 6.0(SP6) MSCOMCTL.OCX[/txt-color] e desmarque
[txt-color=#e80000]Microsoft Windows Common Controls 5.0(SP2) comCtl32.ocx[/txt-color].Para fazer tem que excluir seu listview que está no formulário,ai você faz o que foi citado
acima e desenhe outro List e verás o que o Treze mostra na mensagem.
Valeu.
WEBIER 25/03/2012 18:25:10
#398211
Citação:

:
Então vamos lá Maluco.
No seu formulário,barra de ferramentas,Components,Controls e marque [txt-color=#007100] Microsoft Windows Common Controls 6.0(SP6) MSCOMCTL.OCX[/txt-color] e desmarque
[txt-color=#e80000]Microsoft Windows Common Controls 5.0(SP2) comCtl32.ocx[/txt-color].Para fazer tem que excluir seu listview que está no formulário,ai você faz o que foi citado
acima e desenhe outro List e verás o que o Treze mostra na mensagem.
Valeu.



Alem do listview, tambem tive que tirar todas as statusbar de todos os meus forms... no final de tudo, ele aceito remover a SP2 e colocar a SP6... vlw

Voltado agora a questão de pegar texto da linha seleciona e preencher o textbox.

como faria isso (exemplo de como eu faço no flexgrid) usando listview
Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
txtCodBarra.Text = Grid.TextMatrix(Grid.Row, 2)
End Sub


ou seja, carrego os registro no meu listview... depois clico em uma linha (registro) e quando pressionar a tecla ENTER, ele pega o texto que está na coluna 2 da linha selecionada e coloca no textbox (txtCodBarra)
OMAR2011 25/03/2012 23:05:19
#398228
Maluco eu uso pegar texto do listview no evento click e DblClick.Vamos lá.

Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
Text1.text = ListView1.SelectedItem [ô] Corresponde [txt-color=#e80000]Coluna 1[/txt-color]
txtCodBarra.text = ListView1.SelectedItem.ListSubItems.Item(1).Text [txt-color=#e80000]Coluna 2[/txt-color]
Text2.text = ListView1.SelectedItem.ListSubItems.Item(2).Text [txt-color=#e80000] Coluna 3[/txt-color]
End Sub
Tente assim.
Tópico encerrado , respostas não são mais permitidas