CUPOM-PRINTDOCUMENT

 Tópico anterior Próximo tópico Novo tópico

CUPOM-PRINTDOCUMENT

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#474650 - 21/06/2017 20:49:34

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


 Anexos estao visíveis somente para usuários registrados

Boa noite galera, hoje um cliente me chamou para tratarmos de um problema que aconteceu, que só percebi hoje quando aconteceu nesse cliente..
tipo é um Mercadinho... teve uma Feira que deu quase 50 Itens. blz.. a venda passou tranquilo.. total .. forma de pagamento bacana..

mais quando foi finalizar q impimiu o comprovante...... Xiiiiiiiiiiiiii deu Zebra..... não saiu todos os itens da venda, pensa so no problema....
veja no print.. No final da tarde de hj.. tive q pegar 50 produtos... e passa para ver qnd imprimisse... dai foi oq aconteceu mesmo... eu coloquei na impressora Virtual no DoPDF7.
para ver a impressão . tirei um print. e realmente so está imprimindo em 1 Pagina.. não deu continuidade a criar outra pagina na sequencia.. pois no final depois do ultimo Item.
tem as formas de pagamento. nome do Operador. e algumas informações em baixo..

Galera, gostaria de saber com algum de vcs. aconteceu isso. e se tem como Resolver, ta normal o codigo qnd os itens couber em 1 folha da certo.. agora se for muito itens.
que nesse caso deu Zebra.. quase 50 itens. que nao coube em 1 pagina.. e teria q ser em 2 paginas.. ai sim daria certo.

Agradeço desde de já a todos



#474651 - 21/06/2017 20:52:50

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


  e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, 80)
        e.Graphics.DrawString("[**COMPROVANTE PARA CONFERÊNCIA**]", minhafonte1, Brushes.Black, rect2, stringFormat)
        e.Graphics.DrawString("- SEM  VALOR  FISCAL -", minhafonte1, Brushes.Black, rect3, stringFormat)
        e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, 120)
  
