Implementamos a função Bematech_FI_GeraRegistrosCAT52MFD que permite a geração manual e retroativa dos registros referente à portaria CAT-52.
A geração do arquivo da CAT-52 continua sendo realizada no momento da Redução Z, através da função Bematech_FI_ReducaoZ (executada pela aplicação comercial), automaticamente quando a impressora é ligada no dia seguinte ou automaticamente às 2:00 hrs da manhã quando a impressora permacer ligada, mas caso necessite gerar o arquivo do CAT-52, basta chamar esta função.
Observações:
· | No modelo matricial é obrigatório informar o arquivo .rfd como parâmetro. O parâmetro data não é obrigatório e será ignorado caso seja informado. O arquivo da CAT-52 será gerado com as informações contidas no arquivo .rfd. |
· | No modelo térmico com MFD temos as seguintes possibilidades: |
a. | se não forem informados o arquivo .mfd e a data, a função fará o download da MFD da data atual e fará a geração do arquivo da CAT-52. |
b. | se for informado o arquivo .mfd e não for passada a data, a função retornará erro. |
c. | se for informada apenas a data, a função fará o download da MFD com base na data informada e fará a geração do arquivo da CAT52. |
d. | se forem informados o arquivo .mfd e a data, a função fará a geração do arquivo da CAT-52 com as informações contidas no arquivo .mfd na data informada. |
· | No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo), pois é realizado o download da MFD na geração do arquivo. A pinagem deste cabo está descrito no arquivo de ajuda do emulador. |
Parâmetros:
Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo.
Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
Possíveis retornos da Função (INTEIRO):
0: Erro de comunicação.
1: OK.
-1 - Erro de execução da função.
-2: Parâmetro inválido na função.
-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.
-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
Exemplo:
' Exemplo em Visual Basic
iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\download.mfd", "30/07/2007")
ou
iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\BEB00007.M57.rfd", "30/07/2007")
// Exemplo em Delphi
Arquivo := 'C:\download.mfd';
Data := '30/07/2007'
iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );
ou
Arquivo := 'C:\BEB00007.M57.rfd';
Data := '30/07/2007'
iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );
Importante:
Para que a função Bematech_FI_GeraRegistrosCAT52MFD possa gerar os registros da portaria CAT-52 ou Ato Cotepe 17/04, é necessário que as dlls BemaMFD.dll e BemaMFD2.dll estejam presentes em seu computador, juntamente com a BemaFI32.dll e o BemaFI32.ini previamente configurado (ver tópico "Configurando a DLL").
Copie estes arquivos para o diretório de sistema do Windows (exemplo: \WINDOWS\SYSTEM32).
Também criamos a função Bematech_FI_GeraRegistrosCat52MFDEx que possui um terceiro parâmetro, onde retorna o nome do arquivo gerado.
Os parâmetros desta função, são:
Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo.
Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
ArqDestino: variável STRING com 512 bytes para retornar o path+nome do arquivo gerado.
' Exemplo em Visual Basic
cArqDestino = space(512)
iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\download.mfd", "30/07/2007", cArqDestino)
ou
cArqDestino = space(512)
iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\BEB00007.M57.rfd", "30/07/2007", cArqDestino)
// Exemplo em Delphi
Arquivo := 'C:\download.mfd';
Data := '30/07/2007'
iConta := 1 to 512 do cArqDestino := cArqDestino + ' ';
iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar( Arquivo ), pchar( Data ), cArqDestino );
ou
Arquivo := 'C:\BEB00007.M57.rfd';
Data := '30/07/2007'
for iConta := 1 to 512 do cArqDestino := cArqDestino + ' ';
iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar( Arquivo ), pchar( Data ), cArqDestino );
|