- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Imprimir Danfe + Boleto
×
Linguagem de Programação ADVPL
Perguntas Imprimir Danfe + Boleto
- inocenciojr
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 7 meses atrás #22364
por inocenciojr
Imprimir Danfe + Boleto foi criado por inocenciojr
Bom dia Srs,
Alguém tem algum exemplo de como imprimir em um único arquivo pdf a DANFE e o Boleto.
Eu consigo gerar cada um em rotinas separadas, porém estou tentando gerar ambos em uma única rotina em um mesmo pdf para facilitar a impressão e o envio por email.
Alguém tem algum exemplo de como imprimir em um único arquivo pdf a DANFE e o Boleto.
Eu consigo gerar cada um em rotinas separadas, porém estou tentando gerar ambos em uma única rotina em um mesmo pdf para facilitar a impressão e o envio por email.
Os seguintes usuário(s) disseram Obrigado: heverson.gomes
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 6 meses atrás #22418
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Imprimir Danfe + Boleto
Inocencio boa noite, já fiz isso uma vez, o que vai precisar é no final da geração do danfe chamar sua rotina de impressão do boleto passando os parametros dos titulos, olha só, pra gerar o boleto em pdf já vi o pessoal reclamando que a função do código de barras não dá certo, por isso já te aconselho que vai ter muitos problemas, segue uma idéia de como passo os parâmetros chamando a rotina de impressão de boleto, após geração da danfe.
If SE4->(dbSetOrder(1), dbSeek(xFilial("SE4")+cCond)) .And. SE4->E4_DYBOLET == 'S' // Imprime Boleto
cBcoPadrao := GetNewPar("DY_BCOBOL" ,"001;3320;0;2062;1;17")
aBanco := Separa(cBcoPadrao,";",.T.)
cBanco := PadR(aBanco[1],TAMSX3("A6_COD")[1])
cAgencia := PadR(aBanco[2],TAMSX3("EE_AGENCIA")[1])
cAgeDigi := PadR(aBanco[3],TAMSX3("EE_DVAGE")[1])
cConta := PadR(aBanco[4],TAMSX3("EE_CONTA")[1])
cConDigi := PadR(aBanco[5],TAMSX3("EE_DVCTA")[1])
cSubConta := PadR(aBanco[6],TAMSX3("EE_SUBCTA")[1])
If !SEE->(dbSetOrder(1), dbSeek(xFilial("SEE")+cBanco+cAgencia+cConta+cSubConta))
If lAuto
Conout("Atencao Banco para Boleto Nao Localizado na Tabela SEE ! -> Nota " + SF2->F2_DOC)
Else
Alert("Atencao Banco para Boleto Nao Localizado na Tabela SEE ! -> Nota " + SF2->F2_DOC)
Endif
DbSelectArea("Query")
DbSkip();Loop
Endif
cPrefixoDe := QUERY->F2_SERIE
cPrefixoAte := QUERY->F2_SERIE
cNumDe := QUERY->F2_DOC
cNumAte := QUERY->F2_DOC
cParcelaDe := ' '
cParcelaAte := 'ZZZ'
cClienteDe := QUERY->F2_CLIENTE
cClienteAte := QUERY->F2_CLIENTE
cLojaDe := QUERY->F2_LOJA
cLojaAte := QUERY->F2_LOJA
nReimpressao := 2
nConsidera := 2
nMarcados := 2
U_DYFINR01(.t.,cPrefixoDe,cPrefixoAte,cNumDe,cNumAte,cParcelaDe,cParcelaAte,cClienteDe,cClienteAte,cLojaDe,cLojaAte,cBanco,cAgencia,cConta,cSubConta,nReimpressao,nConsidera,nMarcados,cImpDanfe)
E No fonte de Impressão do Boleto, vc vai receber todos os parâmetros acima e tratar dentro do fonte:
User Function DYFINR01(lAuto,cPrefixoDe,cPrefixoAte,cNumDe,cNumAte,cParcelaDe,cParcelaAte,cClienteDe,cClienteAte,cLojaDe,cLojaAte,cBanco,cAgencia,cConta,cSubConta,nReimpressao,nConsidera,nMarcados)
If !lAuto
If !Pergunte(cPerg,.T.)
Return(Nil)
EndIf
Else
// Impressao Automatica Boleto
Pergunte(cPerg,.F.)
MV_PAR01 := cPrefixoDe
MV_PAR02 := cPrefixoAte
MV_PAR03 := cNumDe
MV_PAR04 := cNumAte
MV_PAR05 := cParcelaDe
MV_PAR06 := cParcelaAte
MV_PAR07 := cClienteDe
MV_PAR08 := cClienteAte
MV_PAR09 := cLojaDe
MV_PAR10 := cLojaAte
MV_PAR11 := cBanco
MV_PAR12 := cAgencia
MV_PAR13 := cConta
MV_PAR14 := cSubConta
MV_PAR15 := nReimpressao
MV_PAR16 := nConsidera
MV_PAR17 := nMarcados
If SE4->(dbSetOrder(1), dbSeek(xFilial("SE4")+cCond)) .And. SE4->E4_DYBOLET == 'S' // Imprime Boleto
cBcoPadrao := GetNewPar("DY_BCOBOL" ,"001;3320;0;2062;1;17")
aBanco := Separa(cBcoPadrao,";",.T.)
cBanco := PadR(aBanco[1],TAMSX3("A6_COD")[1])
cAgencia := PadR(aBanco[2],TAMSX3("EE_AGENCIA")[1])
cAgeDigi := PadR(aBanco[3],TAMSX3("EE_DVAGE")[1])
cConta := PadR(aBanco[4],TAMSX3("EE_CONTA")[1])
cConDigi := PadR(aBanco[5],TAMSX3("EE_DVCTA")[1])
cSubConta := PadR(aBanco[6],TAMSX3("EE_SUBCTA")[1])
If !SEE->(dbSetOrder(1), dbSeek(xFilial("SEE")+cBanco+cAgencia+cConta+cSubConta))
If lAuto
Conout("Atencao Banco para Boleto Nao Localizado na Tabela SEE ! -> Nota " + SF2->F2_DOC)
Else
Alert("Atencao Banco para Boleto Nao Localizado na Tabela SEE ! -> Nota " + SF2->F2_DOC)
Endif
DbSelectArea("Query")
DbSkip();Loop
Endif
cPrefixoDe := QUERY->F2_SERIE
cPrefixoAte := QUERY->F2_SERIE
cNumDe := QUERY->F2_DOC
cNumAte := QUERY->F2_DOC
cParcelaDe := ' '
cParcelaAte := 'ZZZ'
cClienteDe := QUERY->F2_CLIENTE
cClienteAte := QUERY->F2_CLIENTE
cLojaDe := QUERY->F2_LOJA
cLojaAte := QUERY->F2_LOJA
nReimpressao := 2
nConsidera := 2
nMarcados := 2
U_DYFINR01(.t.,cPrefixoDe,cPrefixoAte,cNumDe,cNumAte,cParcelaDe,cParcelaAte,cClienteDe,cClienteAte,cLojaDe,cLojaAte,cBanco,cAgencia,cConta,cSubConta,nReimpressao,nConsidera,nMarcados,cImpDanfe)
E No fonte de Impressão do Boleto, vc vai receber todos os parâmetros acima e tratar dentro do fonte:
User Function DYFINR01(lAuto,cPrefixoDe,cPrefixoAte,cNumDe,cNumAte,cParcelaDe,cParcelaAte,cClienteDe,cClienteAte,cLojaDe,cLojaAte,cBanco,cAgencia,cConta,cSubConta,nReimpressao,nConsidera,nMarcados)
If !lAuto
If !Pergunte(cPerg,.T.)
Return(Nil)
EndIf
Else
// Impressao Automatica Boleto
Pergunte(cPerg,.F.)
MV_PAR01 := cPrefixoDe
MV_PAR02 := cPrefixoAte
MV_PAR03 := cNumDe
MV_PAR04 := cNumAte
MV_PAR05 := cParcelaDe
MV_PAR06 := cParcelaAte
MV_PAR07 := cClienteDe
MV_PAR08 := cClienteAte
MV_PAR09 := cLojaDe
MV_PAR10 := cLojaAte
MV_PAR11 := cBanco
MV_PAR12 := cAgencia
MV_PAR13 := cConta
MV_PAR14 := cSubConta
MV_PAR15 := nReimpressao
MV_PAR16 := nConsidera
MV_PAR17 := nMarcados
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- inocenciojr
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 6 meses atrás #22425
por inocenciojr
Respondido por inocenciojr no tópico Imprimir Danfe + Boleto
Luiz Bom dia!
Muito obrigado. Eu tenho de chamar minha função no fim do DanfeProc ou do PrtNfeSef?
E outra coisa, eu consigo pegar os MV_PAR para passar como parâmetros para impressão do boleto?
Pois a ideia é que o fonte assuma estas informações para a impressão da Danfe e o boleto, além de alguns relatórios que necessários para o cliente.
Obrigado pela ajuda!
Muito obrigado. Eu tenho de chamar minha função no fim do DanfeProc ou do PrtNfeSef?
E outra coisa, eu consigo pegar os MV_PAR para passar como parâmetros para impressão do boleto?
Pois a ideia é que o fonte assuma estas informações para a impressão da Danfe e o boleto, além de alguns relatórios que necessários para o cliente.
Obrigado pela ajuda!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Imprimir Danfe + Boleto
Tempo para a criação da página:0.157 segundos