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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  [PRINTER] - Parte II
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 07/05/2004 09:01 hs            
Eu fiz um codigo ao qual imprime duas lista de registros (duas SQL)...
Esses são os codigos do botão IMPRIMIR e das funções CABEÇALHO e CABEÇALHOX
 
Private Sub cmdImprimir_Click()
Dim S_NOME As String
Dim S_DESCRICAO As String
Dim S_VALOR As String
Dim X_DESCRICAO As String
Dim X_CATEGORIA As String
Dim X_VALOR As String
Dim Linha As String
If MsgBox("Iniciar Impressão?", 36, "Aviso do Sistema") = 7 Then
Exit Sub
End If
Linha = 1
Data2.DatabaseName = (App.Path & "\cyberbase.mdb")
Data2.RecordSource = "SELECT CLIENTE.CODIGO, CLIENTE.NOME, PARCELAS.* FROM CLIENTE INNER JOIN PARCELAS ON CLIENTE.CODIGO = PARCELAS.CODIGO_ALUNO WHERE PARCELAS.PAGAMENTO = #" & Format(MaskEdBox1, "mm/dd/yyyy") & "#"
Data2.Refresh

Printer.FontName = "Arial"
Printer.FontSize = 8
Do While Not Data2.Recordset.EOF = True
If Linha = 1 Then
    Cabeçalho
End If
S_NOME = Data2.Recordset.Fields("NOME")
S_DESCRICAO = Data2.Recordset.Fields("DESCRICAO")
S_VALOR = Data2.Recordset.Fields("VALOR")
Printer.CurrentX = 130
Printer.Print Tab(3); S_NOME;
Printer.Print Tab(65); S_DESCRICAO;
Printer.Print Tab(85); S_VALOR
Linha = Linha + 1
Data2.Recordset.MoveNext
If Linha >= 80 Then
Printer.NewPage
Linha = 1
End If
Loop
'COMEÇA AQUI A SEGUNDA LISTA DE REGISTROS
Data3.DatabaseName = (App.Path & "\cyberbase.mdb")
Data3.RecordSource = "SELECT DESCRICAO, CATEGORIA, VALOR FROM PGTOOUTRO WHERE DATA = #" & Format(MaskEdBox1, "mm/dd/yyyy") & "# AND (CATEGORIA = '" & cboAcesso.Text & "')"
Data3.Refresh
Printer.FontName = "Arial"
Printer.FontSize = 8
Do While Not Data3.Recordset.EOF = True
If Linha = 1 Then
    CabeçalhoX
End If
X_DESCRICAO = Data3.Recordset.Fields("DESCRICAO")
X_CATEGORIA = Data3.Recordset.Fields("CATEGORIA")
X_VALOR = Data3.Recordset.Fields("VALOR")
Printer.Print Tab(3); X_DESCRICAO;
Printer.Print Tab(65); X_CATEGORIA;
Printer.Print Tab(85); X_VALOR
Linha = Linha + 1
Data3.Recordset.MoveNext
If Linha >= 80 Then
Printer.NewPage
Linha = 1
End If
Loop

Printer.EndDoc
'End If
End Sub
 
Private Function Cabeçalho()
Printer.Print Tab(3); "NOME";
Printer.Print Tab(65); "REFERENTE";
Printer.Print Tab(85); "VALOR"
Printer.Print String(200, "-")
Printer.Print
End Function
 
Private Function CabeçalhoX()
Printer.Print Tab(3); "DESCRIÇÃO";
Printer.Print Tab(65); "CATEGORIA";
Printer.Print Tab(85); "VALOR"
Printer.Print String(200, "-")
Printer.Print
End Function
 
ELE CONSEGUIU IMPRIMIR AS DUAS LISTA CERTINHO...
...o unico problema é que as listas estão imendadas (juntas) e a 2ª lista não está aparecendo o "Cabeçalho".
 
ERA PARA APARECER ASSIM:
 
NOME                          REFERENTE            VALOR
----------------------------------------------------------------------------
MARIA                        MAIO                      R$ 30,00
JOÃO                          FEVEREIRO            R$ 50,00
RAIMUNDO                MAIO                      R$ 40,00
 
02 ESPAÇOS
 
DESCRIÇÃO                 CATEGORIA            VALOR
-----------------------------------------------------------------------------
ACESSO                       CYBERCAFE           R$ 3,00
DIGITAÇÃO                 GRÁFICA                 R$ 5,00
IMPRESSÃO                GRÁFICA                 R$ 18,00
 
