Olá pessoal,

Neste e nos próximos 2 Escovando Bits veremos os 10 Recursos de destaque na DarumaFramework.dll. A DarumaFramework.dll é uma DLL de alto nível, que foi desenvolvida com o propósito de trazer facilidades em um desenvolvimento rápido e fácil, com nossos produtos.

Vamos conhecer estes recursos:

1º Recurso: O XML

Este XML substitui a funcionalidade de armazenar informações ou "bits" nos registros do sistema operacional, disponibilizando desta forma a facilidade do acesso a estas mesmas informações e na alteração da mesma, em tempo real de execução.

O DarumaFramework.XML pode ser manipulado e lido sem que seja necessário a criação de rotinas na aplicação para isto, e este procedimento é feito com apenas duas funções a regRetornaValorChave_DarumaFramework e a regAlterarValor_Daruma.

Leitura:

Para obtermos valores do XML utilizaremos a função: regRetornaValorChave_DarumaFramework.

Este método retorna o valor de uma chave do registry/XML.

Parâmetros
Produto Nome do produto.
Chave Nome da Chave
Valor Variável String por referência com 100 espaços alocados para que possa retornar na variável o valor da Chave que você deseja.
C#:

 [DllImport("DarumaFrameWork.dll")]
        public static extern int regRetornaValorChave_DarumaFramework(string sProduto, string sChave, [MarshalAs(UnmanagedType.VBByRefStr)] ref string szRetorno);

private void métodoRegRetornaValorECFDarumaToolStripMenuItem_Click(object sender, EventArgs e)
        {
     string Str_Valor = new string(' ', 30);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regRetornaValorChave_DarumaFramework
("ECF", "ModoPreVenda", ref Str_Valor);
           
        }>

DELPHI:

function regRetornaValorChave_Daruma(pszProduto:string;pszChave:string;pszValor:string):Integer;
StdCall; External 'DarumaFramework.dll';

