USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Duvida com ListView
Perci
não registrado
Postada em 27/02/2007 11:23 hs   
Gostaria de saber se é possível montar uma listbox com, por exemplo 10 colunas e mostrar apenas 5 colunas, ou seja "esconder" algumas colunas para que o usuário não as veja.
 
Por exemplo: Tenho uma ListBox com os itens de um pedido onde as colunas são:
CodigoProduto  NomeProduto  Preço  Quantidade  CodInterno  SomaItem  Ipi  Icms
 
Onde eu queria mostrar para o usuário somente as colunas de Codigo Nome Preço e Quantidade.
 
Há uma maneira de tornar as outras colunas como se fossem Enabled?
 
Grato.
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 27/02/2007 11:46 hs            
è listbox ? ou Listview ?? , porque no Listview pra deixar a coluna oculta é so por na montagem dele tipo isso
 
.ColumnHeaders.Add , , "NomeColuna", 0

Jesus Cristo é O Senhor!!!
     
Perci
não registrado
Postada em 27/02/2007 13:49 hs   
Desculpe, amigo é ListView, mesmo
 
Só não sei em que parte do projeto eu insiro esta linha que você escreveu. Poderia ser mais claro? É que eu ainda estou aprendendo sobre este controle.
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 27/02/2007 15:34 hs            
Ok sem problemas veja bem, eu gostaria de saber porque colocar essas colunas no Listview se elas nao vao ser visualizadas? porque nao montar uma listview somente com colunas que vao ser usadas?
 
mas por exemplo vc tem que ter um funcao que monta a listview , nde vc coloca os nomes das colunas e tal, veja esse exemplo , vc pode montar um funtion que faz isso , perceba que todas as colunas que estao com a extensao 0 , nao vao aparecer,
 
 
General
 
Option Explicit
Private Rs2 As New ADODB.Recordset
Private Conn1 As New ADODB.Connection
 
Function lerlistview()
On Error Resume Next
 Set Rs2 = New ADODB.Recordset
 Set Conn1 = New ADODB.Connection
  
    'FAZENDO A CONEXÃO COM O BANCO DE DADOS
    Conn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "Lab.MDB;Persist Security Info=False"
  Rs2.Open "Select CodigoH,* FROM Tbl_Contas Order by CodigoH asc", Conn1, adOpenKeyset, adLockOptimistic
  
    'encabeçando a LISTVIEW
    LV1.ListItems.Clear
    LV1.ColumnHeaders.Clear
    LV1.ColumnHeaders.Add 1, , "Codigo", 0
    LV1.ColumnHeaders.Add 2, , "Nome Empresa", 4000
    LV1.ColumnHeaders.Add 3, , "Contato", 0
    LV1.ColumnHeaders.Add 4, , " N°CNPJ", 4000
    LV1.ColumnHeaders.Add 5, , "Descrição", 0
    LV1.ColumnHeaders.Add 6, , "Tipo de Documento", 4000
    LV1.ColumnHeaders.Add 7, , "Telefone", 4000
    LV1.ColumnHeaders.Add 8, , "Data Vencimento", 0
    LV1.ColumnHeaders.Add 9, , "Unidades", 4000
    LV1.ColumnHeaders.Add 10, , "Valor", 2000
    LV1.ColumnHeaders.Add 11, , "Pagamento Efetuado", 2000
    LV1.ColumnHeaders.Add 12, , "Valor Total", 2000
    LV1.ColumnHeaders.Add 13, , "", 1
   
    txtTotal = LV1.ListItems.Count
 
While Not Rs2.EOF
    LV1.ListItems.Add 1, , Rs2!CodigoH
    LV1.ListItems(1).SubItems(1) = Rs2!Empresa
    LV1.ListItems(1).SubItems(2) = IIf(IsNull(Rs2!Contato), "", Rs2!Contato)
    LV1.ListItems(1).SubItems(3) = IIf(IsNull(Rs2!cnpj), "", Rs2!cnpj)
    LV1.ListItems(1).SubItems(4) = IIf(IsNull(Rs2!Descricao), "", Rs2!Descricao)
    LV1.ListItems(1).SubItems(5) = IIf(IsNull(Rs2!TipoDoc), "", Rs2!TipoDoc)
    LV1.ListItems(1).SubItems(6) = IIf(IsNull(Rs2!Telefone), "", Rs2!Telefone)
    LV1.ListItems(1).SubItems(7) = IIf(IsNull(Rs2!DataPag), "", Rs2!DataPag)
    LV1.ListItems(1).SubItems(8) = IIf(IsNull(Rs2!Unidade), "", Rs2!Unidade)
    LV1.ListItems(1).SubItems(9) = Format(Rs2("Valor"), "currency")
    LV1.ListItems(1).SubItems(10) = IIf(IsNull(Rs2!dataQpagou), "", Rs2!dataQpagou)
    LV1.ListItems(1).SubItems(11) = Format(Rs2("ValorTotal"), "currency")
    
     LV1.ListItems(1).SubItems(12) = Rs2!idH
    txtTotal = LV1.ListItems.Count
   
    Rs2.MoveNext
Wend
Rs2.Close 'aki fecha o recordset e limpa os campos dos txts
txtCodigo = ""
txtEmpresa = ""
txtcontato = ""
txtcnpj = ""
txtdescricao = ""
txtdocumento = ""
txttel1 = ""
txtdata = ""
txtunidade = ""
txtvalor = ""
txtdataQpagou = ""
txtvaltot = ""
100:
End Function
 
pra exibir esses dados vc poe o nome da function dentro do form load

Private Sub Form_Load()
lerlistview


End Sub
Logico que vc nao precisa seguir esse exemplo a risca , mas pra deixar em branco a coluna vc tem que por assim na rotina de preenchimento do listview, com o, 0
 
 LV1.ColumnHeaders.Add 5, , "Descrição", 0
 
se o seu listview tiver alguam rotina pra ajustar as colunas automaticamente com o conteudo vc vai ter que tirar senao ele nao respeita esse 0.....qualquer coisa tamo ae

Jesus Cristo é O Senhor!!!
TÓPICO EDITADO
 
Perci
não registrado
ENUNCIADA !
Postada em 27/02/2007 16:50 hs   
Valeu, cara. Mas vou seguir seu conselho e montar a ListView somente com as colunas que serão visualizadas. O que eu estava fazendo era colocar os valores nas colunas e depois somando as colunas e colocando os resultados nas TextBox, mas vou alterar isso e usar variáveis para fazer os cálculos e depois jogar os resultados nas TextBox é bem mais fácil, eu acho.
Valeu.
   
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 27/02/2007 17:25 hs            
è fica bom tambem , vc pode navegar pela listview e ir exibindo no valor das colunas nas textbox , se vc quiser, tipo
 
Private Sub LV1_ItemClick(ByVal item As MSComctlLib.ListItem)
If item.Index = 0 Then Exit Sub
    txtCodigo = LV1.ListItems(item.Index)
    txtEmpresa = LV1.ListItems(item.Index).SubItems(1)
    txtcontato = LV1.ListItems(item.Index).SubItems(2)
    txtcnpj = LV1.ListItems(item.Index).SubItems(3)
    txtdescricao = LV1.ListItems(item.Index).SubItems(4)
    txtdocumento = LV1.ListItems(item.Index).SubItems(5)
end sub

Jesus Cristo é O Senhor!!!
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página