E ESTÁ APARECENDO ASSIM:
 
NOME                          REFERENTE            VALOR
----------------------------------------------------------------------------
MARIA                        MAIO                       R$ 30,00
JOÃO                          FEVEREIRO             R$ 50,00
RAIMUNDO                MAIO                       R$ 40,00
ACESSO                     CYBERCAFE            R$ 3,00
DIGITAÇÃO               GRÁFICA                 R$ 5,00
IMPRESSÃO              GRÁFICA                 R$ 18,00
 
 

Nightcrawler
(nortuno do filme do X-Men II)
   
pereira
GOIÄNIA
GO - BRASIL
ENUNCIADA !
Postada em 07/05/2004 10:16 hs            
antes de imprimir cabecalhox voce deve imprimir 2 linhas em branco, que funcionará, espero ter ajudado
 
 
sds
 
   
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 07/05/2004 10:26 hs            
Pereira
Tem como vc me dar um exemplo de codigo, pois não sei fazer isso!
 
   
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 07/05/2004 10:43 hs            
Norturno, o segundo cabeçalho não vai ser impresso, pq a variavel LINHA nunca
vai ser igual a 1.
 
Dim S_NOME As String
Dim S_DESCRICAO As String
Dim S_VALOR As String
Dim X_DESCRICAO As String
Dim X_CATEGORIA As String
Dim X_VALOR As String
Dim B_FazCabecalho as Boolean

Dim Linha As String
If MsgBox("Iniciar Impressão?", 36, "Aviso do Sistema") = 7 Then
Exit Sub
End If
Linha = 1
Data2.DatabaseName = (App.Path & "\cyberbase.mdb")
Data2.RecordSource = "SELECT CLIENTE.CODIGO, CLIENTE.NOME, PARCELAS.* FROM CLIENTE INNER JOIN PARCELAS ON CLIENTE.CODIGO = PARCELAS.CODIGO_ALUNO WHERE PARCELAS.PAGAMENTO = #" & Format(MaskEdBox1, "mm/dd/yyyy") & "#"
Data2.Refresh

Printer.FontName = "Arial"
Printer.FontSize = 8
Do While Not Data2.Recordset.EOF = True
If Not B_FazCabecalho Then
    Cabeçalho
    
    B_FazCabecalho = True
End If
S_NOME = Data2.Recordset.Fields("NOME")
S_DESCRICAO = Data2.Recordset.Fields("DESCRICAO")
S_VALOR = Data2.Recordset.Fields("VALOR")
Printer.CurrentX = 130
Printer.Print Tab(3); S_NOME;
Printer.Print Tab(65); S_DESCRICAO;
Printer.Print Tab(85); S_VALOR
Linha = Linha + 1
Data2.Recordset.MoveNext
If Linha >= 80 Then
Printer.NewPage
Linha = 1
End If
Loop
'COMEÇA AQUI A SEGUNDA LISTA DE REGISTROS
Data3.DatabaseName = (App.Path & "\cyberbase.mdb")
Data3.RecordSource = "SELECT DESCRICAO, CATEGORIA, VALOR FROM PGTOOUTRO WHERE DATA = #" & Format(MaskEdBox1, "mm/dd/yyyy") & "# AND (CATEGORIA = '" & cboAcesso.Text & "')"
Data3.Refresh
B_FazCabecalho = False
Printer.Print " "
Printer.Print " "
Printer.FontName = "Arial"
Printer.FontSize = 8

Do While Not Data3.Recordset.EOF = True

If Not B_FazCabecalho Then
    CabeçalhoX
    B_FazCabecalho = True
End If

X_DESCRICAO = Data3.Recordset.Fields("DESCRICAO")
X_CATEGORIA = Data3.Recordset.Fields("CATEGORIA")
X_VALOR = Data3.Recordset.Fields("VALOR")
Printer.Print Tab(3); X_DESCRICAO;
Printer.Print Tab(65); X_CATEGORIA;
Printer.Print Tab(85); X_VALOR
Linha = Linha + 1
Data3.Recordset.MoveNext
If Linha >= 80 Then
Printer.NewPage
Linha = 1
End If
Loop

Printer.EndDoc
'End If
End Sub
 
Roberto
   
Nortuno
não registrado
ENUNCIADA !
Postada em 07/05/2004 11:24 hs   
Roberto
Obrigado!!!
   
Página(s): 1/1    

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