Ir para conteúdo
  • Cadastre-se

dev botao

É possivel enviar varias etiqutas de uma unica vez?


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1443 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá amigos, Estou trabalhando com a ARGOX e está funcionando, porém para cada linha de etiquetas eu mando o seguinte comando:

ETQ.IniciarEtiqueta()

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "-6", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "-6", "R$ 16,90") 
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "-6", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "30", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "30", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "30", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "66", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "66", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "66", "7896003701685", "5", "1")

ETQ.FinalizarEtiqueta()
ETQ.Imprimir( "1", "0" )

para a proxima linha de etiquetas repito os comandos.

Resultado:

Ela imprime, para, imprime, para, imprime,.......

Existe alguma forma de enviar tudo de uma só vez e ela imprimir todas as linhas de etiquetas numa tacada só????

 

Gratidão

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Veja que o primeiro parâmetro do comando Imprimir() é o número de copias, logo vc poderia implementar no seu sistema para que seja passado quantas copias deverão ser impressas.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Oi Juliana, obrigado.

Porém apenas no exemplo que coloquei as etiquetas são iguais, mas na realidade cada etiqueta é diferente, de um produto diferente, então por exemplo, preciso gerar 50 etiquetas diferentes, hoje eu egro tres e mando pra impressora, gero mais tres e mando pra impressora, e assim vai.

Gostaria de saber se exite uma forma de mandar as 50 eqtiquetas de uma unica vez e elas serem impressas num lote só.

 

Gratidão

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Seu processo parece correto, e não deveria causar a pausa na impressora..

parece ser alguma programação interna do equipamento... Experimente rodar um Reset na impressora..

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

o ideal é enviar uma linha de cada vez... mas não por intervalo de tempo... você pode enviar uma nova linha, assim que receber uma resposta do comando anterior

Veja esse fluxo:

NewItem49.png

https://acbr.sourceforge.io/ACBrMonitor/ACBrMonitor.html

  • Curtir 1
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.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 27/02/2020 at 15:19, Juliana Tamizou disse:

Boa tarde.

Veja que o primeiro parâmetro do comando Imprimir() é o número de copias, logo vc poderia implementar no seu sistema para que seja passado quantas copias deverão ser impressas.

Att.

Olá Juliana, passei o parâmetro de número de cópias e não funcionou, imprimiu apenas uma linha, o que eu fiz de errado?

 

ETQ.IniciarEtiqueta()

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "-6", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "-6", "R$ 16,90") 
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "-6", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "30", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "30", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "30", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "66", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "66", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "66", "7896003701685", "5", "1")

ETQ.FinalizarEtiqueta()
ETQ.Imprimir( "5", "1" )

Link para o comentário
Compartilhar em outros sites

Olá Daniel e Juliana, passei o parâmetro de número de cópias e não funcionou, imprimiu apenas uma linha, o que eu fiz de errado?

 

ETQ.IniciarEtiqueta()

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "-6", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "-6", "R$ 16,90") 
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "-6", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "30", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "30", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "30", "7896003701685", "5", "1")

ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "66", "BRINCO LUXO CRISTAL")
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "66", "R$ 16,90")
ETQ.ImprimirBarras("0", "0", "2", "2", "2" , "66", "7896003701685", "5", "1")

ETQ.FinalizarEtiqueta()
ETQ.Imprimir( "5", "1" )

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Não duplique suas postagens desta forma, assim você só polui o tópico.

Faça um teste no demo e nos retorne se obteve o mesmo problema.

Att.

 

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Juliana Tamizou disse:

Boa tarde.

Não duplique suas postagens desta forma, assim você só polui o tópico.

Faça um teste no demo e nos retorne se obteve o mesmo problema.

Att.

 

Juliana descule pela duplicidade.

Pelo Demo dá certinho, as configurações estão iguais ao monitorAcbr, mas no monitor não vai.   Onde eu vejo as linhas de comando do demo, pra saber como ele enviou??

Link para o comentário
Compartilhar em outros sites

10 minutos atrás, Daniel Simoes disse:

Você está enviando uma linha de cada vez, correto ?

Por favor poste o Log do ACBrMonitor

17/03/2020 17:16:19 - Configuração geral gravada com sucesso
17/03/2020 17:16:19 - ATENÇÃO: Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini".

