Ir para conteúdo
  • Cadastre-se

dev botao

Como saber NFCe / Imp.Não fiscal Ligada/Desligada?


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

Recommended Posts

Bom dia!!! Muitíssimo obrigado pelo auxílio que vem nos dando...

- Eu tenho uma função que analisa se a ECF(quando é ECF) está ligada da seguinte maneira :

Uso o método ACBrECF.Estado dentro da função , caso retorne uma EXCEÇÃO,

então a ECF está DESLIGADA. Funciona PERFEITAMENTE desta maneira há alguns meses (4) em todos clientes nossos

(uns 250 computadores, a maior parte com a DARUMA FS700 e alguns poucos com BEMATECH).

...

- Agora estou preparando o sistema para NFCe (todos componentes necessários já estão ligados corretamente,

está saindo relatório gerencial, leitura x ... ),

só que nesta função ( ACBrECF.Estado)  uma vez ativado o objeto, nunca retorna EXCEÇÃO

DÚVIDA : Qual então é a MELHOR MANEIRA de analisar se uma impressora NÃO FISCAL está ligada ?

...

Obrigado,

CARLOS A.F.S. - F&S Informática...

Link para o comentário
Compartilhar em outros sites

1 hora atrás, ROGERIO EDVAR DE SOUZA disse:

Bom dia!!! Muitíssimo obrigado pelo auxílio que vem nos dando...

- Eu tenho uma função que analisa se a ECF(quando é ECF) está ligada da seguinte maneira :

Uso o método ACBrECF.Estado dentro da função , caso retorne uma EXCEÇÃO,

então a ECF está DESLIGADA. Funciona PERFEITAMENTE desta maneira há alguns meses (4) em todos clientes nossos

(uns 250 computadores, a maior parte com a DARUMA FS700 e alguns poucos com BEMATECH).

...

- Agora estou preparando o sistema para NFCe (todos componentes necessários já estão ligados corretamente,

está saindo relatório gerencial, leitura x ... ),

só que nesta função ( ACBrECF.Estado)  uma vez ativado o objeto, nunca retorna EXCEÇÃO

DÚVIDA : Qual então é a MELHOR MANEIRA de analisar se uma impressora NÃO FISCAL está ligada ?

...

Obrigado,

CARLOS A.F.S. - F&S Informática...

Observação:

Minha impressora é a DR800 da DARUMA

Está configurada corretamente pois estou testando um relatório gerencial com 

todos acentos possíveis, e negrito... sai tudo impresso perfeitamente...

Obrigado a quem ajudar...!

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
4 horas atrás, ROGERIO EDVAR DE SOUZA disse:

só que nesta função ( ACBrECF.Estado)  uma vez ativado o objeto, nunca retorna EXCEÇÃO 

DÚVIDA : Qual então é a MELHOR MANEIRA de analisar se uma impressora NÃO FISCAL está ligada ?

Isso acontece porque o ACBrECFVirtualNFCe foi preparado para trabalhar com qualquer tipo de impressora não fiscais, incluindo as que não tem possibilidade de retorno de estado.

Uma opção é verificar diretamente a impressora PosPrinter por meio do comando ACBrPosPrinter. LerStatusImpressora.

Outra opção seria escrever uma classe descendente da ACBrECFVirtualNFCe para sobrescrever o método GetEstadoECFVirtual para ler o estado da PosPrinter.

Ainda outra opção seria escrever um class helper para essa mesma classe para fazer o mesmo.

[]'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.
Link para o comentário
Compartilhar em outros sites

35 minutos atrás, EMBarbosa disse:

Isso acontece porque o ACBrECFVirtualNFCe foi preparado para trabalhar com qualquer tipo de impressora não fiscais, incluindo as que não tem possibilidade de retorno de estado.

Uma opção é verificar diretamente a impressora PosPrinter por meio do comando ACBrPosPrinter. LerStatusImpressora.

