Home 5 CTeLibrary 5 Documentação 5 Funções 5 CTeGeraDACTe

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 deixadoem branco, os dados de identificação do emissorserã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émdo 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 tero 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.