e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, 210)

        e.Graphics.DrawString("DESCRIÇÃO                        UND QTD UNITÁRIO   TOTAL", minhafonte1, Brushes.Black, 15, 220)

        e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, 230)

        ''a estrutura de repetição abaixo é usada para impressão de todos os itens da lista
        y = 240
        For i = 1 To dgvProdutos.Rows.Count       '                  
            e.Graphics.DrawString(Mid(dgvProdutos.Rows(i - 1).Cells(2).Value, 1, 39) & " - " & (dgvProdutos.Rows(i - 1).Cells("und_medida").Value), minhafonte1, Brushes.Black, 15, y) ' AQUI PEGA A DESCRIÇÃO
            y = y + 10
            e.Graphics.DrawString(Format(CDec(dgvProdutos.Rows(i - 1).Cells(3).Value.ToString), "F0"), minhafonte1, Brushes.Black, New RectangleF(155, y, 28, minhafonte1.Height), sf) ' AQUI PEGA a QUANTIDADE
            e.Graphics.DrawString(Format(CDec(dgvProdutos.Rows(i - 1).Cells(4).Value.ToString), "###,##0.00"), minhafonte1, Brushes.Black, New RectangleF(193, y, 33, minhafonte1.Height), sf) ' AQUI PEGA a VLR UNIT
            e.Graphics.DrawString(dgvProdutos.Rows(i - 1).Cells(6).Value, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf) ' AQUI PEGA a VLR total
            y = y + 10
        Next

        e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, y)
        '
        y = y + 20
        e.Graphics.DrawString("FORMA DE PAGAMENTO:", minhafonte1, Brushes.Black, 15, y)
        e.Graphics.DrawString(FormaPagto, minhafonte1, Brushes.Black, New RectangleF(207, y, 60, minhafonte1.Height), sf)

        If txt_tot_desconto.Text <> "0,00" Then
            y = y + 10
            e.Graphics.DrawString("SUBTOTAL R$:", minhafonte1, Brushes.Black, 15, y)
            e.Graphics.DrawString(txtTotalPagar.Text, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf)
        End If

        If txt_tot_desconto.Text <> "0,00" Then
            y = y + 10
            e.Graphics.DrawString("DESCONTOS R$:", minhafonte1, Brushes.Black, 15, y)
            e.Graphics.DrawString(txt_tot_desconto.Text, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf)
        End If

        y = y + 10
        e.Graphics.DrawString("TOTAL A PAGAR R$:", minhafonte1, Brushes.Black, 15, y)
        e.Graphics.DrawString(Total_formpgto, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf)

        If FormaPagto <> "03=A Prazo" Then
            If ValorPago <> "" Then
                y = y + 10
                e.Graphics.DrawString("VLR. PAGO R$:", minhafonte1, Brushes.Black, 15, y)
                e.Graphics.DrawString(ValorPago, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf)
            End If

            If Troco <> "" Then
                y = y + 10
                e.Graphics.DrawString("TROCO R$:", minhafonte1, Brushes.Black, 15, y)
                e.Graphics.DrawString(Troco, minhafonte1, Brushes.Black, New RectangleF(225, y, 45, minhafonte1.Height), sf)
            End If
        End If

        y = y + 20
        e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, y)

        If FormaPagto = "03=A Prazo" Then
            y = y + 20
            e.Graphics.DrawString("*****   VENDA À PRAZO - NOTA PROMISSÓRIA   *****", minhafonte1, Brushes.Black, 15, y)

            y = y + 10
            e.Graphics.DrawString("Autorizo a utilização  deste  cupom  como  NOTA", minhafonte1, Brushes.Black, 15, y)

            y = y + 10
            e.Graphics.DrawString("PROMISSÓRIA, e pagarei a quantia de:   " & Total_formpgto, minhafonte1, Brushes.Black, 15, y)

            y = y + 10
            e.Graphics.DrawString("no dia: " & Mid(Venc.ToString, 1, 10), minhafonte1, Brushes.Black, 15, y)

            y = y + 50
            e.Graphics.DrawString("----------------------------------------------------------------------------", minhafonte1, Brushes.Black, 15, y)

            y = y + 10
            e.Graphics.DrawString("                   ASSINATURA DO CLIENTE                    ", minhafonte1, Brushes.Black, 15, y)
        End If


        y = y + 10
        e.Graphics.DrawString("PDV: " & Caixa_NaoFiscal & "    USUARIO: 00" & strIDusuario & "    VENDA: " & Format(CInt(lblNumero_NFe.Text), "00000"), minhafonte1, Brushes.Black, 15, y)
        '
        y = y + 20
        e.Graphics.DrawString("                            VOLTE SEMPRE!!!                           ", minhafonte1, Brushes.Black, 15, y)




Resposta escolhida #474654 - 21/06/2017 22:39:59

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 21/06/2017 22:40:44 por NILSONTRES

Então, mas cupom de venda com print ? Isso não da certo, tem que ser tipo porta com, Matricial, nada que conte paginas, a não ser Nfe danfe., pode ter muitos itens uma venda.
Em vb.net o ideal é vc escrever em arquivo e mandar para a impressora, matricial, termica com dll ou sem.




#474656 - 21/06/2017 23:05:13

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


Citação:
:
Então, mas cupom de venda com print ? Isso não da certo, tem que ser tipo porta com, Matricial, nada que conte paginas, a não ser Nfe danfe., pode ter muitos itens uma venda.
Em vb.net o ideal é vc escrever em arquivo e mandar para a impressora, matricial, termica com dll ou sem.

Amigo, aproveitando o tópico. Teria como exemplificar ?


Eu não nasci, fui Compilado

