Fórum como carregar o programa de onde parou? #442244

09/05/2013

0

amigos, vejam se podem me ajudar, estou criando um programa que está funcionando ok,
ele é emisso de cupom fiscal, realizo venda atraves do dbgrid com dados salvo no banco em firebird,

ex: estou no meio da venda com 3 items vendidos no cupom, e derrepente deu pico de luz, quando volta a luz e liga o pc, quando entro no sistema, o meu programa entra na tela como caixa livre, e eu nao consigo abrir uma nova venda, pois ja existe uma venda aberta na impressora, entao tenho que cancelar o que esta la e fazer uma nova venda, suponhamos que tinha 50 items registrados, daria maior trabalho, eu queria que toda vez que o sistema fosse fechado ele carregasse as vendas que estao abertas, como posso fazer isso?

desde ja agradeço....
Tiago Silva

Tiago Silva

Responder

Posts

09/05/2013

Joel Rodrigues

Depende de como está organizado seu banco. Mas por exemplo, você poderia ter um campo "STATUS" na venda e, ao abrir o form, verificar se tem alguma venda "aberta". Caso exista alguma venda aberta, você carregaria os dados dela e continuaria.
Só não sei se com a impressora vai funcionar, ou se é realmente necessário cancelar o cupom.
Responder

Gostei + 0

09/05/2013

Tiago Silva

eu tenho um status chamado "venda_aberta"...
e eu tenho uma tabela no banco chamada temp e meus produtos da venda ficam la até eu abrir uma nova venda..
o caminho é esse frmmodulo.qrpdv....
entao ficaria assim?

if venda_aberta :=true then
...... e aqui na execução eu colocaria o que para ele trazer pra tela os dados do banco?


Responder

Gostei + 0

09/05/2013

Joel Rodrigues

Exato, só lembrando de dois detalhes:
1) Você só vai usar "venda_aberta" se tiver declarado essa variável. Se não, deverá usar diretamente o campo da query que usou pra consultar a venda. Por exemplo:
if queryVenda.FieldByName('venda_aberta').AsBoolean = true
...faça alguma coisa


2) Para comparação, deve usar o operador "=" e não ":=" (que é de atribuição.

Fora isso, a ideia você pegou.

Boa sorte.
Responder

Gostei + 0

09/05/2013

Tiago Silva

é isso mesmo, foi falta de atenção referente a atribuição, só fui ver depois que postei, mas como sou novo aqui, nem sei se posso excluir o post, ja entendi, provavelmente vou conseguir, vou testar aqui e respondo assim que terminar, muito obrigado
Responder

Gostei + 0

09/05/2013

Joel Rodrigues

Show de bola.
Dê notícias.
Abraço.
Responder

Gostei + 0

10/05/2013

Tiago Silva

como eu faço para o dbgrid receber os dados que estao no banco de dados?

exemplo.
ta assim

if not venda_aberta then

frmmodulo.qritem.close;
frmmodulo.qritem.SQL.Clear;
frmmodulo.qritem.sql.add('select * from SC00001');
frmmodulo.qritem.Open;

e agora como faço para o meu dbgrid receber os campos da minha tabela

campos no banco e no dbgrid ('item,codproduto,qtd,unitario,total,produto,unidade')

obrigado
Responder

Gostei + 0

10/05/2013

Joel Rodrigues

Não bastaria ligar o DBGrid a um DataSource e este à query que você está usando?
Responder

Gostei + 0

10/05/2013

Tiago Silva

o dbgrid ja está ligado a um datasource
Responder

Gostei + 0

10/05/2013

Joel Rodrigues

Bom, então precisa verificar se a query está trazendo dados e se o DataSource está ligado à query correta.
Responder

Gostei + 0

10/05/2013

Tiago Silva

ele está ligado correto, só queria saber o seguinte.. somente com esse comando do select na tabela correta, era pro meu dbgrid ja trazer os daos que estao la? ou preciso dizer os campos que ele vai receber que estao la corretamente? e se for isso, como eu faria?

Responder

Gostei + 0

10/05/2013

Joel Rodrigues

Sim, o procedimento é apenas esse. Ligar o DataSource na Query, ligar o DBGrid no DataSource e abrir a Query. O DBGrid já deveria listar os dados automaticamente.
Faça o teste em tempo de design, abra a query para ver se os dados são listados no DBGrid.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar