×
Linguagem de Programação ADVPL
Perguntas Impressão de Danfe
- arbarrero
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 10
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22730
por arbarrero
Impressão de Danfe foi criado por arbarrero
Pessoal, estou precisando imprimir em PDF todas as NFe referente a um determinado mês e armazena-las no servidor. Tem algum jeito mais fácil do que imprimir uma por uma?
Desde já agradeço.
Att.
André.
Desde já agradeço.
Att.
André.
Por favor Acessar ou Registrar para participar da conversa.
- inocenciojr
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 6 meses atrás #22731
por inocenciojr
Respondido por inocenciojr no tópico Impressão de Danfe
André,
Vc precisa que as notas estejam em arquivos separados?
Ou pode imprimir todas num único arquivo?
Vc precisa que as notas estejam em arquivos separados?
Ou pode imprimir todas num único arquivo?
Por favor Acessar ou Registrar para participar da conversa.
- robert
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
10 anos 3 meses atrás #23809
por robert
Respondido por robert no tópico Impressão de Danfe
Boa tarde, também preciso imprimir os danfes de um determinado período porém em arquivos separados! Alguém sabe se tem como?
No aguardo,
Robert Araújo
No aguardo,
Robert Araújo
Por favor Acessar ou Registrar para participar da conversa.
- fabio.spessotto
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
10 anos 3 meses atrás #23810
por fabio.spessotto
Respondido por fabio.spessotto no tópico Impressão de Danfe
Boa tarde, tudo bem?
Vai ser necessário fazer um personalização para chamar o fonte de impressão e executar a função de exportar a impressão para o local destinado.
Abraço,
Fabio Spessotto
Myddas Tecnologia
Telefone: (19) 3036-0324
Celular: (19) 99186-2744
E-mail: Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.
Skype: fabio.spessotto
Website: www.myddas.com
Vai ser necessário fazer um personalização para chamar o fonte de impressão e executar a função de exportar a impressão para o local destinado.
Abraço,
Fabio Spessotto
Myddas Tecnologia
Telefone: (19) 3036-0324
Celular: (19) 99186-2744
E-mail: Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.
Skype: fabio.spessotto
Website: www.myddas.com
Por favor Acessar ou Registrar para participar da conversa.
- inocenciojr
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 3 meses atrás #23831
por inocenciojr
Respondido por inocenciojr no tópico Impressão de Danfe
Robert,
Pega o fonte da danfe que você tem e troca primeira função por algo assim
Existem algumas rotinas aí que são externas minhas. Tenta adequar ao que você precisa e qualquer coisa posta aí
Pega o fonte da danfe que você tem e troca primeira função por algo assim
#INCLUDE "PROTHEUS.CH"
#INCLUDE "topconn.ch"
#INCLUDE "TBICONN.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
User Function DanfeEmail()
Local _cNumNF := ""
Local cAliasSF2 := "SF2"
Local lExistNfe := .F.
Local _aAreaSX1
Local ImpTermo
Local cCliente
Local nFlags := PD_ISTOTVSPRINTER+ PD_DISABLEORIENTATION + PD_DISABLEPAPERSIZE + PD_DISABLEMARGIN
Local cDir :=""
Local QUERY := nil
Local cData := DTOS(DATE())+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)
Private oDanfe := nil
Private oSetup := nil
Private nConsNeg := 0.4 // Constante para concertar o cálculo retornado pelo GetTextWidth para fontes em negrito.
Private nConsTex := 0.5 // Constante para concertar o cálculo retornado pelo GetTextWidth.
AJUSTASX1()
oSetup := FWPrintSetup():New(nFlags, OemToAnsi("Danfe"))
oSetup:SetProperty(1,2) //PD_DESTINATION
oSetup:SetProperty(2,6) //PD_PRINTTYPE
oSetup:SetProperty(3,1) //PD_ORIENTATION
oSetup:SetProperty(4,2) //PD_PAPERSIZE
oSetup:SetProperty(5,.T.) //PD_PREVIEW
//oSetup:SetProperty(6,"") //PD_VALUETYPE
oSetup:SetProperty(7,{60,60,60,60}) //PD_MARGIN
//PD_DESTINATION=1PD_PRINTTYPE=2PD_ORIENTATION=3PD_PAPERSIZE=4PD_PREVIEW=5PD_VALUETYPE=6PD_MARGIN=7
If oSetup:Activate() == PD_CANCEL
Return
EndIf
If Pergunte("NFSPED",.T.)
cCliente := MV_PAR07
ImpTermo := MV_PAR08
cQuery := " SELECT F2_DOC, F2_SERIE, F2_CLIENTE"
cQuery += ", A1_NREDUZ"//, B5_DR_ONU"
cQuery += " FROM "+RetSqlName("SF2")+" AS SF2"
cQuery += " INNER JOIN "+RetSqlName("SA1")+" AS SA1"
cQuery += " ON (F2_CLIENTE = A1_COD)"
cQuery += " WHERE F2_DOC BETWEEN '"+MV_PAR01+"' AND '"+MV_PAR02+"' AND"
If !Empty(cCliente)
cQuery += " F2_CLIENTE = '"+cCliente+"' AND"
cQuery += " F2_TIPO <> 'D' AND"
EndIf
cQuery += " F2_FILIAL = '"+xFilial("SF2")+"' AND"
cQuery += " SF2.D_E_L_E_T_ <> '*'"
cQuery += " ORDER BY F2_DOC"
TCQUERY cQuery NEW ALIAS QUERY
DbSelectArea("QUERY")
DbGoTop()
While Query->(!EoF())
Iif (Empty(cCliente),cNome := "Danfe_"+QUERY->F2_DOC+"_"+cData,cNome:= "Danfe_"+Alltrim(QUERY->A1_NREDUZ)+"_"+cData)
MV_PAR01 := QUERY->F2_DOC
MV_PAR02 := QUERY->F2_DOC
If oDanfe == Nil
lPreview := .T.
oDanfe := FWMSPrinter():New(cNome,6,.F.,,.T.,,)
oDanfe:SetResolution(78) //Tamanho estipulado para a Danfe
oDanfe:SetPortrait()
oDanfe:SetPaperSize(DMPAPER_A4)
oDanfe:SetMargin(60,60,60,60)
//oDanfe:lServer := oSetup:GetProperty(PD_DESTINATION)==AMB_SERVER
//oDanfe:cPathPDF := "C:\Danfe\"
oDanfe:cPathPDF := oSetup:aOptions[PD_VALUETYPE]
oDanfe:SetViewPDF(.T.)
cDir := oSetup:aOptions[PD_VALUETYPE]
EndIf
Private PixelX := odanfe:nLogPixelX()
Private PixelY := odanfe:nLogPixelY()
RptStatus({|lEnd|DanfeProc(@oDanfe,@lEnd,"000002",,,@lExistNfe)},"Imprimindo Danfe...")
If ImpTermo == 1
U_FRTermo(2,@oDanfe)
EndIf
DbSelectArea("Query")
DbSkip()
If Empty(cCliente) .Or. EoF()
If lExistNfe
oDanfe:Preview()//Visualiza antes de imprimir
//If MsgYesNo("Deseja enviar email?","Envia Danfe email")
U_DELTAENVEMAIL(cDir,cNome,cCliente,cNumNota,cSerieNF)//,cTransp)
//EndIf
Else
Aviso("DANFE","Nenhuma NF-e a ser impressa nos parametros utilizados.",{"OK"},3)
EndIf
FreeObj(oDanfe)
oDanfe := Nil
EndIf
EndDo
Else
Return
EndIf
DbSelectArea("Query")
DbCloseArea("Query")
Return(.T.)
Existem algumas rotinas aí que são externas minhas. Tenta adequar ao que você precisa e qualquer coisa posta aí
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.104 segundos