#474661 - 22/06/2017 09:12:04

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Public Shared Function IMPRIMI_DIRETO_COMANDA(ByVal _NumComanda As Integer) As String
            Try
                SQL_COMANDAS.List("Select *From nag_comandas Where CodComanda=" & _NumComanda & "")
                SQL_COMANDAS_ITENS.List("Select *From nag_comandas_itens Where Cod_Comanda=" & _NumComanda & "")

                Dim _NomeArq As String = My.Application.Info.DirectoryPath & "\PrintGen.txt"
                Dim sw As New IO.StreamWriter(_NomeArq)
                Dim V_POS As Integer = (42 - Len(Mid(Removeacentos(CupomEmitente_Sat_Emitente), 1, 40))) / 2

                sw.WriteLine(ESPECIFICOS(1))
                sw.WriteLine(ALINHAMENTO(1))
                sw.WriteLine(Removeacentos(CupomEmitente_Sat_Emitente))
                'sw.WriteLine(ESPECIFICOS(2))
                sw.WriteLine(FONTE(0))
                sw.WriteLine(TRACEJOS(1, 0))
                '**CABEÇA**
                sw.WriteLine(ALINHAMENTO(1))
                sw.WriteLine(Space(0) & "COMANDA: " & String.Format("{0:00000000}", Int32.Parse(_NumComanda)) & Space(1) & _ListComandas.Item(0).Data_Comanda & Space(1) & _ListComandas.Item(0).Hora_Comanda & IIf(_ListComandas.Item(0).Vendedor_Cod = 0, "", "  VEND " & _ListComandas.Item(0).Vendedor_Cod))
                sw.WriteLine(TRACEJOS(1, 0))
                'sw.WriteLine(Space(0) & Removeacentos(CupomEmitente_Sat_FRASE_FISCAL))
                If _ListComandas.Item(0).Cliente_Cod <> 0 Then
                    sw.WriteLine(Space(0) & "CLIENTE: " & Space(0) & _ListComandas.Item(0).Cliente_Cod & " " & Removeacentos(_ListComandas.Item(0).Cliente))
                End If
                If _ListComandas.Item(0).Entrega = 1 Then 'ENTREGA
                    sw.WriteLine(TRACEJOS(1, 0))
                    sw.WriteLine(ALINHAMENTO(0))
                    sw.WriteLine(Space(0) & "DADOS PARA ENTREGA")
                    sw.WriteLine(Space(0) & "END: " & Space(0) & Removeacentos(_ListComandas.Item(0).Logradouro) & ", " & _ListComandas.Item(0).Numero & " - " & Removeacentos(_ListComandas.Item(0).Complemento))
                    sw.WriteLine(Space(0) & Removeacentos(_ListComandas.Item(0).Bairro) & " - " & Removeacentos(_ListComandas.Item(0).Municipio) & "-" & Removeacentos(_ListComandas.Item(0).UF) & " - Fone: " & Removeacentos(_ListComandas.Item(0).Fones))
                End If

                sw.WriteLine(ALINHAMENTO(0))

                Dim IT As Integer = 0

                For IT = 0 To _ListComandasItens.Count - 1
                    sw.WriteLine(Space(0) & String.Format("{0:000}", Int32.Parse(_ListComandasItens(IT).Item)) & Space(5 - Len(_ListComandasItens(IT).Item)) & "-" & _ListComandasItens(IT).Cod_Bar & Space(18 - Len(_ListComandasItens(IT).Cod_Bar)) & Removeacentos(Mid(_ListComandasItens(IT).Produto.ToString, 1, 36)))
                    'sw.WriteLine(Space(0) & String.Format("{0:000}", Int32.Parse(_ListComandasItens(IT).Item)) & Space(5 - Len(_ListComandasItens(IT).Item)) & " " & Removeacentos(Mid(_ListComandasItens(IT).Produto.ToString, 1, 36)))
                    If V_DESCONTO_ITEM(IT) > 0 Then
                        sw.WriteLine(Space(11) & _ListComandasItens(IT).Tipo_Fracao & " " & FormatNumber(_ListComandasItens(IT).Vlr_Unit, 2).PadLeft(9) & Space(1) & "X" & Space(1) & _ListComandasItens(IT).QTD & Space(9 - Len(_ListComandasItens(IT).QTD)) & Space(1) & FormatNumber("-" & _ListComandasItens(IT).Vlr_Desc, 2).PadLeft(8) & Space(1) & FormatNumber(_ListComandasItens(IT).Vlr_Tot_Item, 2).PadLeft(8))
                    Else
                        sw.WriteLine(Space(11) & _ListComandasItens(IT).Tipo_Fracao & " " & FormatNumber(_ListComandasItens(IT).Vlr_Unit, 2).PadLeft(9) & Space(1) & "X" & Space(1) & _ListComandasItens(IT).QTD & Space(9 - Len(_ListComandasItens(IT).QTD)) & Space(1) & FormatNumber(_ListComandasItens(IT).Vlr_Tot_Item, 2).PadLeft(8))
                    End If

                    'sw.WriteLine(Space(0) & V_ITEM(IT) & Space(4 - Len(V_ITEM(IT))) & V_COD_BAR(IT) & Space(15 - Len(V_COD_BAR(IT))) & FormatNumber(V_VLR_UNIT(IT), 2).PadLeft(9) & Space(1) & "X" & Space(1) & V_QTD(IT) & Space(9 - Len(V_QTD(IT))) & Space(1) & FormatNumber(V_VLR_SUBTOTAL(IT), 2).PadLeft(9))
                    'sw.WriteLine(Space(0) & Removeacentos(V_DESCRICAO(IT)))
                Next


                'sw.WriteLine("")
                sw.WriteLine(TRACEJOS(1, 0))
                sw.WriteLine(ALINHAMENTO(0))

                If CType(_ListComandas.Item(0).Vlr_Desc, Double) <> 0 Then
                    sw.WriteLine(Space(0) & "S.TOT > " & FormatNumber(_ListComandas.Item(0).Vlr_Sub_Tot, 2).PadLeft(9))
                    sw.WriteLine(Space(0) & "DESC  > " & FormatNumber(_ListComandas.Item(0).Vlr_Desc, 2).PadLeft(9))
                End If
                sw.WriteLine(Space(0) & "TOTAL > " & FormatNumber(_ListComandas.Item(0).Vlr_Tot, 2).PadLeft(9))
                sw.WriteLine("")
                If _ListComandas.Item(0).Obs.Trim <> "" Then
                    sw.WriteLine(Space(0) & "OBS:" & Removeacentos(_ListComandas.Item(0).Obs))
                End If
                sw.WriteLine("")
                sw.WriteLine("************** SEM VALOR FISCAL ***************")
                sw.WriteLine(ESPECIFICOS(1))
                Dim i As Int32
                For i = 0 To V_AVANCO_IMPRESSORA - 1
                    sw.WriteLine("")
                Next
                'sw.WriteLine(Chr(27) & "v" & Chr(100)) 'abrir gaveta elgin
                sw.WriteLine(CORTE)
                sw.Flush()
                sw.Close()

                If V_IMPRIMI_CUPOM = 1 Then
                    Return ImprimiCom.Imprimi(_NomeArq)
                Else
                    Return ""
                End If

            Catch
                MsgBox(Err.Description & vbCrLf & Err.GetException.StackTrace, MsgBoxStyle.Critical, "IMPRIMI_DIRETO_TIPO1")
                Return "ERRO"
            End Try
        End Function


