Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

Ola Srs do ACBR, essa rotina funciona somente com a impressora emulada na serial ou na serial Direta

se eu coloco o compartilhamento da impressora que é serial ,,,,e está no spooler , dai nao funciona,

o que estou fazendo de errado...alguem poderia me esclarecer por favor, ou tem outra forma de pegar esse resultado

obs. a impressora  é uma epson tm-t20x usb/serial..instalada na com2 fisica....

nao quero usar serial emulada pois da pau...de vez em quando perde a porta...

 

function checar_gaveta_fechada: boolean;
var 
   tpStatus : TACBrPosTipoStatus;
    tpppstatus : TACBrPosPrinterStatus;
    AStr: String;
 begin
      if not ACBrPosPrinter1.ativo then
         ACBrPosPrinter1.ativar;
       sleep(200);
      tpppStatus := ACBrPosPrinter1.LerStatusImpressora;
      AStr := '';
      For tpStatus := Low(TACBrPosTipoStatus) to High(TACBrPosTipoStatus) do
      begin
        if tpStatus in tpppstatus then
          AStr := AStr + GetEnumName(TypeInfo(TACBrPosTipoStatus), integer(tpStatus) )+ ', ';
      end;

          ACBrPosPrinter1.Desativar;
      sleep(300);
      if astr = '' then
        begin
          result := true;
        end
      else
        if not (pos('stGavetaAberta',astr) > 0) then
         begin
          //showmessage('gaveta Fechada');

          Result := True;
         end
        else
         begin
          //showmessage('gaveta Aberta');

          Result := False;
         end;

   end;
 

preciso que ela funcione com driver de spooler do windows instalada...para outros relatorios de caixa..

Editado por geanjesus
acrescentar funcao
  • Membros Pro
Postado

Pelo jeito ninguem entendeu o que preciso....vou explicar de outra maneira e por favor me digam se é possível o que eu quero...

problema1:

 se eu compartilho a impressora epson que esta instalada fisicamente na com2  e no  spooler ..

e passo o compartilhamento no meu sistema...para o componente posprinter

ex  porta := \\localhost\edpsontm-t20x  

tudo imprime normalmente...o cupom sat usa a  com2 comprtilhada e os relatorios de caixa usa a mesma impressora atraves do spooler

porem nao reconhece se a gaveta esta aberta ou fechada, atraves da funcao acima

 

problema2:

se eu deixo sem spooler , pois a impressora esta direto na serial e  coloco no meu sistema  no componente posprinter porta := com2 

o sat funciona e imprime normalmente e reconhece se a gaveta esta aberta ou fechada, atraves da funcao acima

porem os relatorios de caixa do meu sistema nao imprimem, pois precisam do spooler do windows

 

O que eu preciso é:

a impressora tem que estar na com2 fisica , para reconhecer se a gaveta esta aberta ou fechada

isso segundo o daniel precisa ser  porta com emulada, com fisica ou ethernet , para reconhecer se a gaveta esta aberta ou fechada

porem preciso  ter o spooler para os relatorios

na com emulada ..eu ja testei e funcionou, mas de vez em quando perde a porta e nao funciona, entao descartei isso...porisso coloquei uma impressora com porta serial fisica

e o acbr tem que reconhecer a gaveta se esta aberta ou fechada...

talvez o Daniel possa dar uma Luz para esse problema...ja que ele é o pai da criança...chamada acbrposprinter.....

acho que tem jeito, só nao descobri ainda...como...

talvez a solucao seja alternar entre porta com fisica no sat e porta compartilhada no spooler para o relatorio

mas ainda nao sei como faria isso,

pois se uso porta com2 fisica para o sat,

nao posso deixar porta com2 no spooler do windows, pois isso vai gerar conflito  e segurar a porta

entao como resolver isso, se alguem souber , eu agradeço... 

  • Administradores
Postado

Bom dia,

Oque ocorre é que trata-se de uma área aberta do fórum, a qual é respondida conforme a disponibilidade dos devs ACBr e também da própria comunidade.

Conforme sempre anunciamos, temos o serviço ACBr Pro, o qual entre outros benefícios, lhe garante um SLA de resposta muito rápido.

Saiba mais aqui https://projetoacbr.com.br/pro/

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

  • Moderadores
Postado
Em 19/02/2022 at 17:06, geanjesus disse:

talvez o Daniel possa dar uma Luz para esse problema...ja que ele é o pai da criança...chamada acbrposprinter.....

Já leu o tópico abaixo?

Aí ele deixa claro que o acesso via spool não permite leitura de informações apenas envio.

Talvez você queira tentar usar o modo USB que não depende de porta serial virtual nem do spooler.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado (editado)

Olá BigWinds, 

acho que vc tambem nao entendeu o que preciso...

se eu colocar a impressora como usb...como vou saber se a gaveta esta aberta ou nao...

segundo o ´Daniel só da para saber , se a impressora, for usb com a porta com emulada, serial  porta com fisica, ou ehthernet porta tcp

com a impressora na usb e  porta com emulada funcionou , mas de vez em quando perde a funcionalidade ,pois perde a porta emulada...

entao pedi para o cliente comprar uma impressora serial...tm-t20x usb/serial...

mas agora como serial ela funciona tudo no sat ,inclusive com o status da gaveta, porem sem spooler...

se eu coloco no spooler e coloco com2... o acbr nao acessa a com2 fisica , pois o spooler prende a porta com2...entendeu?

entao como ter status de gaveta e ao mesmo tempo ter o spool de impressao no windows..com a impressora serial..? essa é a questão...

algumas alternativas que pensei...

ja pensei em portar todos os relatorios de caixa para imprimir direto pelo escposprinter...isso é uma alternativa...

mudar a porta do spool de impressao, ex; de Com2 para FILE, antes de checar o status da gaveta pelo escposprinter

     e depois retornar para com2 ...isso é outra alternativa...não sei a que custo, mas achei uma funcao que faz isso. usando winspool.....dai libera a Com2...

na verdade eu preciso usar a serial para o sat e checar status da impressora e usar o spool de impressao para imprimir os relatorios do caixa na mesma impressora...

porisso que eu disse que só o Daniel poderia dar uma luz..sobre como conseguir isso...

mudar a porta de \\localhost\tm-t20x para com2 no escposprinter.device.porta nao adianta se a porta estiver presa no spool ...teria primeiro que liberar a porta do spool

pois usando \\localhost\tm-t20x na impressora compartilhada na porta com2...funciona tudo menos o  status da impressora...de stgavetaberta 

ah, com duas impressora funciona perfeito, uma usb e outra serial , na serial sat e status da gaveta e na usb relatorios do caixa

mas eu preciso na mesma impressora....

 

 

Editado por geanjesus
complementação
  • Membros Pro
Postado (editado)

Olá Bigwings

esse modo USB eu ainda nao entendi, e nao testei,  mas poderia resolver, mas sem serial emulada....pois como ja disse usei com serial emulada e funcionou ....mas deu problemas por perder a porta 

vou tentar com o modo USB...mas posso usar o spooler de impressao?..se sim entao resolve....

Editado por geanjesus
  • Este tópico foi criado há 1007 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.