Outra opção seria escrever uma classe descendente da ACBrECFVirtualNFCe para sobrescrever o método GetEstadoECFVirtual para ler o estado da PosPrinter.

Ainda outra opção seria escrever um class helper para essa mesma classe para fazer o mesmo.

Boa tarde...

Eu fiz da seguinte forma, e deu certo :

+ Desativo o ACBrPosPrinter se estiver JÁ ativo

+ Tento ATIVAR ele novamente, caso ocorra uma EXCEÇÃO (try ... except... end), significa que a IMPRESSORA está DESLIGADA .

Deu certo e até que não ficou muito lento não ...

Obrigado...

 

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

  • Consultores
3 minutos atrás, ROGERIO EDVAR DE SOUZA disse:

Deu certo e até que não ficou muito lento não ...

Sugeri o LerStatusImpressora porque ele pode retornar outros dados também.  Mas que bom que deu certo. Obrigado pelo retorno.

 

 

  • Curtir 1

[]'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.
Link para o comentário
Compartilhar em outros sites

6 minutos atrás, EMBarbosa disse:

Sugeri o LerStatusImpressora porque ele pode retornar outros dados também.  Mas que bom que deu certo. Obrigado pelo retorno.

 

 

Olá...

Estou testando agora a maneira que me passou pois, além de mais rápido,

pode retornar outros estados, conforme disse...

Já já posto o resultado... Obrigado...

Defini uma constante assim :


VConst_Estados_PosPrinter: array [TACBrPosTipoStatus] of string =
( 'stErro'        , 'stNaoSerial' , 'stPoucoPapel', 'stSemPapel'   ,
  'stGavetaAberta', 'stImprimindo', 'stOffLine'   , 'stTampaAberta', 'stErroLeitura' );

 

Depois tentei um botão assim, MAS Não deu certo... (fiz embasado no que tenho para receber estado da ECF)

Var
V_EstadoACBrPosPrinter : String;
begin
   V_EstadoACBrPosPrinter := VConst_Estados_PosPrinter[ ACBrPosPrinter1.LerStatusImpressora ];

Editado por ROGERIO EDVAR DE SOUZA
errei ao digitar
Link para o comentário
Compartilhar em outros sites

Obrigado novamente... 

Fiz assim agora, funcionou... retorna erro de leitura quando a impressora está desligada...

mas por vezes retorna "gaveta aberta" quando a ECF está desligada...

a vantagem é que o retorno é bem rápido...

Var
V_EstadoACBrPosPrinter : TACBrPosPrinterStatus;
MsgErro : String;
begin
   V_EstadoACBrPosPrinter := Fun_Imp_Daruma.ACBrPosPrinter_Enviado.LerStatusImpressora ;

   MsgErro := 'Perfeito estado';

   if stErro in V_EstadoACBrPosPrinter then                               MsgErro := 'Erro'
   else if stPoucoPapel in V_EstadoACBrPosPrinter then        MsgErro := 'Pouco Papel'
   else if stNaoSerial in V_EstadoACBrPosPrinter then            MsgErro := 'Não Serial'
   else if stSemPapel in V_EstadoACBrPosPrinter then           MsgErro := 'Sem Papel'
   else if stGavetaAberta in V_EstadoACBrPosPrinter then     MsgErro := 'Gaveta Aberta'
   else if stImprimindo in V_EstadoACBrPosPrinter then         MsgErro := 'Imprimindo'
   else if stOffLine in V_EstadoACBrPosPrinter then                MsgErro := 'Impressora Desligada...'
   else if stTampaAberta in V_EstadoACBrPosPrinter then     MsgErro := 'Tampa Aberta'
   else if stErroLeitura in V_EstadoACBrPosPrinter then         MsgErro := 'Erro de Leitura' ;

showmessage( 'ESTADO IMP.NÃO FISCAL = '+ MsgErro );

End;

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

  • Este tópico foi criado há 1854 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...