× Linguagem de Programação ADVPL

Perguntas Impressão de Danfe

Mais
10 anos 7 meses atrás #22730 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é.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 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?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 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
#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.144 segundos
Joomla templates by a4joomla