Business - Automação Comercial
Comunicando com 2 produtos na mesma aplicação
Veja como é possível utilizar 2 produtos, na mesma aplicação e o melhor utilizando apenas uma dll.
por Daruma DeveloperOlá pessoal,
Veremos neste artigo como comunicar com 2 produtos utilizando a darumaframework.dll na mesma aplicação.
Como isto é possível, sendo que o programa trabalha comunicando com a porta serial e os dispositivos estão em portas distintas?
É isto mesmo! E ainda utilizando uma única darumaframework.dll, e sem ter que fazer aquela "gambiarra" de utilizar duas dll iguais com nomes diferentes uma da outra.
Isto é possível por causa do método eDefinirProduto_Daruma.
Este método nos permite identificar em qual produto a DarumaFramework.dll será capaz de trabalhar, alternando assim a capacidade da DarumaFramework.dll de localizar com precisão o produto a ser utilizado e trabalhar com o mesmo.
Digamos que existam dois dispositivos comunicando, conectados e reconhecidos no Gerenciador de Dispositivos como portas.
Segue abaixo:
Tenho uma impressora Não-Fiscal(DR700M) conectada na porta COM2 conforme a imagem acima, e uma Impressora Fiscal(FS700 MACH2) conectada na COM1. Ambas Impressoras estão a 115200 bits por segundo.
Agora vamos ver na prática a utilização doeDefinirProduto_Daruma:
C#:
[DllImport("DarumaFrameWork.dll")]
public static extern int eDefinirProduto_Daruma(System.String
sProduto);
private void
Button1_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eBuscarPortaVelocidade_ECF_Daruma();
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eDefinirProduto_Daruma("ECF");
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iLeituraX_ECF_Daruma();
}
private void BT_Enviar_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eDefinirProduto_Daruma("DUAL");
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iImprimirTexto_DUAL_DarumaFramework("<b> Teste de impressão Daruma </b>”, 0);
}
VB6:
Public Declare Function eDefinirProduto_Daruma Lib
"DarumaFramework.dll" (ByVal sProduto As String) As Integer
Private Sub
LeituraX_Daruma_Click()
iRetorno = eDefinirProduto_Daruma("ECF")
iRetorno = eBuscarPortaVelocidade_ECF()
iRetorno =
iLeituraX_ECF_Daruma
End Sub
Private Sub Enviar_Click()
iRetorno = eDefinirProduto_Daruma("DUAL")
iRetorno = iImprimirTexto_DUAL_DarumaFramework(“<b>Teste de Impressão</b>", 0)
End Sub
Delphi:
procedure Fiscal_Teste.BT_MenuTesteClick(Sender: TObject);
var
iRetorno : Integer;
begin
iRetorno :=
eDefinirProduto_Daruma('ECF');
Int_Retorno := eBuscarPortaVelocidade_ECF_Daruma();
Int_Retorno:= iLeituraX_ECF_Daruma();
end;
procedure TFR_DUAL_iImprimirTexto_DUAL_DarumaFramework.BT_EnviarClick(Sender: TObject);
var
iRetorno: Integer;
begin
iRetorno := eDefinirProduto_Daruma('DUAL');
iRetorno := iImprimirTexto_DUAL_DarumaFramework(‘<b>Teste de
Impressão</b>’, 0);
end;
Viu só como é fácil?
E isto é válido tanto na alternação de qualquer tipo de produto que a
darumaframework.dll trabalhe (Impressora Fiscal, Impressora Não-Fiscal, Modem,
TA2000).
Agora é só implementar!
Um abraço e até o próximo!
- Códigos de Barras no ECF Automação Comercial
- Gerando o SPED Automação Comercial
- Gerando o Arquivo MFD (PAF-ECF) Automação Comercial
- Desprogramando o Horário de VerãoAutomação Comercial
- Programando o Horário de VerãoAutomação Comercial