dúvida sistema biblioteca
olá estou desenvolvndo um sistema para biblioteca, neste sistema um livro possui vários exmplares e quando faço o aluguel dos exemplares a cada exemplar alugado , o sistema diminui a quantidade de exmplares na biblioteca o problema ocorre quando da devolução eu não consigo inserir no estoque os livros devolvidos para atualiza-lo, eu seleciono num lookup o aluno e um grid exibe os aluguéis por ele realizados e um outro grid exibe os livros que ele alugou quando eu seleciono o aluguel, agora na hora da devolução ele só inclui um livro na soma do estoque entenderam????
Xereuzinho
Curtidas 0
Respostas
Mmtoor
19/06/2004
Prezado:
Utilize em sua tabela um campo do tipo lógico (sim/não) para que ele seja marcado quando o livro for locado.
No seu select crie a instrução para a listagem dos liccros com este campo lógico em true (para saber quando estão locados) e outra em false (para saber os que se encontram na biblioteca).
Lancando-se o contador para isso você terá sempre a sua reposição atualizada de forma automática.
OK.
Utilize em sua tabela um campo do tipo lógico (sim/não) para que ele seja marcado quando o livro for locado.
No seu select crie a instrução para a listagem dos liccros com este campo lógico em true (para saber quando estão locados) e outra em false (para saber os que se encontram na biblioteca).
Lancando-se o contador para isso você terá sempre a sua reposição atualizada de forma automática.
OK.
GOSTEI 0
Xereuzinho
19/06/2004
olha amigo eu tentei mas não consegui com a sua dica será que vc não tem um fonte parecido para me dar como exemplo ??
GOSTEI 0
Aroldo Zanela
19/06/2004
Colega,
Qual o banco de dados? Pode colocar um fragmento do código para ser analisado?
Qual o banco de dados? Pode colocar um fragmento do código para ser analisado?
GOSTEI 0
Xereuzinho
19/06/2004
olha o código é o seguinte, quando eu clico no botão devover livro o código é mais ou menos assim
dm.livros.edit;
dm.livrosQuantidade_estoque:= dm.livrosQuantidade_Estoque+1 ;
dm.livros.post;
o banco é access e a conexão é com ADO
Abraços e bom fim de semana
dm.livros.edit;
dm.livrosQuantidade_estoque:= dm.livrosQuantidade_Estoque+1 ;
dm.livros.post;
o banco é access e a conexão é com ADO
Abraços e bom fim de semana
GOSTEI 0
Aroldo Zanela
19/06/2004
Colega,
Como você registra as devoluções? Há uma entrada de dados para as devoluções que cria um histórico (p.e: tabela de devoluções)? Antes de utilizar o edit, como você se posiciona no registro correto? Se são vários registros, o fragmento acima está dentro de um loop While ... do?
Como você registra as devoluções? Há uma entrada de dados para as devoluções que cria um histórico (p.e: tabela de devoluções)? Antes de utilizar o edit, como você se posiciona no registro correto? Se são vários registros, o fragmento acima está dentro de um loop While ... do?
GOSTEI 0
Xereuzinho
19/06/2004
eu fiz assim com um lookup eu seleciono o aluno e filtro todos os empréstimos que são exibidos num grid e em outro grid são exibidos os itens de emprestimos por exemplo se eu seleciono um emprestimo do aluno xereuzinho o 2º grid me mostra todos os livros que ele emprestou , quanto a tabela devolução eu não tenho acredito que dá pra fazer isso só com as seguintes tabelas : Livros, emprestimos, Livro_Emprestimo, e alunos
GOSTEI 0
Aroldo Zanela
19/06/2004
Colega,
Supondo que existem as informações de livros emprestados em uma determinada tabela que é alimentada quando da devolução dos mesmos, então você teria uma rotina semelhante a:
Na instrução acima, a expressão deve ser provida pelos critérios necessários para identificar de forma única a devolução.
Em seguida, pode-se:
Faça os devidos ajustes para seu código, pois além de não conhecer os detalhes de modelagem de seu sistema, escrevi ´on the fly´ diretamente no fórum. Pode conter erros.
Supondo que existem as informações de livros emprestados em uma determinada tabela que é alimentada quando da devolução dos mesmos, então você teria uma rotina semelhante a:
SELECT * FROM DEVOLUÇÕES WHERE <EXPRESSÃO>
Na instrução acima, a expressão deve ser provida pelos critérios necessários para identificar de forma única a devolução.
Em seguida, pode-se:
dm.Devolucoes.First; while not dm.Devolucoes.Eof do begin if dm.Livros.Locate(´colunaCodigo´, dm.Devolucoes.FieldByName(´coluna_codigo´).Value, []) then begin dm.livros.edit; dm.livrosQuantidade_estoque:= dm.livrosQuantidade_Estoque+1 ; dm.livros.post; end; dm.Devolucoes.Next; end;
Faça os devidos ajustes para seu código, pois além de não conhecer os detalhes de modelagem de seu sistema, escrevi ´on the fly´ diretamente no fórum. Pode conter erros.
GOSTEI 0
Xereuzinho
19/06/2004
Colega Muito Obrigado Acho que agora deu certo valeu e desculpe te incomodar
GOSTEI 0