Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde a todos, pessoal estou com um problema da seguinte forma.

Tenho a tela principal do meu pdv, onde existe um menu com opções de Cadastros (cliente, produto, forma pagamento, etc), Vendas, Menu Fiscal, Configurações, Exportações, Utilitários e outros.

escolhendo a opção de vendas, abro outro form do frente de caixa onde é feito a venda (inclusão dos itens, efetua pagamento e faz fechamento do cupom, dentre outras funcionalidades).

Até ai tudo bem, mas se não me engano o paf-ecf exige que a tela do Menu Fiscal e outros campos além do deste que não me lembro no momento fiquem sem restrição a impressora. Mesmo a impressora não estando ligada deverá funcionar normal, agora só no momento da emissão do cupom será necessário a impressora estar ligada.

Meu aplicativo ja fazia a conexão com a impressora no momento em que fosse aberto a tela principal usando o componente o ACBrECF nesta tela, com essa exigência do paf-ecf alterei a forma o aplicativo comunicar com a impressora. Agora esta comunicação esta sendo feito no momento da emissão do cupom e assim tive que mudar o componente ACBrECF para o form do frente de caixa.

Só que agora como posso fazer para que a tela anterior ao do frente de caixa (no caso a tela principal) consiga obter alguns dados tais como Identificação do PAF-ECF, mudar horario de verão e outros mais que acho ser necessário utilizar o componente do ACBrECF na tela principal?

Será que consegui esclarecer minha dúvida para quem puder responder ou dar algum dica que será bem recebida

Postado

se entendi direito , vc quer utilizar o form fiho no principal .

em alguma rotina do seu form principal = form pai ...

try

formfilho:=Tformfilho.create(self) ;

formfilho.iniciar parametros do ACBrECF e ativalo .

formfilho.acbrecf1.fazalgo...

formfilho.acbrecf1.faz + algo...

formfilho......

// não precisa show ou showmodal , ou seja , efetua comandos sem chama-lo .

finally

formfilho.free ;

end;

espero que ajude .

Postado

se entendi direito , vc quer utilizar o form fiho no principal .

em alguma rotina do seu form principal = form pai ...

try

formfilho:=Tformfilho.create(self) ;

formfilho.iniciar parametros do ACBrECF e ativalo . (como iniciá-lo?)

formfilho.acbrecf1.fazalgo...

formfilho.acbrecf1.faz + algo...

formfilho......

// não precisa show ou showmodal , ou seja , efetua comandos sem chama-lo .

finally

formfilho.free ;

end;

espero que ajude .

a rotina que eu escolhi foi no create do form principal, porém começou dar 3 erros que coloquei no anexo, se for possivel voce dar uma olhada, o erro 3º ele aparece rapido e se fecha.

FrenteCx:= TFrmFrenteCx.Create(Self); <--- aqui acontece os erros 1 e 2, e também já alterei Self para a conexão ZConnection1 e da o mesmo erro.

FrenteCx.ACBrECF1.Ativar; <---- aqui acontece o 3 erro que diz 'Modelo não definido', essa msg ele puxa lá ao ACbrECF, mas é uma msg que abre e se fecha rápido.

Será que pode ser este iniciar parâmetros que você citou acima e eu não entendi direito?

post-3013-13548988149167.jpg

post-3013-1354898814986.jpg

Postado

Paulinho ,

1 - Quando vc faz = formfilho:=tformfilho.create(self) , o formfilho executa o evento oncreate dele , coloque um break point no oncreate do formfilho pra vc ver onde esta dando este erro ,

2 - Referente aos parametros do ACBrECF , antes de ativalo vc tem que iniciar seus parametros , ja que caso vc va destriuir com o formfilho.free .

...acho que vc vai ter que trocar alguns comandos que estão no oncreate do formfilho para o onshow , ou seja , no oncreate vc pode somente parametrizar e ativar o ACBrECF e somente quando dar o show ou showmodal , vc faz o resto , entende ? Mas vamos vendo até vc conseguir ...

...Tem um Detalhe quando formfilho:=tformfilho.create(self) , o formfilho não pode estar criado , ou seja , tem que estar como Available Form em Project/Options/Forms...

Postado

blz marcelo a dica 1 eu entendi, já o 2 iniciar seus parametros, voce esta se referindo aos parametros do ACBrECF correto.

Caso seja sim seria este exemplo: formfilho.ACBrECF1.ECF.HorarioVerao; ?

Postado

marcelo este

1 - Quando vc faz = formfilho:=tformfilho.create(self) , o formfilho executa o evento oncreate dele , coloque um break point no oncreate do formfilho pra vc ver onde esta dando este erro, encontrei o erro, dentro do evento oncreate do formfilho eu crio conexões com minhas classes e quando entra no oncreate da primeira classe ele passa minha conexão como nil. então este pelo que parece esta sendo o primeiro erro.

Postado

blz marcelo a dica 1 eu entendi, já o 2 iniciar seus parametros, voce esta se referindo aos parametros do ACBrECF correto.

Caso seja sim seria este exemplo: formfilho.ACBrECF1.ECF.HorarioVerao; ?

Parametros são as Propriedades do ACBrECF , veja como vc pode fazer em Duas partes o modo de tratamento com este seu form filho :

1-No evento ONCreate do formfilho vc vai deixar somente a programação para Ativar o ACBrECF , sendo que vc precisara dele ativado no seu form Principal :

ACBrECF1.IntervaloAposComando := .... ;

ACBrECF1.MaxLinhasBuffer:= .... ;

ACBrECF1....propriedade tal

ACBrECF1....propriedade tal

ACBrECF1.Ativar ;

2-No evento ONShow do formfilho vc coloca o restante da programação desejada de que vc vai usar somente quando for mostrar o FormFilho .

Carrega_Suas_Classes ;

Tratamento_Banco_Dados ;

etc..etc ;

3-Para usar no Form Principal :

formfilho.ACBrECF1....

Algumas considerações importantes :

* Verifique se vc não tem nenhum timer ativado no formfilho !

* Não de mais formfilho.free , porque nesse caso vc destroi ele para utiliza-lo no form Principal , deixe ele criado sempre .

Postado

Bom dia Marcelo, venho informar que consegui fazer funcionar conforme suas orientações e também para agradecer esta grande ajuda que me destes.

Muito obrigado

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