Ir para conteúdo
  • Cadastre-se

Murilo Costa

Membros
  • Total de ítens

    24
  • Registro em

  • Última visita

Posts postados por Murilo Costa

  1. 13 minutos atrás, Murilo Costa disse:

    O que vc acha que pode quebrar o funcionamento? por causa do raise que coloquei? Pensei nele realmente pra não ficar essa confusão que o rapaz do post teve de mandar finalizar e imprimir no mesmo código com parâmetros diferentes de quantidade e avanço

    Poderiamos tratar ainda melhor a condição pro raise pra caso mandar um imprimir com os parametros em default e a etiqueta já tiver sido finalizada com outros parâmetros ai nem precisamos verificar se os parâmetros são diferentes, já da pra ir direto pra impressão sem dar raise nenhum. Ai daria erro somente pra quem mandar tipo FinalizarEtiqueta(5) e em seguida um Imprimir(3) por exemplo. Caso use só FinalizarEtiqueta(5) e Imprimir() ou Somente um Imprimir(5) ai funciona igual sempre sem dar erro nenhum

     

  2. O resultado final fica igual aqui no meu caso, da certo também dessa forma que sugeriu. só achei meio confuso a procedure finalizar não finalizar de fato a etiqueta, desse jeito a procedure finalizar só troca a situação pra finalizada, mas quem manda o comando de finalizar é a imprimir ou a iniciar. Mas de qualquer forma funcionou.

  3. 1 hora atrás, Daniel Simoes disse:

    Por favor teste com esse ajuste

    
    procedure TACBrETQ.IniciarEtiqueta;
    var
      wCmd: AnsiString;
    begin
      GravarLog('- IniciarEtiqueta');
    
      AtivarSeNecessario;
    
      wCmd := fsETQ.ComandosIniciarEtiqueta;
    
      if (not (fsEtqInicializada or fsEtqFinalizada)) then
        fsListaCmd.Insert(0, wCmd)       //Se Etiqueta não foi iniciada, comandos incluídos no início
      else
      begin
        if fsEtqFinalizada then
          fsListaCmd.Add(fsETQ.ComandosFinalizarEtiqueta(fsCopias, fsAvancoEtq));    // <---- AQUI
    
        fsListaCmd.Add(wCmd);    //Se Etiqueta foi iniciada, comandos são concatenados
      end;
    
      fsEtqInicializada := True;
      fsEtqFinalizada   := False;
      fsCopias          := 1;
      fsAvancoEtq       := 0;
    end;    

    a Unit modificada está em anexo...

    ACBrETQ.pas 24 kB · 0 downloads

    Não entendi essa modificação. Está modificando a procedure iniciar e a procedure finalizar continua sem adicionar o comando de finalizar. Ai dessa forma quem vai adicionar o comando de finalizar vai ser a procedure iniciar caso estiver iniciando outra etiqueta sem finalizar a anterior? Parece meio confuso isso. 

    O preenchimento normal não deveria ser assim por exemplo?

    LAcbretq.Ativar;
    
    LAcbretq.IniciarEtiqueta;
    LAcbretq.ImprimirTexto(orNormal, 4, 2, 1, 530, 30,'EMPRESA');
    LAcbretq.ImprimirTexto(orNormal, 3, 1, 1, 475, 30,'TRANSPORTADORA 1');        
    LAcbretq.FinalizarEtiqueta(2);
    
    LAcbretq.IniciarEtiqueta;
    LAcbretq.ImprimirTexto(orNormal, 4, 2, 1, 530, 30,'EMPRESA');
    LAcbretq.ImprimirTexto(orNormal, 3, 1, 1, 475, 30,'TRANSPORTADORA 2');        
    LAcbretq.FinalizarEtiqueta(3);
    
    LAcbretq.IniciarEtiqueta;
    LAcbretq.ImprimirTexto(orNormal, 4, 2, 1, 530, 30,'EMPRESA');
    LAcbretq.ImprimirTexto(orNormal, 3, 1, 1, 475, 30,'TRANSPORTADORA 3');        
    LAcbretq.FinalizarEtiqueta(5);
    
    LAcbretq.Imprimir;

    Dessa forma eu monto um comando já com 3 tipos de etiqueta diferente e cada uma delas com uma quantidade diferente e mando pra impressora tudo de uma vez no imprimir. Ai já sai imprime tudo de uma vez sem pausas e sem pular etiquetas

    O que vc acha que pode quebrar o funcionamento? por causa do raise que coloquei? Pensei nele realmente pra não ficar essa confusão que o rapaz do post teve de mandar finalizar e imprimir no mesmo código com parâmetros diferentes de quantidade e avanço

  4. 1 hora atrás, Daniel Simoes disse:

    Isso já é feito...

    
        // Verifica se ficou um bloco de etiquetas sem ser Finalizado
        if (not fsEtqFinalizada) then
          FinalizarEtiqueta(Copias, AvancoEtq)

    sua modificação pode quebrar a maneira que algumas aplicações operam...

    Estou analisando o tópico:

    Já devo propor um ajuste...

    sim, já chama o finalizar, mas nessa procedure foi removido a linha que enviava o comando de finalizar pra lista de comandos. esse que foi o problema

  5. Minha sugestão é colocar o comando de finalizar somente na procedure finalizar mesmo, e caso seja chamado a função imprimir antes de finalizar a etiqueta ai chamamos a procedure finalizar passando os mesmos parâmetros. E caso chame o imprimir depois que já finalizado e os parâmetros de copias e avanço do imprimir forem diferentes do que foi passado antes ai retorna erro pra forçar a pessoa rever o código.

    ACBrETQ.pas

  6. Em 18/03/2020 at 12:05, Daniel Simoes disse:

    Realmente havia um problema de lógica no ACBrETQ, quando lidando com os comandos "FinalizarEtiqueta" e "Imprimir"... apliquei um ajust nos fontes do SVN.. Commit [r19443]

     

    Na verdade o que ele precisava fazer era chamar a procedure finalizar já definindo a quantidade de etiquetas e usar imprimir só no final. Eu tenho uma situação assim. várias entiquetas diferente cada uma uma com sua quantidade. durante o meu código eu vou rodando vários finalizar e no final o imprimir. 

    Outra solução seria só não passar o comando finalizar, pois no imprimir já tinha uma validação pra caso ainda não estivesse finalizada já chamava o finalizar passando a mesma quantidade que passou no parâmetro de imprimir.

    Com essa mudança que vc fez o meu código parou de funcionar direito, pq foi removido o comando finalizar da procedure finalizar, ficando somente na função imprimir

    Capturar.PNG

  7. No caso dele é pq estava passando finalizar sem quantidade e na hora do imprimir, a quantidade não era usada lugar nenhum pois a etiqueta já estava finalizada. No código do imprimir já tinha uma condição pra que se não tivesse finalizada, iria finalizar já com a quantidade definida no parâmetro. Era só não passar o finalizar ou passar o finalizar com a quantidade queria. Agora no meu caso que preciso finalizar etiquetas varias vezes durante o código e cada vez com uma quantidade diferente não funciona pq o comando de finalizar só é passado na função imprimir. Vou fazer uns testes aqui, modificar a unit e mando a minha sugestão de melhoria

  8. Na revisão 19443 foi removido da procedure FinalizarEtiqueta um comando que adiciona o comando de finalização na lista de comandos. Gostaria de saber se isso está correto? No meu código eu crio vários grupos de etiqueta, vou iniciando e finalizando essas etiquetas e depois dou somente um imprimir no final. Depois desse commit parou de funcionar.

    Capturar.PNG

  9. 1 hora atrás, BigWings disse:

    Não vi nenhuma diferença desse arquivo para o do repositório que justifique esse erro...

    Talvez na atualização houve conflitos e o arquivo ficou corrompido?

    Por favor teste novamente com o arquivo do repositório, fazendo o "revert" do mesmo pelo Tortoise.

    testei compilando um exe novo e funcionou certinho sim. só não funcionou no exe que já tinha compilado no cliente. Deve ter dado algum conflito de versões talvez.

    • Curtir 2
  10. 10 minutos atrás, Daniel Simoes disse:

    não diretamente pelo componente... PPLA e ZPL2 seguem direcionamentos diferentes...

    mas você poderia abstrair isso na sua aplicação, e calcular os valores antes de enviar ao componente...

    Blz só queria confirmar mesmo antes de fazer código desnecessário. Vi em alguns lugares falando que o padrão PPLB emula o padrão EPL. Caso eu altere o firmware dessa impressora Argox pra PPLB acha que daria certo? Ou não tenho pra onde correr mesmo e tenho que ter tratamento diferente de posicionamento pra cada tipo de impressora?

     

  11. Desenvolvi uma etiqueta usando EPL2 pra um cliente que tem uma impressora Zebra. Agora um outro cliente quer usar a mesma etiqueta mas ele tem uma ARGOX que usa PPLA. Só alterei de EPL2 para PPLA no componente e mandei imprimir. Saiu tudo invertido as posições verticais. Pra poder funcionar direito argox tive que editar todos os parâmetros de vertical, o restante não precisar mudar nada. Existe alguma forma de eu conseguir usar o mesmo código para os dois tipos de impressora?

    photo_2020-02-18_16-53-58.jpg

    photo_2020-02-18_16-53-55.jpg

    posicoes argox.png

    posicoes zebra.png

  12. Em 10/10/2019 at 10:31, BigWings disse:

    Você acha possível aumentar o QrCode pra ficar de acordo com o manual (mínimo de 22mm + 3mm de "quiet zone")?

    Nos meus testes esse arquivo gerou uma mini-página extra no final...

    imageproxy.php?img=&key=ea207568a6df2b35 

    Ajustei para caber o qrcode nessas dimensões

     

    DACTE2Vias.fr3

  13. Recentemente tive problemas com a transmissão de arquivo de remessa para a caixa federal. Funcionava normalmente e parou de funcionar, fomos informados pelo gerente que as regras para validação foram alteradas e agora não aceitariam mais arquivos com caracteres acentuados, fiz um teste de transmissão alterando um arquivo manualmente e ai aceitaram. Fiz uma alteração no componente ACBrBoleto criando uma propriedade Boolean "RemoveAcentosArqRemessa" para quem precisar dessa funcionalidade. Segue em anexo o arquivo alterado.

    ACBrBoleto.pas

  14. Teve uma alteração na unit da etiqueta PPLA que deu errado aqui pra mim, não sei se essa alteração foi feita por esse tópico, mas ficou assim:

    na revisão 14564 veio uma alteração nessa procedure que ficou assim:

    function TACBrETQPpla.ConverterUnidade(AValue: Integer): Integer;
    begin
      if (Unidade = etqDots) then
        Result := inherited ConverterUnidade(etqMilimetros, AValue);
    
      Result := AValue * 10;
    
      if (Unidade = etqPolegadas) then
        Result := Result * 10;
    end;

    na versão anterior era assim:

    function TACBrETQPpla.ConverterUnidade(AValue: Integer): Integer;
    begin
      Result := AValue;
      if (Unidade <> etqDots) then
        Exit;
    
      Result := inherited ConverterUnidade(etqMilimetros, AValue);
    end;

    estou mandando em anexo como ficou a impressão no meu cliente. voltei pra versão anterior e voltou a funcionar normalmente.

     

    WhatsApp Image 2018-02-01 at 17.52.55.jpeg

×
×
  • 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.