URGENTE! Dúvida do dbgrid do delphi
27/06/2018
Pessoal, tenho que apresentar meu tcc hoje dia 27/06 se alguem me responder antes seria legal o meu sistema ter isso. Tenho uma tabela de notas fiscais e quando a pessoa da um insert nessa tabela também um insert é dado na tabela financeiro. Tinha colocado um código para se a nota ou pedido estivesse como situação 'A pagar' (se estivesse para pagar depois) o registro na tabela financeiro ficasse vermelho. Acrescentei uma função na tela de cadastro de notas onde a pessoa pode excluir a nota de entrada desde que nenhum item dela tivesse sido excluido. AS VEZES quando excluo uma nota de entrada ele da uma mensagem 'Bookmark was not found' e não exclui a nota na tabela de financeiro (que nao vdd a nota nao é excluida só escondida no bd e os itens são diminuidos junto com o financeiro.
Agora se a pessoa quiser alterar o status de alguma nota que esteja com situação 'A pagar' ele não dá esse erro. E se forem vários registros como vai facilitar para o usuário? Aguardo resposta sem algume quiser me ajudar.
Posts
O código estava no evento Ondrawcolumncell desse dbgrid
27/06/2018
Raimundo Pereira
Uma dica é ter uma coluna em cada tabela com o Status
Tabela de nota campo staus
Cancelada - Autorizada
Pode usar modalidades
Retirada imediata - Pago na hora
Entrega - Em aberto
Seu financeiro deve levar em consideração o status e a modalidade.
Ou seja se a nota = Autorizada e Status <> Em aberto, contabiliza.
Mais acredito que está em cima para reformular a lógica
27/06/2018
Raimundo Pereira
Referente ao erro você precisa verificar a propriedade "DRAWCOLUMNCELL" do seu grid.
Exemplo :
if not odd(dm1.tbl_agenda_consulta.RecNo) then
if not (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color:=$00FFEFDF;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(rect, Column.Field, State);
end;
Debug todas as linhas e conseguirá resolver seu problema.
Abraço e boa sorte
Ok, poderia me explicar melhor o que você tinha dito primeiro? E o que significaria isso: if not odd(dm1.tbl_agenda_consulta.RecNo) then estou usando assim:
if (Zfin.fieldbyname('PAGAMENTO').Asstring = 'A Pagar' then
///:= cor;
Acontece que as vezes quando excluo uma nota de entrada que não está paga, ele dá essa mensagem.
27/06/2018
Emerson Nascimento
em que ordem você está fazendo a 'exclusão'?
você deve manipular primeiro o financeiro e depois a nota.
estou fazendo primeiro a nota mas esse processo é feito na tabela de nota fiscal. Quando a pessoa da um insert na nota da tambem na de financeiro, não está ligada por inner join
eu faço um update e mudo a situação para I (inativo) no dbgrid ele da um select where situação = 'A';
27/06/2018
Raimundo Pereira
Isso tudo usando o mesmo dataset?
tenho algumas querys auxiliares limpo elas e executo os updates separadamente