Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3323 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa Noite, ja li um monte de post mais eu ainda tenho um problema e não consegui descobrir.

São dois ambientes

1º - o meu com windows 10 impressora Epson TM-T20 pela porta USB imprimindo uma via normalmente.

2º De um cliente, com windows 7 impressora Epson TM-T20 pela porta USB imprimindo duas vias.

ja revisei a configuração do Arquivo .ini que uso guardar as configurações, ja exclui e re-configurei todo o arquivo.

e a só imprime duas vias, e isso ta acontecendo em dois clientes com a mesma impressora que a minha de testes, e outros clientes com a mesma impressora funciona normal imprimindo apenas uma via e todos utilizando a mesma compilação.

Mais alguém passando por algo assim?

 

  • Fundadores
Postado

Analise o Log do ACBrPosPrinter, verifique tudo que o componente está enviando para impressora 

Se ele estiver enviando apenas 1 vez, pode ser algo na configuração do Driver ou do compartilhamento 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado

O Log mostra que é a sua aplicação que está enviando 2x... veja que existem duas chamadas ao método:

-- 20/10 17:11:25:089 - Imprimir, Copias:1, DecodificarTags:SIM, TraduzirTags:SIM

Tente debugar... Provavelmente é algo na sua aplicação... Faça testes com o SATTeste.exe, nesse ambiente...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

O Log mostra que é a sua aplicação que está enviando 2x... veja que existem duas chamadas ao método:

-- 20/10 17:11:25:089 - Imprimir, Copias:1, DecodificarTags:SIM, TraduzirTags:SIM

Tente debugar... Provavelmente é algo na sua aplicação... Faça testes com o SATTeste.exe, nesse ambiente...

Bom dia 

O Log mostra que é a sua aplicação que está enviando 2x... veja que existem duas chamadas ao método:

-- 20/10 17:11:25:089 - Imprimir, Copias:1, DecodificarTags:SIM, TraduzirTags:SIM

Tente debugar... Provavelmente é algo na sua aplicação... Faça testes com o SATTeste.exe, nesse ambienBom 

 

Bom dia Daniel, reparei o seguinte, eu só tenho uma chama em toda a minha aplicação para a impressão que é essa linha a baixo.

      ImprimeDanfe; que faz exatamente isso:

procedure TFrmFinalizaCupom.ImprimeDanfe;
{Var
  cNomeOld, cNomeNew : String;}
begin

 if frmPrincipal.iModeleDanfe=0 then begin

    try

      try
  //      frmPrincipal.inteliNFCe.DANFE.ViaConsumidor := True;
        frmPrincipal.inteliNFCe.DANFE.ImprimirItens := True;//  := not chkDanfeResumido.Checked;
        frmPrincipal.inteliNFCe.NotasFiscais.Imprimir;
      finally
      end;

      except

      on e : exception do
      begin
        Application.MessageBox(pChar(E.Message), 'Erro', MB_ICONERROR + MB_OK);
      end;
    end;

  end;


 if frmPrincipal.iModeleDanfe=1 then begin

    try
      try
//        frmPrincipal.inteliNFCe.DANFE.ViaConsumidor := True;
        frmPrincipal.inteliNFCe.DANFE.ImprimirItens := True;//  := not chkDanfeResumido.Checked;
        frmPrincipal.inteliNFCe.NotasFiscais.Imprimir;
//        frmPrincipal.inteliNFCe.NotasFiscais.ImprimirPDF;
      finally
      end;

    except
      on e : exception do
      begin
        Application.MessageBox(pChar(E.Message), 'Erro', MB_ICONERROR + MB_OK);
      end;
    end;

  end;

end;

/////////////////////////////

Só que ta gerando a impressão antes de chegar ai, eu acho que o componente ta imprimindo direto sem que eu chame a impressão. 

  • Consultores
Postado

Ponha um log antes de chamar o método do ACBr e verifique quantas vezes ele está sendo chamado de verdade.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Fundadores
Postado

 

Só que ta gerando a impressão antes de chegar ai, eu acho que o componente ta imprimindo direto sem que eu chame a impressão. 

Cara... pensa bem... não tem como o componente imprimir, sem a sua aplicação comandar...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

 

É Daniel eu também pensava assim mais olha o que ta na unit ACBrNFe:

  Result := WebServices.Envia(ALote, Sincrono);

function TACBrNFe.Enviar(ALote: String; Imprimir: Boolean; Sincrono: Boolean): Boolean;
var
  i: integer;
begin
  if NotasFiscais.Count <= 0 then
    GerarException(ACBrStr('ERRO: Nenhuma NF-e adicionada ao Lote'));

  if NotasFiscais.Count > 50 then
    GerarException(ACBrStr('ERRO: Conjunto de NF-e transmitidas (máximo de 50 NF-e)' +
      ' excedido. Quantidade atual: ' + IntToStr(NotasFiscais.Count)));

  NotasFiscais.Assinar;
  NotasFiscais.Validar;

  Result := WebServices.Envia(ALote, Sincrono);

  if DANFE <> nil then
  begin
    for i := 0 to NotasFiscais.Count - 1 do
    begin
      if NotasFiscais.Items.Confirmada and Imprimir then
      begin
        NotasFiscais.Items.Imprimir;
        if (DANFE.ClassName = 'TACBrNFeDANFERaveCB') then
          Break;
      end;
    end;
  end;
end;

 

Editado por FabioMachado
  • Moderadores
Postado

Como o Daniel disse, não tem como ele imprimir se você não passar True no parâmetro, você está passando True ao parâmetro, .

function TACBrNFe.Enviar(ALote: String; Imprimir: Boolean; Sincrono: Boolean): Boolean;

if NotasFiscais.Items.Confirmada and Imprimir then

Agora vejamos a assinatura do método na classe TACBrNFe:

function Enviar(ALote: integer; Imprimir: Boolean = True; Sincrono: Boolean = False): Boolean; overload;

Veja que o parâmetro imprimir tem como default TRUE, ou seja, se você não informar nada ele assume TRUE, você provavelmente na sua aplicação chama o método Enviar sem passar o segundo e terceiro parâmetro, você passa somente o primeiro que é o lote, por isso que ele imprime "automaticamente", na verdade você não passa nada e ele assume os defaults.

 

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Este tópico foi criado há 3323 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.