Hoje abordaremos uma função da DarumaFramework.dll bastante utilizada no desenvolvimento para o PAF-ECF na impressão de relatórios, como DAVS EMITIDOS e IDENTIFICAÇÃO DO PAF-ECF. Para emissão destes relatórios podemos utilizar títulos específicos na impressão, que são configurados de uma maneira rápida e fácil!

Verificando os Relatórios Gerenciais cadastrados na ECF

Método para verificação: rLerRG_ECF_Daruma. Este método retorna os Relatórios Gerenciais cadastrados na Impressora Fiscal.

pszRelatorios: Variável por referência com tamanho de 360 posições que retorna os relatórios gerenciais cadastradas na impressora.

 
private void métodoRLerRGECFDarumaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StringBuilder Str_RG = new StringBuilder(360);

            Declaracoes.iRetorno = Declaracoes.rLerRG_ECF_Daruma(Str_RG);
          
        }
 

Retorno



Descobrimos então os Relatórios Gerenciais existentes na impressora.

Cadastrando Relatórios Gerenciais na ECF


Para realizar estas impressões é necessário primeiramente cadastrar o nome do Relatório Gerencial desejado.

Para esta tarefa utilizaremos a função: confCadastrar_ECF_Daruma.

Parâmetros:
pszCadastrar Tipo:
  • ALIQUOTA,
  • TNF,
  • RG,
  • FPGTO,

pszValor : Descrição a ser cadastrada

pszSeparador: Separador utilizado para separar a descrição

C(Sharp)


[DllImport("DarumaFrameWork.dll")]
        public static extern int confCadastrar_ECF_Daruma(string pszCadastrar, string pszValor, string pszSeparador);

private void BT_Enviar_Click(object sender, EventArgs e)
  {
DarumaFramework_Declaracoes_CSharp.iRetorno = 
DarumaFramework_Declaracoes_CSharp.confCadastrar_ECF_Daruma("RG", "Id. do PAF-ECF", "|");
  }

Delphi


function confCadastrar_ECF_Daruma(pszCadastrar:string; 
pszValor:string;pszSeparador:string): Integer; StdCall; External 'DarumaFramework.dll';

 Int_Retorno:= confCadastrar_ECF_Daruma(‘RG’, ‘Ind. do PAF-ECF’, ‘|’);

VB6


Public Declare Function confCadastrar_ECF_Daruma Lib "DarumaFramework.dll" (
ByVal pszCadastrar As String, ByVal pszValor As String, ByVal pszSeparador As String) As Integer
    
Private Sub TB_Numero_Item_Click()

        iRetorno = confCadastrar_ECF_Daruma("RG", "Id. do PAF-ECF", "|")
End Sub
Pronto! Nomeamos um relatório para impressão do respectivo documento!

Agora o próximo passo é abrir o RG, enviar o texto que será impresso e fechá-lo.

Emissão do Relatório Gerencial


Para isto utilizaremos as funções:

  1. iRGAbrir_ECF_Daruma - Abre o Relatório Gerencial
  2. iRGImprimirTexto_ECF_Daruma - Recebe o texto a ser impresso
  3. iRGFechar_ECF_Daruma - Fecha o Relatório Gerencial

iRGAbrir_ECF_Daruma Parâmetros:
pszNomeRG : Nome do Relatório Gerencial

iRGImprimirTexto_ECF_Daruma Parâmetros:
pszTexto : Texto do Relatório Gerencial

iRGFechar_ECF_Daruma Parâmetros:
(Nenhum)

C(Sharp)


[DllImport("DarumaFrameWork.dll")]
public static extern int iRGAbrir_ECF_Daruma(string pszNomeRG);

 [DllImport("DarumaFrameWork.dll")]
 public static extern int iRGImprimirTexto_ECF_Daruma(string pszTexto);

[DllImport("DarumaFrameWork.dll")]
public static extern int iRGFechar_ECF_Daruma();

private void BT_Enviar_Click(object sender, EventArgs e)
        {

           DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = 
           DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRGAbrir_ECF_Daruma("Ind. do PAF-ECF"); 

                         DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = 
                         DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRGImprimirTexto_ECF_Daruma("N° do Laudo \nIdentificação da empresa desenvolvedora\nCNPJ\nRazão Social\nEndereço\nTelefone\nContato\nIdentificação do PAF-ECF
\nNome comercial\nVersão\nPrincipal arquivo executável\nCódigo de autenticação do principal arquivo executável (MD-5)\nOutros arquivos utilizados e respectivos códigos MD-5\n");
             DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRGFechar_ECF_Daruma();
        }

Veja como ficou a impressão do Relatório Gerencial:



Delphi


function iRGAbrir_ECF_Daruma(pszNomeRG:String): Integer; StdCall; External 'DarumaFramework.dll';
function iRGImprimirTexto_ECF_Daruma(pszTexto:String): Integer; StdCall; External 'DarumaFramework.dll';
function iRGFechar_ECF_Daruma(): Integer; StdCall; External 'DarumaFramework.dll';


procedure TFR_FISCAL_iRGImprimirTexto_ECF_Daruma.BT_ENVIARClick(
  Sender: TObject);

begin

   Int_Retorno:= iRGAbrir_ECF_Daruma('Id. do PAF-ECF');
   Int_Retorno:= iRGImprimirTexto_ECF_Daruma('N° do Laudo' + #13 + #10 +
 'Identificação da empresa desenvolvedora'+ #13 + #10 + 'CNPJ +#13 + #10 +Razão Social'+ 
#13 + #10 + 'Endereço'+ #13 + #10 +'Telefone'+ #13 + #10 +'Contato'+ #13 + #10 +
'Identificação do PAF-ECF'+ #13 + #10 +'Nome comercial'+ #13 + #10 +'Versão+ #13 + #10 +
Principal arquivo executável'+ #13 + #10 +
'Código de autenticação do principal arquivo executável (MD-5)'+ #13 + #10 +'Outros arquivos utilizados e respectivos códigos MD-5');
   Int_Retorno:= iRGFechar_ECF_Daruma();
  end;

VB6


Private Sub BT_Enviar_Click()
 
        iRetorno = iRGAbrir_ECF_Daruma("Id. do PAF-ECF")
        iRetorno = iRGImprimirTexto_ECF_Daruma("N° do Laudo “ + Chr(13) + Chr(10) + 
“Identificação da empresa desenvolvedora“ + Chr(13) + Chr(10) + “CNPJ“ + Chr(13) + Chr(10) + “Razão Social“ + Chr(13) + Chr(10) + 
“Endereço“ + Chr(13) + Chr(10) + “Telefone“ + Chr(13) + Chr(10) + “Contato“ + Chr(13) + Chr(10) + “Identificação do PAF-ECF“ + Chr(13) + 
Chr(10) + “Nome comercial“ + Chr(13) + Chr(10) + “Versão“ + Chr(13) + Chr(10) + “Principal arquivo executável“ + Chr(13) + 
Chr(10) + “Código de autenticação do principal arquivo executável (MD-5) “ + Chr(13) + Chr(10) + “Outros arquivos utilizados e respectivos códigos MD-5");
        iRetorno = iRGFechar_ECF_Daruma
        
   End Sub
Um abraço, e até a próxima!