none
PrintDocument, Imprimir o rodapé do Cupom RRS feed

  • Pergunta

  • Fala pessoal blz? então estou tendo um problemão e ja estou ficando doido... é o seguinte, tenho uma tela de vendas aqui e meu cliente utiliza aquelas impressoras não fiscal de Cupom, eu consegui fazer q o sistema emita o cupom e na hora que der um limite de itens ele jogue um e.hasmorepage = true, até ai blz, oq acontece é que no final qndo termino a impressão tem o total do cupom e alguma observação do pedido, até ai está imprimindo normal, porém quando eu tiro um pedido mto grande que ultrapasse o limite chegue proximo do limite de Linhas por pagina ele não imprime essa parte ... :/

     

    vou postar o codigo aqui do meu print document...

     

     

            ' ESPAÇO PARA CARACTERES NO CUPOM 

     

            ' CAPTA NOME DO VENDEDOR E CARREGA VARIAVEL

            Oper = LblVend.Text

     

            '---------------------------------

            ' CARREGA NOME DA EMPRESA

            '---------------------------------

            ObjPdv.CarregaPDV()

            Dim NomeEmp = ObjPdv.NomeEmpresa

            Dim EndeEmp = ObjPdv.Endereco

            Dim NumeEmp = ObjPdv.Numero

            Dim BairEmp = ObjPdv.Bairro

            Dim Tel1Emp = ObjPdv.Telefone

            Dim CidaEmp = ObjPdv.Cidade

            Dim EstaEmp = ObjPdv.Estado

            Dim LinhaAtual As Integer = 0

     

            Dim Pedid = ObjFechaVenda.CodigodoPedido ' Joga para variavel só para diminuir o tamanho do caracter para impressão

            Dim CodOper = ObjFechaVenda.Operador ' Joga para variavel só para diminuir o tamanho

            Oper = ObjFechaVenda.CodOperador

     

            ObjConfig.ultimo()

            If mindice = 0 Then

     

                If LblNomCli.Text <> "CONSUMIDOR" Then

     

                    c1 = 260

                    c2 = 275

                    c3 = 290

     

                    LinhaPorPagina = 29

     

                    e.Graphics.DrawString(NomeEmp.ToUpper, New Font("Lucida Console", ObjConfig.Fonte + 1, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 20)

                    e.Graphics.DrawString(EndeEmp & ", " & NumeEmp, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 35)

                    e.Graphics.DrawString(BairEmp & "   -    ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 50)

                    e.Graphics.DrawString(CidaEmp & " - " & EstaEmp, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 180, 50)

                    e.Graphics.DrawString("FONE:" & Tel1Emp & "   Sysit 1.0 ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 65)

                    e.Graphics.DrawString("Data:" & Lbldata.Text & " " & LBLHORA.Text & " Pedido:000" & campo, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 80)

                    e.Graphics.DrawString("" & "OPER:" & CodOper & "-" & Oper, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 95)

                    e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 110)

     

                    e.Graphics.DrawString("Nome:" & LblNomCli.Text, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 125)

                    e.Graphics.DrawString(ObjCliente.Endereco & "," & ObjCliente.Numero, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 140)

                    ' e.Graphics.DrawString(, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 220)

                    e.Graphics.DrawString(ObjCliente.Bairro & "  CEP:" & ObjCliente.Cep, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 155)

                    e.Graphics.DrawString(ObjCliente.Cidade & "-" & ObjCliente.UF, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 170)

                    'e.Graphics.DrawString("- " & "LblEst.Text", New Font("Lucida Console", 10, FontStyle.Regular), Brushes.Black, 300, 420)

                    e.Graphics.DrawString("TEL:" & ObjCliente.TelResidencia & " Cel:" & ObjCliente.Celular, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 185)

                    e.Graphics.DrawString("---------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 200)

                    e.Graphics.DrawString("Cod                 Descrição          ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 215)

                    e.Graphics.DrawString("Quantidade     VL.Unit       Sub-Total  ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 230)

                    e.Graphics.DrawString("---------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 245)

                Else

                    c1 = 175

                    c2 = 190

                    c3 = 205

     

                    LinhaPorPagina = 32

                    e.Graphics.DrawString(NomeEmp.ToUpper, New Font("Lucida Console", ObjConfig.Fonte + 1, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 20)

                    e.Graphics.DrawString(EndeEmp, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 35)

                    e.Graphics.DrawString(BairEmp & "   -    ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 50)

                    e.Graphics.DrawString(CidaEmp & " - " & EstaEmp, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 180, 50)

                    e.Graphics.DrawString("FONE:" & Tel1Emp & "        SysIT v1.0 ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 65)

                    e.Graphics.DrawString(Lbldata.Text & " " & LBLHORA.Text & "  Pedido:00" & campo, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 80)

                    e.Graphics.DrawString("VENDEDOR:" & LblVend.Text, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 95)

                    e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 110)

                    e.Graphics.DrawString("Cod                 Descricao           ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 125)

                    e.Graphics.DrawString("Quantidade      VL.Unit       Sub-Total ", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 140)

                    e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, 155)

     

                End If

            End If       

            While linha <= LinhaPorPagina AndAlso mindice < DGDItens.RowCount

     

                If linha - 1 < LinhaPorPagina Then

     

     

                    Try

                        cod_produto = DGDItens.Item(0, linha).Value

                        'codRef_Produto = DGDItens.Item(1, x1).Value

                        descricao = DGDItens.Item(2, linha).Value + "........................................."

                        precos = DGDItens.Item(4, linha).Value

                        qtd = DGDItens.Item(3, linha).Value

                        calculador = DGDItens.Item(5, linha).Value

     

                        calculador = Format(CSng(calculador), "0.00")

                    Catch ex As Exception

     

                    End Try

                End If

     

                If descricao.Length > 30 Then

                    descricao = Mid(descricao, 1, 30) + "..."

                End If

     

                If cod_produto > "0" Then

                    e.Graphics.DrawString("00" & cod_produto, New Font("Lucida Console    ", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c1)

                    'e.Graphics.DrawString(codRef_Produto, New Font("Lucida Console ", 10, FontStyle.Regular), Brushes.Black, 50, c1)

                    e.Graphics.DrawString(descricao.ToUpper, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 45, c1)

                    e.Graphics.DrawString(qtd, New Font("Lucida Console            ", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 30, c2)

                    e.Graphics.DrawString("X", New Font("Lucida Console            ", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 80, c2)

                    e.Graphics.DrawString(precos, New Font("Lucida Console         ", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 135, c2)

                    e.Graphics.DrawString(calculador, New Font("Lucida Console     ", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem + 235, c2)

                    'e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", 10, FontStyle.Regular), Brushes.Black, 20, c3)

     

                    mindice += 1

                    linha += 1

                End If

                '--------------------

                ' TAMANHO DE ESPAÇO

                '--------------------

                c1 = c1 + 30

                c2 = c2 + 30

                c3 = c3 + 30

     

    LinhaAtual = LinhaAtual + 1

            End While

     

            c2 = c2 - 15

            e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            ObjConfig.ultimo()

            c2 = c2 + 15

            e.Graphics.DrawString("Iten(s)" & x1 & "     TOTAL " & Format(lbltotal.Text, "currency"), New Font("Lucida Console", ObjConfig.Fonte + 1, FontStyle.Bold), Brushes.Black, ObjConfig.Margem, c2)

            c2 = c2 + 15

            e.Graphics.DrawString("Forma Pagto: " & LblFpagto.Text, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            c2 = c2 + 15

            ' e.Graphics.DrawString("Troco R$ " & "lbltroco.Text", New Font("Lucida Console", 10, FontStyle.Regular), Brushes.Black, 20, c2)

            'c2 = c2 + 20

            e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            Dim quantLinhas As Integer = frmOB.txtOBS.Lines.Length

            c2 = c2 + 20

            e.Graphics.DrawString(frmOB.txtOBS.Text, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

     

            If ObjConfig.Obs <> "" Then

                c2 = c2 + 10 * quantLinhas

     

                e.Graphics.DrawString("----------------------------------------", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

                c2 = c2 + 10

                e.Graphics.DrawString(ObjConfig.Obs, New Font("Lucida Console", ObjConfig.Fonte - 2, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            End If

            If ObjConfig.Info1 <> "" Then

                c2 = c2 + 10

                e.Graphics.DrawString(ObjConfig.Info1, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            End If

            If ObjConfig.Info2 <> "" Then

                c2 = c2 + 10

                e.Graphics.DrawString(ObjConfig.Info2, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            End If

            If ObjConfig.Info3 <> "" Then

                c2 = c2 + 10

                e.Graphics.DrawString(ObjConfig.Info3, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            End If

            If ObjConfig.Info4 <> "" Then

                c2 = c2 + 10

                e.Graphics.DrawString(ObjConfig.Info4, New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            End If

            For x1 = 0 To ObjConfig.Salto - 1

                c2 = c2 + 10

                e.Graphics.DrawString("", New Font("Lucida Console", ObjConfig.Fonte, FontStyle.Regular), Brushes.Black, ObjConfig.Margem, c2)

            Next

            If mindice < DGDItens.RowCount =true Then

                e.HasMorePages = True

                LinhaPorPagina = LinhaPorPagina + 38 '67 - 58

                c1 = 0

                c2 = 15

            Else

                e.HasMorePages = False   

    End If

    domingo, 5 de junho de 2011 19:21

Respostas

  • Leandro, acho mais fácil debugar o código e você conseguirá verificar exatamente onde ocorre a saída do código e não faz a impressão da parte necessária, assim fica até mais fácil você passar para o fórum o que exatamente esta ocorrendo.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Leandro Limonge terça-feira, 21 de junho de 2011 01:31
    domingo, 5 de junho de 2011 20:07

Todas as Respostas

  • Não sei se entenderam, qualquer coisa eu coloco o PDF do jeito que esta imprimindo >.. :D

    vlws

    domingo, 5 de junho de 2011 19:24
  • Leandro, acho mais fácil debugar o código e você conseguirá verificar exatamente onde ocorre a saída do código e não faz a impressão da parte necessária, assim fica até mais fácil você passar para o fórum o que exatamente esta ocorrendo.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Leandro Limonge terça-feira, 21 de junho de 2011 01:31
    domingo, 5 de junho de 2011 20:07
  • Vou debugar aqui e explico direitinho, hj to meio corrido mas amanhã postarei, nem fechem o topico por favor :) valeu luiz
    terça-feira, 7 de junho de 2011 00:31
  • Agradeço a ajuda, começei a mexer com Crystal Repors msm, e apanhei bem no começo mas consegui fazer ele baseado em leitura de XML, ficou bem melhor :D

    valeu

    terça-feira, 21 de junho de 2011 01:32