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