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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar