Şimdi Ara

Query ile Bakiye toplama işlemi ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
2.238
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Sıkıntım kısaca şu query ile veritabanına bağlanıyorum (Borc - Alacak) Bakiye, SQL komutu ile bakiye değişkenini oluşturuyorum ama istenilen; Bakiye bir müşterinin bir sonraki bakiyesi ile toplanarak gidecek, Delphi'nin SQL komutları view'i desteklemiyorum bu yüzden o yöntemle yapamıyorum. Kullandığım veritabanı DBASE bu konuda yardımcı olursanız çok sevinirim.



  • Aynı soru cavabına benimde ihtiyacım olmuştu ve 16 hazıranda 2006 arkadaşlardan yardım istemiştim,
    Biz sorunu böle çözdük, daha sonra teferuatlı bir şekilde anlatmaya çalışırım(şuanda biraz yoğunum)

    procedure TForm5.Query1CalcFields(DataSet: TDataSet);
    var
    Odeme, Alacak : Double;
    begin
    Odeme:=0;
    with Query2 do begin
    DisableControls;
    Close;
    Open;
    repeat
    Odeme:=Odeme+Query2Odeme.Value;
    Next;
    until EOF;
    First;
    EnableControls;
    end;
    Query1Odeme.Value:=Odeme;

    Alacak:=0;
    with Query2 do begin
    DisableControls;
    Close;
    Open;
    repeat
    Alacak:=Alacak+Query2Alacak.Value;
    Next;
    until EOF;
    First;
    EnableControls;
    end;
    Query1Alacak.Value:=Alacak;

    Query1Bakiye.Value:=Alacak-Odeme;

    if Query1Bakiye.Value < 0 then
    begin
    label6.Caption:='(B)';
    dbedit3.Font.Color:=clRed;
    end
    else
    begin
    label6.Caption:='(A)';
    dbedit3.Font.Color:=clBlue;
    end;
    end;




  • Bu çözümden anladığım sanki toplam borç - toplam alacak gibi yapılmış. Ben DBgrid kullanacağım ve her satırda o ana kadar olanların toplamı eksi alacağı olacak. Ama yinede bu çözümü deneyeecğim belki bu yöntem üzerinden gidilerek çözüm bulabilirim.
  • Boreas,

    Bankiyenin dbgridde hesaplanmasi benimde derdim di cozulurse cok iyi olurdu,
  • ben şu şekilde çözdüm. Pratik değil ama debelenmekten iyi .
    Normal string grid koyup program açılışında ya da query'de after open olayında her satırı hesaplayıp yazan bir kod yazdım. Sorun çözüldü. Senin yaptığının daha pratik yolu SQL'de ( SUM(BORC) - SUM(ALACAK) ) BAKIYE şeklinde oluyor bunuda dip not olarak söyleyeyim.
  • Sorunu tamamen çözdüm Delphi4'de problem yaşadığım bir konuyu delphi6 en basit mantıkla çözdü adım adım anlatıyorum.
    Adım 1: real formatında genele 3 değişken tanımlanıyor borc,alacak,bakiye.
    Adım 2: Program açılırken bu değişkenler sıfırlanıyor.
    Adım 3: Query ya da Table'da calculated field oluşturuluyor.
    Adım 4: OnCalculate olayına ;

    if Query1BORC.Value = Null then BORC := 0 else BORC := Query1BORC.Value;
    if Query1ALACAK.Value = Null then ALACAK := 0 else ALACAK := Query1ALACAK.Value;

    Query1bakiye.Value := bakiye + BORC - ALACAK;
    bakiye := Query1bakiye.Value ;

    Satırı uyarlanıyor.
    Ve sorun çözülüyor :)

    Adım 5: Query ya da Table'ın Before Open olayına ;

    bakiye := 0 ;
    Borc := 0;
    Alacak := 0;



    < Bu mesaj bu kişi tarafından değiştirildi boreas -- 5 Temmuz 2006; 22:36:29 >
  • Yapay Zeka’dan İlgili Konular
    Offline pos işlemi nedir?
    5 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.