Olá Amigos Espero que alguém possa me ajudar. Estou usando o Delphi 7 e BD Interbase 6.0.1.1 Tenho um banco de dados com uma tabela (pinheiros) com sete campos [Id (Integer), dataprevista (Date), dataefetiva (Date), descricao (varchar), credito (numeric 15,2), debito (numeric 15,2) e apresentado (varchar). Tenho um DBgrid que, através de uma Query (DM.qr_pinheiros) exibe os campos dataefetiva (Data), descricao (Histórico), credito (Crédito) e debito (Débito). Acrescentei à query 2 campos calculados nomeados como Saldo (DM.qr_PinheirosSaldo) e Vinculado (DM.qr_PinheirosVinculado). Fiz alguns lançamentos fictícios e o DBgrid, em execução, apresenta- se da seguinte forma: Data Histórico Crédito Débito Saldo Vinculado (ainda sem código) 01/02/2008 Saldo inicial 2.000,00 0,00 2.000,00 03/02/2008 Saque 0,00 250,00 05/02/2008 Depósito 1.000,00 0,00 1.000,00 07/02/2008 Livros 0,00 25,00
Eu quero que o DBgrid se apresente da seguinte forma: Data Histórico Crédito Débito Saldo 01/02/2008 Saldo inicial 2.000,00 0,00 2.000,00 03/02/2008 Saque 0,00 250,00 2.000,00 05/02/2008 Depósito 1.000,00 0,00 3.000,00 07/02/2008 Livros 0,00 25,00 3.000,00 Explicação: 1 - O campo "apresentado" pode ser "SIM" ou "NÃO". Se "SIM" o DBgrid mostra o registro em preto (funcionando) e a coluna "Saldo" é afetada. Se "NÃO" o DBgrid mostra o registro em azul (funcionando) e a coluna "Saldo" não deve ser afetada, mantendo o valor anterior. No exemplo acima os registros de 03/02 e de 07/02 têm a opção "NÃO" no campo "apresentado". 2 - No evento OnCalcFields a Procedure completa atual é a seguinte: procedure TDM.qr_PinheirosCalcFields(DataSet: TDataSet); var SldPi, VincPi : currency; begin SldPi:=0; if DM.qr_PinheirosAPRESENTADO.Value = 'SIM' then begin Sldpi:=SldPi + DM.qr_PinheirosCREDITO.Value - DM.qr_PinheirosDEBITO.Value; DM.qr_PinheirosSaldo.Value:= SldPi; end; end; end. Como devo fazer para obter o resultado que estou buscando. Desde já agradeço qualquer ajuda.