Olá pessoal,
É sempre um prazer enorme estar trazendo dicas e truques para facilitar seu desenvolvimento com nossas impressoras.
Bom, a dica de hoje é a seguinte:
Informações que conseguimos obter através da darumaframework.dll referente a impressora (Parte1).
Em nosso driver darumaframework.dll, existe uma função chamada:
RetornarInformacao_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 stringpszRetornar);
[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
Conseguimos obter todos os totalizadores, dados do ECF como Cliche, CNPJ do Usuário, Endereço, Versão do Software Básico, Modelo do ECF, se é Térmica ou não, Nome Fantasia do Usuário, Marca do ECF, etc...
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.
Um Abraço!