CTeGeraDACTe

A função CTeGeraDACTe é usada para gerar o DACTe em PDF a partir de um XML de CT-e.

Tipo de Retorno

Integer

Pacote

A função CTeGeraDACTe está definida no pacote CTeGeraDACTe.pkg.

Sintaxe

Move (CTeGeraDACTe(&{vtCTeGeraDACTe_Parametros})) to {iRetorno}

Onde:

  • &{vtCTeGeraDACTe_Parametros} é uma variável do tipo tCTeGeraDACTe_Parametros que deve ser passada por referência. Cada campo desta variável corresponde a um parâmetro que será enviado para a função ou um retorno que será devolvido por ela. Abaixo está a definição dos campos que estão dentro da estrutura:
// Parâmetros de entrada. O desenvolvedor deverá informar estes valores 
// na estrutura para chamar a função

Boolean bExibeErro // [OPCIONAL] Indica se a função deve exibir erros
// que ocorrerem em sua execução.
String sArquivoXMLCTe // [OBRIGATÓRIO] Caminho do arquivo XML do CT-e
// autorizado para gerar o DACTe.
String sDadosEmissor // [OPCIONAL] Dados do emissor. Se for deixado
// em branco, os dados de identificação do emissor
// serão obtidos do XML do CT-e.
// Se informado com um nome de arquivo, a imagem do
// arquivo informado irá ocupar o quadro de
// identificação do emitente.
// A imagem deve ser um arquivo jpg de 339 x 114
// pixels (baixa resolução), 678 x 228 (alta resolu- // ção ou 1359 x 456 (alta resolução), que deverá // ter os dados cadastrais do emitente do CT-e,
// pois a imagem irá ocupar todo o quadro do emissor.
// Se informado o literal [SEM DADOS EMITENTE],
// nenhum dado será impresso no quadro de
// identificação do emitente.
String sQuadroRecibo // [OPCIONAL] Informar "S" ou "I" para indicar a
// posição onde será gerado o quadro do Recibo de
// Entrega: posição [S]uperior ou posição [I]nferior
// Se não for informado, será usado "I".
Boolean bVisualizar // [OPCIONAL] Se for True, o arquivo PDF será
// aberto após a geração.
String sNomeArquivoPDF // [OPCIONAL] Nome do arquivo PDF que será gerado.
// Se não for informado, será gerado como
// {CHAVECTE}.pdf, onde {CHAVECTE} é a chave do
// CT-e.
// Por padrão o arquivo será salvo no diretório
// onde está o arquivo executável da aplicação.
// Para identificar um diretório diferente,
// use o parâmetro sPastaPDF.
String sPastaPDF // [OPCIONAL] Diretório onde o arquivo será gerado.
// Se não for informado, o arquivo será gerado na mesma
// pasta onde está a aplicação.
String sRodape // [OPCIONAL] Texto para ser impresso no rodapé do CT-e.
// O valor padrão é uma nota de Copyright da Acronsoft.
Integer iCopias // [OPCIONAL] Número de cópias para impressão. Se for
// informado, o DACTe será enviado diretamente para a
// impressora padrão. Valores válidos de 0
// (sem impressão) a 5.
Boolean bComFatura // [OPCIONAL] Indica que os dados da fatura devem ser
// impressos em informações adicionais.
String sTextoMensagem // [OPCIONAL] Texto que será impresso no corpo do
// DACTe.
Boolean bSemQuadroEmitente // [OPCIONAL] Se for True, desabilida a
// impressão dos dados do emitente e também
// do quadro. Indicado para quem possui
// impresso personalizado.
Boolean bSumatraPDF // [OPCIONAL] Indica o uso do SumatraPDF para
// visualização e impressão do PDF. É necessário ter
// o SumatraPDF na pasta Programs.
String sMensagemRecibo // [OPCIONAL] permite indicar o texto que será
// mostrado no quadro do Recibo de Entrega
// (canhoto).
String sMarcaDaguaXML // [OPCIONAL] permite acrescentar uma imagem de
// marca d’água no DANFE, informar um XML com pelo
// menos uma figura. Exemplo:
// <marcadagua>
// <item>
// <cxmm>100</cxmm> <-- coordenada x (centro da imagem)
// <cymm>150</cymm> <-- coordenada y (superior)
// <imagem>c:MarcaDaAgua.jpg</imagem>
// <largmm>100</largmm>
// <altmm>100</altmm>
// </item>
// </marcadagua>
Integer iAltQuadroRecibo // [OPCIONAL] Permite personalizar a altura do
// quadro recibo. Valores válidos de 18 a 40.
String sDadosEmissorXML // [OPCIONAL] Permite personalizar os dados do
// emissor. Exemplo:
// <dadosemissor>
// <item>
// <cxmm>39</cxmm> <-- coordenada x (em milímetro)
// <cymm>7</cymm> <-- coordenada y (em milímetro)
// <fontemm>2,7</fontemm> <-- tamanho da fonte (em milímetro)
// <texto>Acronsoft</texto> <-- texto a ser impresso
// </item>
// <item>
// <cxmm>10</cxmm>
// <cymm>16</cymm>
// <fontemm>2,5</fontemm>
// <texto>Rua. Eloy de Castro Barros, 129</texto>
// </item>
// <item>
// <cxmm>15</cxmm>
// <cymm>20</cymm>
// <fontemm>2,2</fontemm>
// <texto>CEP 07056-070 - São Paulo-SP</texto>
// </item>
// <item>
// <cxMM>14</cxMM>
// <cyMM>24</cyMM>
// <fonteMM>2,2</fonteMM>
// <texto>Tel: (11) 4378-1112</texto>
// </item>
// <item>
// <cxMM>22</cxMM>
// <cyMM>28</cyMM><br />
// <fonteMM>2,2</fonteMM>
// <texto>suporte@acronsoft.com.br</texto>
// </item>
// </DadosEmissor>
Boolean bObsContribuinte // [OPCIONAL] Imprimir os dados informados em
// ObsCont no quadro de uso exclusivo do
// emitente - sem qualquer formatação ou quebra
// de linha, assim recomendamos usar as
// observações gerais.
Boolean bObsFisco // [OPCIONAL] Imprimir os dados informados em ObsFisco
// no quadro de uso exclusivo do fisco - sem qualquer
// formatação ou quebra de linha, assim recomendamos
// usar as observações gerais.
Boolean bMostrarDadosToma // [OPCIONAL] Se deseja mostrar os dados do
// tomador que é remetente, expedidor,
// recebedor ou destinatário. Por padrão a
// função não mostra os dados do tomador que já
// consta como parte no CT-e, exemplo: se o
// tomador for o destinatário, a DLL só irá
// indicar o Destinatário nos dados do tomador.
String sEPEC // [OPCIONAL] Número do protocolo de registro EPEC para
// exibição no DACTE. String sCaractereCRLF // [OPCIONAL] Indica o caractere que deve ser interpretado com
// quebra de linha ao gerar o DACTe. Se não for informado, o
// valor padrão é ";". // Nota: disponível a partir da versão 2018/01

