Boa tarde, possuo um cliente que adquiriu um impressora bematech, e o número serial da mesma possui 20 dígitos, porem no retorno das funções esta vindo apenas os 15 primeiros. Alguém sabe o que pode ser isso, ou o que eu posso fazer para trazer corretamente este serial
Desde já obrigado.
Impressora Bematech com serial de 20 digitos
Moderador: Moderadores
Impressora Bematech com serial de 20 digitos
Boa tarde.
Voce esta usando a bemafi32.dll ou o acbrmonitor para se comunicar com a ECF.?
Voce esta usando a bemafi32.dll ou o acbrmonitor para se comunicar com a ECF.?
-
sambomb
- Usuário Nível 3

- Mensagens: 250
- Registrado em: 24 Out 2008 17:02
- Localização: Itaocara - RJ - Brasil
Impressora Bematech com serial de 20 digitos
O buffer que você está passando está pequeno, faça assim:
cBuffer := Space(21)
nResul := Bematech_FI_NumeroSerieMFD( @cBuffer )
? cBuffer
cBuffer := Space(21)
nResul := Bematech_FI_NumeroSerieMFD( @cBuffer )
? cBuffer

Rca Sistemas - Itaocara - RJ
Impressora Bematech com serial de 20 digitos
http://partners.bematech.com.br/suporte ... _serie.htm
Bematech_FI_NumeroSerie
Retorna o número de série da impressora.
Parâmetro:
NumeroSerie: Variável string com o tamanho de 15 posições para receber o número de série + 1 posição para o NULL.
Possíveis retornos da Função (INTEIRO):
0: Erro de comunicação.
1: OK.
-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.
-5: Erro ao abrir a porta de comunicação.
-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.
-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
Observação:
Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI serão retornados os 15 primeiros caracteres de seu número serial. O número serial nestas impressoras é alfanumérico com o tamanho de 20 caracteres.
Exemplo:
' Exemplo em Visual Basic
NumeroSerie = Space(16)
iRetorno = Bematech_FI_NumeroSerie(NumeroSerie)
// Exemplo em Delphi
for iConta := 1 to 16 do NumeroSerie := NumeroSerie + ' ';
iRetorno := Bematech_FI_NumeroSerie( NumeroSerie );
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA
Solução: Bematech_FI_NumeroSerieMFD
Solução: Bematech_FI_NumeroSerieMFD
Bematech_FI_NumeroSerieMFD
Retorna o número de série da impressora MFD.
Parâmetro:
NumeroSerie: Variável STRING com o tamanho de 20 posições para receber a informação + 1 posição para o NULL.
Retornos da Função (INTEIRO):
0 - Erro de comunicação.
1 - Ok.
-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.
-5 - Erro ao abrir a porta de comunicação.
-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.
-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).
Exemplo:
' Exemplo em Visual Basic
sNumeroSerie = space(21)
iRetorno = Bematech_FI_NumeroSerieMFD(sNumeroSerie)
// Exemplo em Delphi
for iConta := 1 to 21 sNumeroSerie := sNumeroSerie + ' ';
iRetorno := Bematech_FI_NumeroSerieMFD(sNumeroSerie);
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA
Impressora Bematech com serial de 20 digitos
Muito obrigado pela ajuda, colocando a função do NUMEROSERIEMFD, deu certinho.
Agradeço a todos.
Agradeço a todos.
