sorumu kısaca şöyle anlatıyım:
bir müşteriye 3 ayrı iş yaptık ve bu 3 iştende kalan borçları var.bu kalan borçlarını toplattırıp müşterinin toplam borcunu buldum.bu toplam borçtan bi miktarını ödedikten sonra toplam kalan borcunuda hesaplattım.
bu işlemleri datasetin afterinsert,beforeinsert,datachange vs.. hangi eventta denediysemde olmadı yada hata verdi ve en sonunda kaydet butonunun onclick olayına yazdığım zaman kodları istediğim işlemi yaptı.kodlar aşağıda:
Kod: Tümünü seç
procedure Tisform.kaydetbtnClick(Sender: TObject);
begin
dm.ISDATA.Post;
dm.ISDATA.Edit;
dm.sorgu2.DataSource:=dm.MUSDS;
dm.sorgu2.Close;
dm.sorgu2.SQL.Clear;
dm.sorgu2.SQL.Text:='Select sum(TOPLAM_ODENEN_PARA) from YAPILAN_IS where IS_NO=:MUSTERI_PK';
dm.sorgu2.Open;
dm.sorgu.DataSource:=dm.MUSDS;
dm.sorgu.Close;
dm.sorgu.SQL.Clear;
dm.sorgu.SQL.Text:='Select sum(KALAN_PARA) from YAPILAN_IS where IS_NO=:MUSTERI_PK';
dm.sorgu.Open;
If dm.sorgu2.Fields[0].asfloat<>0 then
dm.ISDATA.FieldByName('TOPLAM_KALAN_PARA').AsFloat:=dm.sorgu.Fields[0].asfloat-dm.sorgu2.Fields[0].asfloat;
else
If dm.sorgu2.Fields[0].asfloat=0 then
dm.ISDATA.FieldByName('TOPLAM_KALAN_PARA').AsFloat:=dm.sorgu.Fields[0].asfloat;
dm.ISDATA.Post;
end;
şimdi ilk sorum şu:bu hesapları kaydet butonun içinde yazmazsam nerde yazacam?(ilk önce tabloya post etmem gerekiyor ama:(yoksa toplam_kalan_para alanına direk 0 atıyor )
ikinci sorum ise hesaplamaları düzgün yaptığı için kodlar kaydet butonunun içinde dursun ama borçluları listeletirken nasıl bi kod yazmalıyımki aynı kişiyi iki kez göstermesin ve en son borcu ne kadarsa onu göstersin?
benim şuanki borçluları listeletmede kullandığım kod aşağıda:
Kod: Tümünü seç
dm.borcsorgu.DataSource:=dm.MUSDS;
dm.borcsorgu.Close;
dm.borcsorgu.SQL.Clear;
dm.borcsorgu.SQL.Text:='select TOPLAM_KALAN_PARA,ISYERI_ADI, YETKILI_ADI, YETKILI_SOYADI,TEL1,TEL2,GSM,PARA_BIRIMI from MUSTERI,YAPILAN_IS where TOPLAM_KALAN_PARA<>0 and IS_NO=MUSTERI_PK';
dm.borcsorgu.Open;