sergiowilson.sp
Descobri meio que na unha, no Evento onInfoECF inclui o seguinte código, simulando uma resposta do ECF
Begin
case Operacao of
ineSubTotal:
begin
RetornoECF := ValorFloat(frmFormaPgto.lblLiquido.Caption, 2); //Informo que ao valor Total da Venda já com desconto.
end;
ineTotalAPagar:
RetornoECF := '0'; //Como informo Pagamento a Pagamento para o TEF não existe valor a pagar no meu programa.
ineEstadoECF:
RetornoECF := sEstadoECF; //Variavel Global
End;
O grande segredo é sempre antes de fazer algum procedimento informar qual é o estado do ECF, como por exemplo antes do ACBRTEFD.CRT informo que a Variável Global sEStadoECF = "P", ou seja, simulo que o ECF está no Estado (Pagamento).
O Estado que mais uso é "L" pois informo que o ECF está livre, permitindo o componente imprimir os comprovantes.
Em muitos eventos informei que o RetornoECF := 1, ou seja, deu certo,
Já a impressão criei um método extra, para imprimir linha por linha, no teste onde pede para trocar o papel (por falta de papel), ao confirmar no programa que deseja continuar a impressão deve continuar de onde parou.
No metodo onComandaECFImprimiVia
o ACBRTEFD retorna o comprovante em (ImagemComprovante.Text), eu trato e mando ACBrPosPrinter.ImprimirLinha('</ae>' + ImagemComprovante.Text);
Com isso é impresso o comprovante.
Espero tê-lo ajudado, pois sofri alguns dias para entender essa logica de emular o ECF.
Abraços.
Quem ajuda, Será Ajudado..