17/03/2020 17:16:19 - ACBr MonitorPLUS Ver.1.2.0.62
17/03/2020 17:16:19 - Aguardando comandos ACBr
17/03/2020 17:16:19 - Monitorando Comandos TXT em: C:\GerenteInteligente Relatorios\AcBr\ent.txt
17/03/2020 17:16:19 - Respostas gravadas em: C:\GerenteInteligente Relatorios\AcBr\sai.txt
17/03/2020 17:16:19 - Log de comandos será gravado em: C:\GerenteInteligente Relatorios\AcBr\Log\log.txt
17/03/2020 17:16:25 - ETQ.IniciarEtiqueta()
17/03/2020 17:16:25 - OK: 
17/03/2020 17:16:26 - ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "-6", "BOLSA MALETA RUSTIC")
17/03/2020 17:16:26 - OK: 
17/03/2020 17:16:26 - ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "-6", "R$ 289,90")
17/03/2020 17:16:26 - OK: 
17/03/2020 17:16:26 - ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "-5", "9628990", "5", "1")
17/03/2020 17:16:26 - OK: 
17/03/2020 17:16:26 - ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "30", "BOLSA MALETA RUSTIC")
17/03/2020 17:16:26 - OK: 
17/03/2020 17:16:27 - ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "30", "R$ 289,90")
17/03/2020 17:16:27 - OK: 
17/03/2020 17:16:27 - ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "30", "9628990", "5", "1")
17/03/2020 17:16:27 - OK: 
17/03/2020 17:16:27 - ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "66", "BOLSA MALETA RUSTIC")
17/03/2020 17:16:27 - OK: 
17/03/2020 17:16:28 - ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "66", "R$ 289,90")
17/03/2020 17:16:28 - OK: 
17/03/2020 17:16:28 - ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "66", "9628990", "5", "1")
17/03/2020 17:16:28 - OK: 
17/03/2020 17:16:28 - ETQ.FinalizarEtiqueta()
17/03/2020 17:16:28 - OK: 
17/03/2020 17:16:29 - ETQ.Imprimir( "4", "0" )
17/03/2020 17:16:29 - OK: 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@AllSoftware, estamos verificando essa melhor essa questão do número de cópias, mas outro teste que pode fazer, é passar esse parâmetro como zero e definir a qtd de cópias em tela. menu Etiqueta (Apenas para efeito de Testes)

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Tente não passar o comando ETQ.FinalizarEtiqueta()

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Apenas complementando... Se for utilizar o método FinalizarEtiqueta, pode passar o parâmetro de cópias apenas neste método. Vou ajustar isso no manual:

https://acbr.sourceforge.io/ACBrMonitor/FinalizarEtiqueta.html

obs: Quando não utilizado o método FinalizarEtiqueta o mesmo é realizado automaticamente no momento da impressão,

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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]

Citar

-- ACBrETQ --
[-] Correção para que o método "FinalizarEtiqueta" funcione corretamente como o
    método "Imprimir", e ambos respeitem os parâmetros "Copias" e "AvancoEtq"
    (por: DSA)

 

  • Curtir 1
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.

Link para o comentário
Compartilhar em outros sites

Pessoal, agora deu certo.  Muito obrigado

Eu passei o comando ETQ.FinalizarEtiqueta() para o primeiro comando a ser passado para finalizar a etiqueta anterior caso haja;

Apenas o comando de avançar que não está aceitado, mas não atualizei o SVN ainda;

 

ETQ.FinalizarEtiqueta()
OK: 
ETQ.IniciarEtiqueta()
OK: 
ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "-6", "SAPATO BONECA PRETO")
OK: 
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "-6", "R$ 1,00")
OK: 
ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "-5", "00097639", "5", "1")
OK: 
ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "30", "SAPATO BONECA PRETO")
OK: 
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "30", "R$ 1,00")
OK: 
ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "30", "00097639", "5", "1")
OK: 
ETQ.ImprimirTexto( "0", "0", "2", "1", "18", "66", "SAPATO BONECA PRETO")
OK: 
ETQ.ImprimirTexto( "0", "2", "2", "1", "12", "66", "R$ 1,00")
OK: 
ETQ.ImprimirBarras("0", "4", "1", "1", "2" , "66", "00097639", "5", "1")
OK: 
ETQ.Imprimir( "6", "1" )
OK: 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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

Editado por Murilo Costa
Link para o comentário
Compartilhar em outros sites

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.

Editado por Murilo Costa
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1443 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.