Em nosso driver darumaframework.dll, existe uma função chamada: rRetornarInformacao_ECF_Daruma, onde este método possibilita retornar do ECF mais de 170 informações diferentes. A ideia deste método é que ao invés de termos 170 métodos, teremos apenas um único método. Onde passamos o índice da informação desejada e obtemos a informação.

Esta função possui apenas 2 parâmetros, que são: Índice : Código da informação desejada obter da impressora. Retorno: Variável por referência com o tamanho de espaços alocados para o retorno da informação.

Vejamos abaixo alguns retornos muito uteis:

Contadores:

  • COO Atual
  • COO Inicial(*)
  • GNF
  • GNF Inicial(*)
  • CCF
  • CCF Inicial(*)
  • CVC
  • GRG
  • GRG Inicial(*)
  • CFD
  • CBP

Todas estas informações você obtém chamando apenas um método, o rRetornarInformacao_ECF_Daruma: Sim, passando o Indice: 21 e uma variável por referencia com Tamanho de: 11 X 6

Exemplos:

C#

public static extern int rRetornarInformacao_ECF_Daruma(string pszIndice, 
[MarshalAs(UnmanagedType.VBByRefStr)] ref string pszRetornar);
        [DllImport("DarumaFrameWork.dll")]

  private void button1_Click(object sender, EventArgs e)
        {
            string Str_indice;
            string Str_Informacao = new string(' ', 66);
            
            Str_indice = “21”;

            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = 
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.r
            RetornarInformacao_ECF_
            Daruma(21, ref Str_Informacao);
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.
            DarumaFramework_Mostrar_Retorno(
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
            TB_Retorno.Text = Str_Informacao.Trim();

        }
    }
}
img

Como mostrado acima a impressora retornou os contadores para a variável por referencia que indicamos. Vejamos a Leitura X:

img

Delphi

function rRetornarInformacao_ECF_Daruma(pszIndice:string;pszRetornar:string):
Integer; StdCall; External 'DarumaFramework.dll';
 Int_Retorno := rRetornarInformacao_ECF_Daruma('21',Str_Informacao);

VB6

Public Declare Function rRetornarInformacao_ECF_Daruma Lib 
"DarumaFramework.dll" (ByVal pszIndice As String, ByVal 
pszRetornar As String) As Integer
Private Sub BT_Enviar_Click()
 Dim Str_Indice, Str_Tamanho, Str_Informacao As String
        
    Str_Indice = “21”
    Str_Tamanho = “66”

    Str_Informacao = Space(Str_Tamanho)
    iRetorno = rRetornarInformacao_ECF_Daruma(Str_Indice, 
    Str_Informacao)
    DarumaFramework_Mostrar_Retorno_ECF
    TB_Retorno.Text = Str_Informacao
End Sub

Viram que bacana e simples de fazer...

Mais não para por ai! Temos também um índice interessante que é o Estado do CF / CNF.

A darumaframework.dll não retorna apenas se o cupom está aberto ou fechado não, ela possui o diferencial de retorna em qual fase está este cupom:

Este Índice é o: 57

Tamanho: 1

Onde os Retornos são:

Estado do CF / CNF

0 = fechado

1 = CF em registro de item

2 = CF em totalização

3 = CF em pagamento

4 = CF em finalização

5 = CNF em registro de item

6 = CNF em totalização

7 = CNF em pagamento

8 = CNF em finalização

Ou também podemos utilizar o rRetornarInfomação para obter o “Tipo do Documento Atual”

Índice: 56

Tamanho: 1

Onde os Retornos são:

0 = Nenhum documento

1= CF

2= CNF

3= CCD

4= RG

Ou todos os totalizadores:

Índice Tam.
4 3 x 13 Totalizadores de Descontos + Acréscimos + Cancelamentos ICMS
5 3 x 13 Totalizadores de Descontos + Acréscimos + Cancelamentos ISS
6 20 x 13 Totalizador de Meios de Pagamento 01 a 20
7 13 Totalizador de Troco
8 13 Totalizador Não-Fiscal de Sangria
9 19 x 13 Totalizadores Não-Fiscais 02 a 20
10 3 x 13 Totalizadores de Descontos + Acréscimos + Cancelamentos Não Fiscais
11 13 Totalizador de Descontos ICMS
12 13 Totalizador de Acréscimos ICMS
13 13 Totalizador de Cancelamentos ICMS
14 13 Totalizador de Descontos ISS
15 13 Totalizador de Acréscimos ISS
16 13 Totalizador de Cancelamentos ISS
17 13 Totalizador de Descontos NF
18 13 Totalizador de Acréscimos NF
19 13 Totalizador de Cancelamentos NF

Conseguimos obter também dados do equipamento e dados de Usuário pelo rRetornarInformação.

Índice: Tamanho:
76 14 Data da primeira execução do SB
77 20 Número de série da MFDE
78 20 + 1 Número de fabricação do ECF
79 7 Tipo do ECF
80 20 Marca do ECF
81 20 Modelo do ECF
82 6 Código de modelo Daruma 010053 = FS600010054 = FS2100T010058 = FS600 USB010059 = FS700 L010060 = FS700 H010061 = FS700 M010062 = MACH 3010063 = MACH 1010064 = MACH 2
83 6 Versão do SB instalado
84 6 Versão do SB gravado na MF
85 14 Data da atualização da versão do SB
87 48 Razão Social
88 96 Nome Fantasia do Usuário
89 122 Endereço do Usuário
90 20 CNPJ do usuário atual
91 20 IE do usuário atual
92 20 IM do usuário atual
93 14 + 4 + 3 Data + CRZ + CRO de cadastro do usuário
94 2 Número de ordem sequencial do usuário
95 2 Símbolo da moeda atual

Estas e muitas outras informações do ECF, você só consegue obter através da função rRetornarInformacao_ECF_Daruma, consulte já em nosso help a Tabela Completa) dos Retornos pela Função.