Fórum função bematch que gera sped- APANHANDO MUITO #405276
19/07/2011
0
Pessoal estou apanhando muito para gerar o arquivo sped da impressora fiscal. Peguei o arquivo de ajuda que vem junto com a impressora e não funciona. O arquivo ini está funcionando pois já testei outros programas e funciona corretamente.
function Bematech_FI_GeraRegistrosSpedMFD( cArquivoMFD : AnsiString;
cArquivoTXT : AnsiString;
cDataInicial : AnsiString;
cDataFinal : AnsiString;
cPerfil : AnsiString;
cCFOP : AnsiString;
cCODOBSFiscal : AnsiString;
cAliqPIS : AnsiString;
cAliqCOFINS : AnsiString ): Integer; StdCall; External 'BEMAFI32.DLL';
procedure TForm1.GerarClick(Sender: TObject);
var
iRetorno: Integer;
cOrigem,cDestino,cDataInicial,cDataFinal,cPerfil,cCFOP,cCodObsLancFiscal,
cAliquotaPis,cAliquotaCofins,cFlag,cTipoDownload,cDadoInicial,cDadoFinal,
ACK, ST1, ST2, ST3,cARQUIVO: AnsiString; begin
cOrigem := string('c:\download.mfd'); // o arquivo mfd foi feito download antes
cDestino := String('c:\Resultado.txt' );
cDataInicial := formatDateTime( 'DDMMYY', dataInicial.DateTime );
cDataFinal := formatDateTime( 'DDMMYY', dataFinal.DateTime );
cPerfil := cbTipo.Text;
cCFOP := Cfop.text;
cCodObsLancFiscal := CodObsFiscal.text;
cAliquotaPis := pis.Text;
cAliquotaCofins := cofins.Text;
cFlag := '1';
cTipoDownload := '0'; cDadoInicial := cDataInicial;
cDadoFinal := cDataFinal; iRetorno := Bematech_FI_GeraRegistrosSpedMFD( cOrigem ,
cDestino,
cDataInicial,
cDataFinal,
cPerfil,
cCFOP,
cCodObsLancFiscal,
cAliquotaPis,
cAliquotaCofins);
case iRetorno of
0: showmessage('Erro de comunicação.');
1: showmessage('OK.Gerou o txt do Sped');
3: showmessage('Não foi possível criar arquivo TXT.');
4: showmessage('Data informada inválida.');
-1: showmessage(' Erro de execução da função.');
-2: showmessage('Parâmetro inválido na função.');
-4: showmessage('O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.');
-5: showmessage('Erro ao abrir a porta de comunicação.');
-27: showmessage('Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).');
end;
cArquivoTXT : AnsiString;
cDataInicial : AnsiString;
cDataFinal : AnsiString;
cPerfil : AnsiString;
cCFOP : AnsiString;
cCODOBSFiscal : AnsiString;
cAliqPIS : AnsiString;
cAliqCOFINS : AnsiString ): Integer; StdCall; External 'BEMAFI32.DLL';
procedure TForm1.GerarClick(Sender: TObject);
var
iRetorno: Integer;
cOrigem,cDestino,cDataInicial,cDataFinal,cPerfil,cCFOP,cCodObsLancFiscal,
cAliquotaPis,cAliquotaCofins,cFlag,cTipoDownload,cDadoInicial,cDadoFinal,
ACK, ST1, ST2, ST3,cARQUIVO: AnsiString; begin
cOrigem := string('c:\download.mfd'); // o arquivo mfd foi feito download antes
cDestino := String('c:\Resultado.txt' );
cDataInicial := formatDateTime( 'DDMMYY', dataInicial.DateTime );
cDataFinal := formatDateTime( 'DDMMYY', dataFinal.DateTime );
cPerfil := cbTipo.Text;
cCFOP := Cfop.text;
cCodObsLancFiscal := CodObsFiscal.text;
cAliquotaPis := pis.Text;
cAliquotaCofins := cofins.Text;
cFlag := '1';
cTipoDownload := '0'; cDadoInicial := cDataInicial;
cDadoFinal := cDataFinal; iRetorno := Bematech_FI_GeraRegistrosSpedMFD( cOrigem ,
cDestino,
cDataInicial,
cDataFinal,
cPerfil,
cCFOP,
cCodObsLancFiscal,
cAliquotaPis,
cAliquotaCofins);
case iRetorno of
0: showmessage('Erro de comunicação.');
1: showmessage('OK.Gerou o txt do Sped');
3: showmessage('Não foi possível criar arquivo TXT.');
4: showmessage('Data informada inválida.');
-1: showmessage(' Erro de execução da função.');
-2: showmessage('Parâmetro inválido na função.');
-4: showmessage('O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.');
-5: showmessage('Erro ao abrir a porta de comunicação.');
-27: showmessage('Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).');
end;

João Augusto
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)