*******************imprimi na porta com
Public Shared Function Imprimi(ByVal StringArquivo As String) As String
            Try
              
                          Dim PortaCom As SerialPort = New SerialPort(PortaImpressora, VelocidadeImpressora, Parity.None, 8, StopBits.One)
                    PortaCom.RtsEnable = True
                    PortaCom.WriteTimeout = 1000
                    Try
                        PortaCom.Open()
                    Catch
                        'MsgBox("Erro ao abrir porta serial, Nome da Porta: " & PortaImpressora, MsgBoxStyle.Critical, "AVISO - Print_Daruma")
                        Return "Erro ao abrir porta serial, Nome da Porta: " & PortaImpressora & vbCrLf & Err.Description
                    End Try
                  
                    Dim Retorno() As Byte = New Byte((ConteudoImprimi.Length) - 1) {}
                    Dim i As Integer = 0
                    Do While (i < ConteudoImprimi.Length)
                        Retorno(i) = Convert.ToByte(ConteudoImprimi(i))
                        i = (i + 1)
                    Loop
                    PortaCom.Write(Retorno, 0, ConteudoImprimi.Length)
                    PortaCom.Close()
                    Return ""
                              
              
            Catch
                MsgBox(Err.Description & vbCrLf & Err.GetException.StackTrace, MsgBoxStyle.Critical, "IMPRIMI")
            End Try
        End Function



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JOHNSTEVE em 29/06/2017 18:30:30