BEMATECH

22/04/2016

0

Estou com o emulador da BEMATECH MP-4200 e DELPHI 2010. Estou usando as Dlls 32 bits.
Como referencia de uso das funções estou usando o manual da prórpia bematech http://www3.bematech.com.br/suporte/bemafi32/index.html?configuracao.htm

Tenho uma procedure inicial :

procedure TForm1.Button2Click(Sender: TObject);
var
  iRetorno: integer;
  cCPF:string;
  iACK, iST1, iST2, iST3: integer;
begin
   //cCPF := '11.111.111-11';
   iRetorno := Bematech_FI_AbreCupom( pchar( cCPF ) );
   ShowMessage(IntToStr(iRetorno));
   iRetorno := Bematech_FI_RetornoImpressoraMFD( iACK, iST1, iST2, iST3 );
   //ShowMessage(IntToStr(iRetorno));
end;


Eu tentei também:
procedure TForm1.Button2Click(Sender: TObject);
var
   iRetorno: integer;
   iACK, iST1, iST2, iST3: integer;
   cCPF, cNome: string;
begin
   // Abre o Cupom Fiscal
   cCPF := '11.111.111-11';
   cNome := 'Fulano de Tal';
   iRetorno := Bematech_FI_AbreCupom( PAnsiChar(AnsiString(Edit1.Text)) );
   ShowMessage(IntToStr(iRetorno));
   iRetorno := Bematech_FI_RetornoImpressoraMFD( iACK, iST1, iST2, iST3 );
   ShowMessage(IntToStr(iRetorno));
end;



O retorno é -2 a dizer que o parâmetro esta errado. Tentei busca no forum da bematech mas esta fora do ar.
Contudo se retiro o cpf da função, deixando em branco, da certo.

Porém, para alguns exemplos do manual, como a simulação de um produto, não vai retornando o mesmo erro.


Outro detalhe. Fazendo outro teste com base em um livro de automação comercial, veja a rotina:

procedure TForm1.Button2Click(Sender: TObject);
var
iRetorno: integer;
iACK, iST1, iST2, iST3: integer;
cCPF, cNome: string;
iCasas: integer;
cCodigo, cDescricao, cAliquota, cTipoQuantidade, cQTDE,
cValorUnitario, cTipoDesconto, cDesconto: string;
cNumeroItem, cDescAcresc, cTipo, cValor: string;
cValorDesc: string;
begin
// Abre o Cupom Fiscal
cCPF := Edit1.Text;
cNome := 'Fulano de Tal';
iRetorno := Bematech_FI_AbreCupomMFD( ( cCPF ),
( cNome ), PAnsichar( 'dd' ) );
ShowMessage(IntToStr(iRetorno));

{..etc}
end;


Esse código retorna alguma coisa na impressora: em nome apenas um caractere "F", em endereço apenas um caractere "d". Teoricamente, suponho que o problema seja com o emulador na declaração do tamanho da variável dada por parâmetro.
Vou ter que abrir a DLL ou alguem tem uma solução pra tanto trabalho?

A imagem do resultado esta aqui [neste site tem opção de subir porém, não sei onde foi parar a imagem, dai ela esta no link à frente]: https://uploaddeimagens.com.br/imagens/sa-png--62

Alguém pode me ajudar por favor, com uma lógica para isso?

Obrigado
att
Squirreal

Squirreal

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar