IMPRIMIR LISTVIEW COM PRINTER
Ola amigos estou tentando imprimir um list com o printer mas nao esta funcionando bem tentei varios exemplos da net..mas nao deu, talves seja eu nao esteja entendendo muito bem, em fim conto com vcs o ultimo exemplo foi este
If listminimo.ListItems.Count = 0 Then
MsgBox [Ô]Não há dados para ser impresso.[Ô], vbInformation, [Ô]AVISO[Ô]
Else
For Each Item In listminimo.ListItems
Printer.Print Tab(0); Item.Text; [Ô] [Ô]; Item.SubItems(0); [Ô] [Ô]; Item.SubItems(2); [Ô] [Ô]; Item.SubItems(3); [Ô] [Ô]; Item.SubItems(4); [Ô] [Ô]; Item.SubItems(5); [Ô] [Ô]; Item.SubItems(6)
Next
Printer.EndDoc
MsgBox [Ô]Dados impresso com sucesso.[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End Function
esta dando erro 380 object requerid
a estrutura do meu list e esta
Private Sub Form_Load()
cnn.Open [Ô] provider=microsoft.jet.oledb.4.0;data source=[Ô] & App.Path & [Ô]loja.mdb[Ô]
[ô]ajusta
Call DimensionaForm(Me, 6000, 7620)
On Error Resume Next
listminimo.View = lvwReport
listminimo.GridLines = True
listminimo.ColumnHeaders.Add , , [Ô]Código[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Descrição[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Estoque minimo[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Estoque atual[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Valor Venda[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Saldo [Ô]
listminimo.ColumnHeaders(0).Width = 1000
listminimo.ColumnHeaders(1).Width = 800
listminimo.ColumnHeaders(2).Width = 1800
listminimo.ColumnHeaders(3).Width = 1200
listminimo.ColumnHeaders(4).Width = 1200
listminimo.ColumnHeaders(5).Width = 1200
rsminimo.Open [Ô]select*from tblproduto order by valorvenda desc [Ô], cnn, 3, 3
[ô]desc e decrescente e asc e crecente
While Not rsminimo.EOF
Set lst = listminimo.ListItems.Add(, , rsminimo([Ô]codprod[Ô]))
lst.SubItems(0) = [Ô][Ô] & rsminimo([Ô]codprod[Ô])
lst.SubItems(1) = [Ô][Ô] & rsminimo([Ô]descricao[Ô])
lst.SubItems(2) = [Ô][Ô] & rsminimo([Ô]estoque_minimo[Ô])
lst.SubItems(3) = [Ô][Ô] & rsminimo([Ô]estoque_atual[Ô])
lst.SubItems(4) = [Ô][Ô] & rsminimo([Ô]valorvenda[Ô])
[ô]calcula as linhas atraves da multiplicacao
lst.SubItems(5) = CDbl(rsminimo([Ô]valorvenda[Ô])) * CDbl(rsminimo([Ô]estoque_atual[Ô]))
rsminimo.MoveNext
[ô]conta total de registros
StatusBar1.Panels(2).Text = rsminimo.RecordCount
[ô]esta parte abaixo do codigo soma a coluna do list
Dim cSoma As Currency
For i = 1 To listminimo.ListItems.Count
cSoma = cSoma + CCur(listminimo.ListItems(i).SubItems(5))
Next i
Wend
[ô] CompSearchLabel(1).Caption = ListView1.ListItems.Count & [Ô] Registros encontrados.[Ô]
rsminimo.Close
StatusBar1.Panels(4).Text = cSoma
End Sub
bem agora e com vcs at+
If listminimo.ListItems.Count = 0 Then
MsgBox [Ô]Não há dados para ser impresso.[Ô], vbInformation, [Ô]AVISO[Ô]
Else
For Each Item In listminimo.ListItems
Printer.Print Tab(0); Item.Text; [Ô] [Ô]; Item.SubItems(0); [Ô] [Ô]; Item.SubItems(2); [Ô] [Ô]; Item.SubItems(3); [Ô] [Ô]; Item.SubItems(4); [Ô] [Ô]; Item.SubItems(5); [Ô] [Ô]; Item.SubItems(6)
Next
Printer.EndDoc
MsgBox [Ô]Dados impresso com sucesso.[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End Function
esta dando erro 380 object requerid
a estrutura do meu list e esta
Private Sub Form_Load()
cnn.Open [Ô] provider=microsoft.jet.oledb.4.0;data source=[Ô] & App.Path & [Ô]loja.mdb[Ô]
[ô]ajusta
Call DimensionaForm(Me, 6000, 7620)
On Error Resume Next
listminimo.View = lvwReport
listminimo.GridLines = True
listminimo.ColumnHeaders.Add , , [Ô]Código[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Descrição[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Estoque minimo[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Estoque atual[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Valor Venda[Ô]
listminimo.ColumnHeaders.Add , , [Ô]Saldo [Ô]
listminimo.ColumnHeaders(0).Width = 1000
listminimo.ColumnHeaders(1).Width = 800
listminimo.ColumnHeaders(2).Width = 1800
listminimo.ColumnHeaders(3).Width = 1200
listminimo.ColumnHeaders(4).Width = 1200
listminimo.ColumnHeaders(5).Width = 1200
rsminimo.Open [Ô]select*from tblproduto order by valorvenda desc [Ô], cnn, 3, 3
[ô]desc e decrescente e asc e crecente
While Not rsminimo.EOF
Set lst = listminimo.ListItems.Add(, , rsminimo([Ô]codprod[Ô]))
lst.SubItems(0) = [Ô][Ô] & rsminimo([Ô]codprod[Ô])
lst.SubItems(1) = [Ô][Ô] & rsminimo([Ô]descricao[Ô])
lst.SubItems(2) = [Ô][Ô] & rsminimo([Ô]estoque_minimo[Ô])
lst.SubItems(3) = [Ô][Ô] & rsminimo([Ô]estoque_atual[Ô])
lst.SubItems(4) = [Ô][Ô] & rsminimo([Ô]valorvenda[Ô])
[ô]calcula as linhas atraves da multiplicacao
lst.SubItems(5) = CDbl(rsminimo([Ô]valorvenda[Ô])) * CDbl(rsminimo([Ô]estoque_atual[Ô]))
rsminimo.MoveNext
[ô]conta total de registros
StatusBar1.Panels(2).Text = rsminimo.RecordCount
[ô]esta parte abaixo do codigo soma a coluna do list
Dim cSoma As Currency
For i = 1 To listminimo.ListItems.Count
cSoma = cSoma + CCur(listminimo.ListItems(i).SubItems(5))
Next i
Wend
[ô] CompSearchLabel(1).Caption = ListView1.ListItems.Count & [Ô] Registros encontrados.[Ô]
rsminimo.Close
StatusBar1.Panels(4).Text = cSoma
End Sub
bem agora e com vcs at+
Colega identificar a coluna do listview não é dificil, veja
para a primeira coluna, ou coluna 0 basta usar isto
para as demais colunas seria assim
então baseado nisto basta fazer o seguinte
Teste agora
para a primeira coluna, ou coluna 0 basta usar isto
ListView1.ListItems(1) [ô]Coluna 0 e linha 1
para as demais colunas seria assim
ListView1.ListItems(1).SubItems(1) [ô]Coluna 1 e linha 1
ListView1.ListItems(1).SubItems(2) [ô]Coluna 2 e linha 1
ListView1.ListItems(1).SubItems(3) [ô]Coluna 3 e linha 1
então baseado nisto basta fazer o seguinte
With listminimo [ô]isto supondo que o nome do listview é listminimo
If .ListItems.Count = 0 Then
MsgBox [Ô]Não há dados para ser impresso.[Ô], vbInformation, [Ô]AVISO[Ô]
Else
For F = 1 To .ListItems.Count
Printer.Print Tab(0); .ListItems(F).ListItem(F); [Ô] [Ô]; .ListItems(F).SubItems(1); [Ô] [Ô]; .ListItems(F) .SubItems(2); [Ô] [Ô]; .ListItems(F).SubItems(3); [Ô] [Ô]; .ListItems(F).SubItems(4); [Ô] [Ô]; .ListItems(F).SubItems(5); [Ô] [Ô]; .ListItems(F).SubItems(6)
Next F
Printer.EndDoc
MsgBox [Ô]Dados impresso com sucesso.[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End With
Teste agora
bom dia Marcelo-treze, muito obrigado pelo codigo, vou testar ja retorno vlw msm
Marcelo esta dando um erro neste codigo
Printer.Print Tab(0); .ListItems(F).ListItems(0);
tipo estou com duvida tb estou usando command eu usei esta parte do codigo
With listminimo [ô]isto supondo que o nome do listview é listminimo
If .ListItems.Count = 0 Then
MsgBox [Ô]Não há dados para ser impresso.[Ô], vbInformation, [Ô]AVISO[Ô]
Else
For F = 1 To .ListItems.Count
Printer.Print Tab(0); .ListItems(F).ListItem(F); [Ô] [Ô]; .ListItems(F).SubItems(1); [Ô] [Ô]; .ListItems(F) .SubItems(2); [Ô] [Ô]; .ListItems(F).SubItems(3); [Ô] [Ô]; .ListItems(F).SubItems(4); [Ô] [Ô]; .ListItems(F).SubItems(5); [Ô] [Ô]; .ListItems(F).SubItems(6)
Next F
Printer.EndDoc
MsgBox [Ô]Dados impresso com sucesso.[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End With
esta certo , porue no load do form tem o restantante, esta certo marcelo?
Printer.Print Tab(0); .ListItems(F).ListItems(0);
tipo estou com duvida tb estou usando command eu usei esta parte do codigo
With listminimo [ô]isto supondo que o nome do listview é listminimo
If .ListItems.Count = 0 Then
MsgBox [Ô]Não há dados para ser impresso.[Ô], vbInformation, [Ô]AVISO[Ô]
Else
For F = 1 To .ListItems.Count
Printer.Print Tab(0); .ListItems(F).ListItem(F); [Ô] [Ô]; .ListItems(F).SubItems(1); [Ô] [Ô]; .ListItems(F) .SubItems(2); [Ô] [Ô]; .ListItems(F).SubItems(3); [Ô] [Ô]; .ListItems(F).SubItems(4); [Ô] [Ô]; .ListItems(F).SubItems(5); [Ô] [Ô]; .ListItems(F).SubItems(6)
Next F
Printer.EndDoc
MsgBox [Ô]Dados impresso com sucesso.[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End With
esta certo , porue no load do form tem o restantante, esta certo marcelo?
Tópico encerrado , respostas não são mais permitidas