Boa Tarde,
Hoje eu instalei o SAT em um cliente, ele possuí o SAT da Dimep e a impressora DR700 da Daruma
O sat estava enviando perfeitamente o arquivo para a SEFAZ, no entanto não imprimia o cupom, mas ao cancelar funcionava normalmente.
Eu verifiquei que o erro estava na unit "ACBrSATExtratoESCPOS" na procedure "GerarCabecalho"
o problema estava na parte que passa o código do CFe (quando é ambiente de produção), a linha era:
[...] IntToStrZero(IfThen(Cancelamento, CFeCanc.ide.nCFe, CFe.ide.nCFe),6));
toda vez que chegava nessa linha gerava erro: "Read address ..."
eu não sei dizer se o problema está na função "IntToStrZero" ou na "IfThen"
eu alterei o código para: " aux := '</fn></ce><n>Extrato No. '; if Cancelamento then aux := aux + StrZero(CFeCanc.ide.nCFe, 6) else aux := aux + StrZero(CFe.ide.nCFe, 6);
FPosPrinter.Buffer.Add(aux);
FPosPrinter.Buffer.Add( ACBrStr('CUPOM FISCAL ELETRÔNICO - SAT</n>'));
"
onde aux é uma variável do tipo String
segue o código da função StrZero:
"Function StrZero(nCodigo,nZeros:Integer):String; Var cCodigo : String; i : Integer; begin cCodigo := IntToStr(nCodigo); For i := Length(cCodigo) to (nZeros - 1) do cCodigo := '0' + cCodigo; Result := cCodigo; end;"
Se mais alguém estiver com o mesmo problema, essa foi a solução que eu encontrei.