Olá pessoal,

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.rRetornarInformacao_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();

        }
    }
}




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



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 = FS600

010054 = FS2100T

010058 = FS600 USB

010059 = FS700 L

010060 = FS700 H

010061 = FS700 M

010062 = MACH 3

010063 = MACH 1

010064 = 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.

http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Help/DarumaFrameworkHelpOnline/Daruma_Framework.htm

 

Um Abraço!