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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Imprimindo ListView
Juliana T.
SÃO PAULO
SP - BRASIL
Postada em 18/06/2008 11:15 hs         
Pessoal... Olha só...
 
Eu tenho uma listview mais ou menos assim:
FILIAL   SKU           DTNOTA        TPNOTA            NºNOTA   REMETENTE   PREÇO
SHOPD  212966-2    08/12/2007    TRANSF.MERC.   54984     9004-OPERA   8,34
ANALIA 212952-2    10/12/2007    TRANSF.MERC.   42677     9004-OPERA   8,01
 
Eu consegui fazer imprimir... Só que na hora que imprime só imprime os dados...
Não consigo imprimir o cabeçalho alinhado, no caso, filial, sku, etc... junto com as informações.
Alguem sabe me dizer se há como mandar imprimir o cabeçalho?!
O código que eu estou usando para fazer a impressão direta é o seguinte:
 
Function Imprimir()
If lv.ListItems.Count = 0 Then
MsgBox "Não há dados para ser impresso.", vbInformation, "AVISO"
Else
For Each Item In lv.ListItems
Printer.Print Tab(1); Item.Text; "     "; Item.SubItems(1); "     "; 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
Se alguem puder me ajudar...Serei grata!
     
Juliana T.
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 18/06/2008 11:21 hs         
Na verdade eu preciso saber como eu faço para alinhar isso tudo...Pq na hora q eu estou imprimindo as linhas saem todas desalinhadas!!!
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 18/06/2008 14:58 hs            
Tenta alterar a fonte para Corrier New ou Verdana, talvez ajude.
 
antes do código para imprimir
 
Printer.FontName="Currier New"
 
 
     
Alexandre Patos
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 18/06/2008 15:31 hs            
Function Imprimir()
    If lv.ListItems.Count = 0 Then
        MsgBox "Não há dados para ser impresso.", vbInformation, "AVISO"
    Else
        For Each Item In lv.ListItems
            Printer.Print Tab(1); Format(Item.Text, "@@@@@@"); "     "; Format(Item.SubItems(1), "@@@@@@"); "     "; Format(Item.SubItems(2), "@@@@@@"); "     "; Format(Item.SubItems(3), "@@@@@@"); "     "; Format(Item.SubItems(4), "@@@@@@"); "     "; Format(Item.SubItems(5), "@@@@@@"); "     "; Format(Item.SubItems(6), "@@@@@@")
        Next
        Printer.EndDoc
        MsgBox "Dados impresso com sucesso.", vbInformation, "Aviso"
    End If
End Function

 
   
Juliana T.
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 19/06/2008 09:32 hs         
Não adiantou.. Não saiu alinhado
 
   
Juliana T.
SÃO PAULO
SP - BRASIL
Postada em 19/06/2008 10:00 hs         
Amigos...Consegui... Vou colocar o código aqui para caso alguem precise...
 
Function Imprimir()
    If lv.ListItems.Count = 0 Then
        MsgBox "Não há dados para ser impresso.", vbInformation, "AVISO"
    Else
        Dim i%, LVWidth%, NewTab%, j%
Dim itmX As ListItem
Dim ContaLinha%
 
  LVWidth = 0
  For i = 1 To lv.ColumnHeaders.Count
     LVWidth = LVWidth + lv.ColumnHeaders(i).Width
  Next
  NewTab = 0
   'imprime o cabeçalho
  For i = 1 To lv.ColumnHeaders.Count
      NewTab = NewTab + CInt(lv.ColumnHeaders(i).Width * Printer.ScaleWidth / LVWidth)
      Printer.Print lv.ColumnHeaders(i).Text;
      Printer.CurrentX = NewTab
  Next
  'imprime uma linha de separação
  Printer.Print
  'imprime_linha
  Printer.Print
  'se o numero de linhas do ListView for maior que o de linhas a
  'a imprimir então imprime o conteúdo total de Listview
  If Lines < lv.ListItems.Count And Lines <> 0 Then
       ContaLinha = Lines
   Else
       ContaLinha = lv.ListItems.Count
   End If
  'imprime os itens e subitens
  For i = 1 To ContaLinha
       NewTab = 0
       Set itmX = lv.ListItems(i)
       Printer.Print itmX.Text;
       For j = 1 To lv.ColumnHeaders.Count - 1
             NewTab = NewTab + CInt(lv.ColumnHeaders(j).Width * Printer.ScaleWidth / LVWidth)
             Printer.CurrentX = NewTab
             Printer.Print itmX.SubItems(j);
       Next
       Printer.Print
  Next
  'envia os dados para impressora
  Printer.EndDoc
        MsgBox "Dados impresso com sucesso.", vbInformation, "Aviso"
    End If
End Function
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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