AJUDA COM LISTVIEW
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?
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
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
Bem simples.
Valeu.
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?
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
em tempo de projeto clique com o botão direito em cima do listview e selecione conforme a figura abaixo
Uso VB6
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.
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)
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.