// Parâmetros de saída. A função devolverá informações nestes campos.
// Eles não devem ser preenchidos para chamar a função.

String sRetMsgResultado // Retorna o literal do resultado da chamada
// da função.
  • {iRetorno} é um código que indica o resultado da chamada da função:
    • -1 - Arquivo XML não localizado.
    • -2 - Erro ao criar objeto XML.
    • -3 - Erro ao carregar os dados do arquivo XML. Verifique se o arquivo está íntegro.
    • -4 - Erro no registro da DLL CTeLibrary.dll.
    • -5 - Erro no registro da DLL CTeLibrary.dll.
    • 7900 - PDF da DACTe do CT-e gerado com sucesso.
    • 7901 - PDF da DACTe do CT-e gerado com sucesso com o valor informado.
    • 7902 - Erro: Indicador de Imprimir Quadro de Recibo informado inválido.
    • 7903 - Erro: Indicador de visualização informado inválido.
    • 7904 - Erro: A DLL não oferece suporte para geração do modal desejado.
    • 7905 - Erro: A DLL não oferece suporte para geração do PDF para a versaõ do CT-e.
    • 7906 - Erro: Falha na gravação do PDF.
    • 7907 - Erro: Falha na leitura do XML do CT-e.
    • 7908 - Erro: Situação imprevista. Erro do Windows.
    • 7909 - Erro: Falha no processo de tratamento do XML, examine a mensagem de erro do Windows.
    • 7910 - Erro: Falha na leitura do arquivo de logo.
    • 7911 - Erro: Falha no processo de visualização do PDF, examine a mensagem de erro do Windows.
    • 7912 - Erro: Falha no processo de impressão do PDF, examine a mensagem de erro do Windows.
    • 7913 - Erro: Falha no processo de tratamento dos DadosEmissor, examine a mensagem de erro do Windows.
    • 7914 - Erro: SumatraPDF.exe inexiste na pasta da DLL.
    • 7915 - Erro: Falha no processo de tratamento da MarcaDagua, examine a mensagem de erro do Windows.
    • 7916 - Erro: Arquivo de imagem não localizado.
    • 7917 - Erro: Falha na leitura do arquivo de imagem, examine a mensagem de erro do Windows.

Exemplo

Object oGerarDACTeButton is a Button
Set Size to 14 47
Set Location to 325 173
Set Label to "Gerar DACTe"
Set psToolTip to "Exibe o DACTe em vídeo"
Set peAnchors to anBottomLeft

Procedure OnClick
Integer iRetorno // Recebe retorno do tipo Integer
String sLabel // Recebe o label
String sTempDir // Recebe o diretório temporário do usuário
String sArquivo // Recebe o caminho do arquivo XML

tCTeGeraDACTe_Parametros vtParametros
// Estrutura que receberá os parâmetros para chamar a função

Forward Send OnClick

If (not(HasRecord(Server(Self)))) Procedure_Return
Get Label to sLabel
Set Label to "Gerando..."
Get_Environment "TEMP" to sTempDir
Send Refind_Records of (Server(Self))
Move (Trim(Config.sDirCTeAutoriza) + "" + Trim(CTe.sChaveCTe) + ;
"-cte.xml") to sArquivo
        Move True     to vtParametros.bExibeErro
Move sArquivo to vtParametros.sArquivoXMLCTe
Move sTempDir to vtParametros.sPastaPDF
Move True to vtParametros.bVisualizar
Move True to vtParametros.bMostrarDadosToma
Move (CTeGeraDACTe(&vtParametros)) to iRetorno
Set Label to sLabel
End_Procedure
End_Object

Observações

  • A função CTeGeraDACTe suporta apenas o modal rodoviário.
  • A função CTeGeraDACTe suporta apenas o modelo 57 (CT-e). 
  • A função CTeGeraDACTe está disponível a partir da versão 2013/02 da CTeLibrary.
  • O valor padrão do parâmetro bVisualizar é False, ou seja, o DACTe não é automaticamente exibido em vídeo após a geração.
  • O parâmetro que define se o DACTe será automaticamente impresso após a geração é o parâmetro iCopias. O valor padrão é 0 (zero), ou seja, não há impressão após a geração. Os valores válidos vão de 0 a 5.

 

Não encontrou o que precisava, entre em contato conosco.