Str_Valor := StringOFChar(#0,100);
Int_Retorno := regRetornaValorChave_DarumaFramework(‘ECF’, ‘ModoPreVenda’, Str_Valor)

VB6:

Declare Function regRetornaValorChave_DarumaFramework Lib "DarumaFramework.dll"
(ByVal sProduto As String, sChave As String, ByVal sValor As String) As Integer

Private Sub regRetornaValorChave_DarumaFramework_Click()
Dim Str_Valor As String
Str_Valor = Space(100)
 iRetorno = regRetornaValorChave_DarumaFramework("ECF", "ModoPreVenda", Str_Valor)
          MsgBox ("Valor da Chave = " + Str_Valor) 
End Sub

      //Nos exemplos acima capturamos o valor da chave “ModoPreVenda”.


Alteração:

Veremos agora como fazer a alteração de uma chave no XML com a função regAlterarValor_Daruma:

Parâmetros
Chave Produto e Chave a serem modificados (Ex.: ECF\ModoPreVenda).
Valor Novo valor para a Chave 

C#
 
[DllImport("DarumaFrameWork.dll")]
        public static extern int regAlterarValor_Daruma(string pszChave, string pszValor);

private void métodoRegAlterarValorECFDaruma_Click(object sender, EventArgs e)
        {

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regAlterarValor_Daruma
(“ECF\ModoPreVenda", "1");

}

DELPHI:

function regAlterarValor_Daruma(pszPathChave:string,pszValor:string):Integer; StdCall; External 'DarumaFramework.dll';

Int_Retorno:=regAlterarValor_Daruma(‘ECF\ModoPreVenda','1');

VB6:

Public Declare Function regAlterarValor_Daruma Lib "DarumaFramework.dll"
(ByVal sProduto_Chave As String, ByVal sValor As String) As Integer

Private Sub regAlterarValor_ECF_Daruma_Click(Index As Integer)
  iRetorno = regAlterarValor_Daruma("ECF\ModoPreVenda", "1")
End Sub

      //Nos exemplos acima alteramos o valor da chave “ModoPreVenda”, o que irá habilitar
          o modo de Pré-Venda (Venda Bufferizada).
2º Recurso: Modo Pré-Venda

O modo Pré-Venda é um recurso onde é possível efetuar toda a venda de itens armazenando em um buffer, para depois imprimir o Cupom Fiscal todo de uma só vez.

A DarumaFramework.dll disponibiliza este recurso, que está presente nas linhas de impressoras MACH.

Já imaginou só? Imprimir um Cupom Fiscal de, por exemplo: 50 itens em 3 segundos?


E tudo isto, só habilitando a chave <ModoPreVenda> no XML.
Localizada na sub chave <CF>, no produto <ECF>.
E é só isto mesmo, caro escovador de bits!

Assista ao vídeo e comprove:



http://www.youtube.com/user/DarumaDeveloper?feature=mhee#p/u/63/81PecfqnTIc

3º Recurso: Tratamento de Retornos

Os mais de 230 métodos disponibilizados na DarumaFramework.dll possuem retornos, que indicam se a execução do método ocorreu com sucesso ou não, se tem algum aviso com relação à execução e ainda no caso de uma não execução nos indica o Erro, de uma maneira bem rápida e prática.

Constituído por 3 funções:

•rStatusUltimoCmdInt_ECF_Darum
•eInterpretarErro_ECF_Daruma
•eInterpretarAviso_ECF_Daruma


Veja o exemplo prático:


C#

        private void métodoILeituraXECFDarumaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iLeituraX_ECF_Daruma();

           
            int Int_NumErro = 0;
            int Int_NumAviso = 0;

            if (DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno == 1)
            {

                System.Windows.Forms.MessageBox.Show("Método executado com Sucesso!");

            }
           
            else
            {
StringBuilder Str_Msg_NumErro = new StringBuilder(300);
                StringBuilder Str_Msg_NumAviso = new StringBuilder(300);

                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.rStatusUltimoCmdInt_ECF_Daruma(ref Int_NumErro, ref Int_NumAviso);
                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eInterpretarErro_ECF_Daruma(Int_NumErro, Str_Msg_NumErro);
                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eInterpretarAviso_ECF_Daruma(Int_NumAviso, Str_Msg_NumAviso);

System.Windows.Forms.MessageBox.Show(Convert.ToString((Str_Msg_NumAviso)));
                System.Windows.Forms.MessageBox.Show(Convert.ToString((Str_Msg_NumErro)));

            }
   }

VB6

Private Sub LeituraX_Click()

Dim int_erro, int_aviso As Integer
Dim str_erro, str_aviso As String
str_erro = Space(100)
str_aviso = Space(100)

iRetorno = iLeituraX_ECF_Daruma
If (iRetorno < 1) Then

iRetorno = rStatusUltimoCmdInt_ECF_Daruma(int_erro, int_aviso)

iRetorno = eInterpretarAviso_ECF_Daruma(int_aviso, str_aviso)
iRetorno = eInterpretarErro_ECF_Daruma(int_erro, str_erro)
MsgBox (CStr(str_erro) + CStr(str_aviso))

Else
MsgBox ("Método executado com Sucesso")

End If

End Sub

Delphi:

procedure TLeituraXECFDaruma1Click(
  Sender: TObject);

begin

   Int_Retorno:=  iLeituraX_ECF_Daruma();
   Int_NumErro:= 0;
                 Int_NumAviso:= 0;
   Str_Msg_NumErro:=StringOFChar(' ',300);
   Str_Msg_NumAviso:=StringOFChar(' ',300);
   Str_Msg_RetMetodo:=StringOFChar(' ',300);

   Int_Retorno:=rStatusUltimoCMDInt_ECF_Daruma(Int_NumErro, Int_NumAviso);

// Mensagem do erro
   Int_Retorno:=eInterpretarErro_ECF_Daruma(Int_NumErro, Str_Msg_NumErro);
// Mensagem aviso
   Int_Retorno:=eInterpretarAviso_ECF_Daruma(Int_NumAviso, Str_Msg_NumAviso);

  Str_Erro:=Str_Msg_NumErro;
  Str_Aviso:=Str_Msg_NumAviso;
  Str_Msg_Retorno_Metodo:=Str_Msg_RetMetodo;

   Application.MessageBox( Pchar('Número Erro = ' + pchar(Str_Erro) +  #13 + 'Número Aviso = ' + pchar(Str_Aviso)), 'DarumaFramework Retorno do Método', mb_ok);

end;

Confira o [Escovando Bits] sobre o tratamento de Retornos:
http://www.daruma.com.br/ddemkt/dde011_2011.html

Veja os vídeos




Um abraço!

E-mails:
ddc.suporte@daruma.com.br
suporte.ddc@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.daruma@daruma.com.br
suporte@daruma.com.br
suporte.alexandre@daruma.com.br
claudenir@daruma.com.br
Skypes:
ddc_suporte_daruma
suporte_ddc_daruma
desenvolvedores_suporte_daruma
suporte_desenvolvedores_daruma
desenvolvedores_daruma
suporte_daruma
suporte_alexandre_daruma
claudenir_andrade

 

Twitter facebook Linkedln Youtube Google+