firebird ile listelenmiş verinin kaynak tablosunu değiştirme yardım!
#1
Arkadaşlar herkese merhaba...
benim de bir sorum olacaktı.
şimdi elimde firebird ile derlenmiş bir veri tabanı var bu veritabanından fastrepot ile rapor alıyorum kullandığım program aracılığyla...

şimdi rapor ekranında şu şekilde sütunlar var. borç,adet,tahsi,iptal,kalan..

nu sütunlar da başka bir sütun olan hesap turu sütunundan süzdürülerek geliyor..

mesela 2012 yılında borç,adet,tahsil,iptal,kalan...ile 2011 yılında aynı adamlarda borç,adet,tahsil,iptal,kalan verileri farklı...

benim yapmak istediğim 2012 yılındaki iptal sütunun değiştirerek buraya 2011 deki kalan verilerini eklemek istiyorum...ama yapamadım
fastreport kodları şu şekilde... sizden ricam kodlarda da görülen iptal bölümüne hangi kodu eklemeliyim
yardımlarınız için şimdiden çok teşekkürler...


Kod:
var
grupbandsonuaktif:integer;
AdetToplami,KodAdetToplami,TumAdetToplami:extended;
filtre1,filtre2 : string;                                            
  
procedure BitBtn1OnClick(Sender: TfrxComponent);
begin
Report.SaveToFile(<DDosyaYolu>);                          


QCari.Close;
QCari.SQL.Clear;
QCari.SQL.Text:='SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI,S, SUM(BORC) BORC, SUM(NAKIT+CEK+SENET+KART) TAHSIL, SUM(IPTAL) IPTAL, SUM(BORC-NAKIT-CEK-SENET-KART-IPTAL) KALAN, SUM(NAKIT) NAKIT, SUM(CEK) CEK, SUM(SENET) SENET, SUM(KART) KART, SUM(ELDEN) ELDEN, SUM(BORC-NAKIT-CEK-SENET-ELDEN-KART-IPTAL) ACIK FROM'
       +' ('
// Borç                                
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, SUM(-( TL+(DL*KUR_DL)+(YR*KUR_YR) )) BORC, 0 IPTAL, 0 NAKIT, 0 CEK, 0 SENET, 0 KART, 0 ELDEN, S FROM VERILER WHERE (ID=5 OR ID=7) AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
// iptal                                  
       +' UNION ALL'          
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) IPTAL, 0 NAKIT, 0 CEK, 0 SENET, 0 KART, 0 ELDEN, S FROM VERILER WHERE D = ''İ'' AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
// nakit                                                  
       +' UNION ALL'          
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, 0 IPTAL, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) NAKIT, 0 CEK, 0 SENET, 0 KART, 0 ELDEN, S FROM VERILER WHERE ( ID IN (1,2,3,8) and  D IN (''Ö'',''C'') ) AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
       +' UNION ALL'
       +' SELECT SIRKET,CIK_KODU,CIK_HESAP_TURU,CIK_CARI_ISMI,CIK_REFERANSI, 0 BORC, 0 IPTAL, SUM(-( TL+(DL*C_KUR_DL)+(YR*C_KUR_YR) )) NAKIT, 0 CEK, 0 SENET, 0 KART, 0 ELDEN, (case when CIK_CARI_ISMI=CIK_REFERANSI then ''0'' else ''1'' end) FROM VERILER WHERE D=''C'' AND ID IN (2,3) AND '+<DFilterTextCikis>+' GROUP BY SIRKET,CIK_HESAP_TURU,CIK_KODU,S,CIK_REFERANSI,CIK_CARI_ISMI'   // KART NAKİTE EKLENDİ BEKLEMEDE OLSA DAHİ                                                                                                  
// çek
       +' UNION ALL'          
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, 0 IPTAL, 0 NAKIT, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) CEK, 0 SENET, 0 KART, 0 ELDEN, S FROM VERILER WHERE ID=2 AND D=''B'' AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
// senet                                                              
       +' UNION ALL'          
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, 0 IPTAL, 0 NAKIT, 0 CEK, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) SENET, 0 KART, 0 ELDEN, S FROM VERILER WHERE ID=3 AND D=''B'' AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
// kredi kartı
       +' UNION ALL'  
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, 0 IPTAL, 0 NAKIT, 0 CEK, 0 SENET, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) KART ,0 ELDEN, S FROM VERILER WHERE ID=8 AND D=''B'' AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'
  
// elden
       +' UNION ALL'  
       +' SELECT SIRKET,KODU,HESAP_TURU,CARI_ISMI,REFERANSI, 0 BORC, 0 IPTAL, 0 NAKIT, 0 CEK, 0 SENET, 0 KART, SUM( TL+(DL*KUR_DL)+(YR*KUR_YR) ) ELDEN ,S FROM VERILER WHERE ID=4 AND D=''B'' AND '+<DFilterTextGiris>+' GROUP BY SIRKET,HESAP_TURU,KODU,S,REFERANSI,CARI_ISMI'

       +' )'

       +' WHERE '+<DFilterTextGiris>; // where yi silme çünki iç veya dış istendiğinde, cirolanan evrakların s si işi karıştırıyor.

       if RSiralamaHesapturu.checked=True then // sıralama türü hesap türüne göre
               QCari.SQL.Add(' GROUP BY SIRKET,KODU,HESAP_TURU,REFERANSI,S,CARI_ISMI')
       else  //referansa göre
               QCari.SQL.Add(' GROUP BY SIRKET,KODU,REFERANSI,HESAP_TURU,S,CARI_ISMI');

       if (CTur.Text <> '<Boş>') then
       begin                  
      
       Filtre1:='';
       Filtre2:='';  
        
       if (CTur.Text <> '<Boş>') then
               if CTur.Text='Borç' then        Filtre1:= 'SUM(BORC)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Tahsil' then      Filtre1:= 'SUM(NAKIT+CEK+SENET+KART)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='İptal' then       Filtre1:= 'SUM(IPTAL)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Kalan' then       Filtre1:= 'SUM(BORC-NAKIT-CEK-SENET-KART-IPTAL)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Nakit' then       Filtre1:= 'SUM(NAKIT)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Çek' then         Filtre1:= 'SUM(CEK)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Senet' then       Filtre1:= 'SUM(SENET)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Elden' then       Filtre1:= 'SUM(ELDEN)'+Ckriter.Text+CTanim.Text;
               if CTur.Text='Açık' then        Filtre1:= 'SUM(BORC-NAKIT-CEK-SENET-KART-ELDEN)'+Ckriter.Text+CTanim.Text;

       if (CTur2.Text <> '<Boş>') then  
               if CTur2.Text='Borç' then        Filtre2:= ' AND SUM(BORC)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Tahsil' then      Filtre2:= ' AND SUM(NAKIT+CEK+SENET+KART)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='İptal' then       Filtre2:= ' AND SUM(IPTAL)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Kalan' then       Filtre2:= ' AND SUM(BORC-NAKIT-CEK-SENET-KART-IPTAL)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Nakit' then       Filtre2:= ' AND SUM(NAKIT)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Çek' then         Filtre2:= ' AND SUM(CEK)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Senet' then       Filtre2:= ' AND SUM(SENET)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Elden' then       Filtre2:= ' AND SUM(ELDEN)'+Ckriter2.Text+CTanim2.Text;
               if CTur2.Text='Açık' then        Filtre2:= ' AND SUM(BORC-NAKIT-CEK-SENET-KART-ELDEN)'+Ckriter2.Text+CTanim2.Text;

       QCari.SQL.Add(' HAVING '+Filtre1+Filtre2);

       end;

          
     if (CTur.Text <> '<Boş>') then // filtre seçilirse referans çizgileri çıkmasın
               GroupBasReferans.Visible:=False;

     if CHKodToplaminiAl.checked=True then // kod toplamlarının alınması
     begin
          GroupSonKod.Visible:=True;
          if RAyriSayfa.checked=True then   // kod toplamı ayri sayfada alınsın
             GroupBasKod.StartNewPage:=True
          else
             GroupBasKod.StartNewPage:=False;
     end else  GroupSonKod.Visible:=False;


     if CHReferansToplami.checked=True then // referans toplamı alınsın
        GroupSonReferans.Visible:=True
     else GroupSonReferans.Visible:=False;

end;

procedure KolonSonu1OnBeforePrint(Sender: TfrxComponent);
begin
  // kolon sonu alt toplamların altında bir çizgi halinde çıkıyor, çizgi çıkmasın
  if grupbandsonuaktif=0 then
     KolonSonu1.Visible:=True
  else
     KolonSonu1.Visible:=False;
end;

procedure Band2OnAfterPrint(Sender: TfrxComponent);
begin
  grupbandsonuaktif:=0;
end;


procedure GroupFooter2OnAfterPrint(Sender: TfrxComponent);
begin
  grupbandsonuaktif:=1;
end;

procedure GroupFooter1OnAfterPrint(Sender: TfrxComponent);
begin
  grupbandsonuaktif:=1;
end;

procedure CheckBox1OnClick(Sender: TfrxComponent);
begin
    if CHKodToplaminiAl.checked=True then
  begin
       RAyriSayfa.Enabled:=True;
       RAyniSayfa.Enabled:=True;
  end else
  begin
       RAyriSayfa.Enabled:=False;
       RAyniSayfa.Enabled:=False;
    end;
end;

procedure GroupSonReferansOnAfterPrint(Sender: TfrxComponent);
begin
  AdetToplami:=0;
end;

procedure GroupSonKodOnAfterPrint(Sender: TfrxComponent);
begin
  KodAdetToplami:=0;
end;

procedure Memo78OnAfterPrint(Sender: TfrxComponent);
begin
  AdetToplami:=AdetToplami+IIF(<QAdet."SABIT_TUTAR"><>0,<QCari."BORC"> / <QAdet."SABIT_TUTAR">,0);
  KodAdetToplami:=KodAdetToplami+IIF(<QAdet."SABIT_TUTAR"><>0,<QCari."BORC"> / <QAdet."SABIT_TUTAR">,0);
  TumAdetToplami:=TumAdetToplami+IIF(<QAdet."SABIT_TUTAR"><>0,<QCari."BORC"> / <QAdet."SABIT_TUTAR">,0);
end;


procedure CTurOnChange(Sender: TfrxComponent);
begin
       if CTur.Text = '<Boş>' then
       begin
               CKriter.Enabled:=False;
               CTanim.Text:='0';                              
               CTanim.Enabled:=False;
       end else
       begin
               CKriter.Enabled:=True;
               CTanim.Enabled:=True;  
       end;                
end;


procedure CTur2OnChange(Sender: TfrxComponent);
procedure Bevel2OnClick(Sender: TfrxComponent);
begin

end;

begin
       if CTur2.Text = '<Boş>' then
       begin
               CKriter2.Enabled:=False;
               CTanim2.Text:='0';                              
               CTanim2.Enabled:=False;
       end else
       begin
               CKriter2.Enabled:=True;
               CTanim2.Enabled:=True;  
       end;  
end;  



  

begin end.



  Alıntı
Bu mesajı beğenenler:
#2
Sorgunuz pek anlaşılmıyor. Sorunuzu sadeleştirmek adına, tablo yapısıyla birlikte ve örnekle neye ulaşmaya çalıştığınızı izah ederseniz daha iyi yardımcı olabilirim.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Firebird Store procedure le Bul ve Değiştir AhmetNuri 2 3.233 26-06-2022, 00:20
Son Mesaj: Zeki Gürsoy
  Firebird : Kurulum ve Connection Zeki Gürsoy 9 15.842 21-04-2021, 15:13
Son Mesaj: sarsak
access-sql-14 Firebird : Yürüyen Bakiye Uygulaması Zeki Gürsoy 16 14.568 12-08-2015, 14:12
Son Mesaj: akuyumcu63
  Firebird Aynı Kayıtları bul ve sil AhmetNuri 0 3.125 12-10-2012, 20:52
Son Mesaj: AhmetNuri
  Firebird otmatik loglama (Trigger Level Loging) AhmetNuri 6 8.473 26-03-2012, 01:31
Son Mesaj: Zeki Gürsoy
  Firebird Veritabanında olan procedure lar nasıl gizlenir softdestek 8 6.567 19-03-2012, 21:40
Son Mesaj: softdestek
  Firebird : DateDiff (Excel ETARİHLİ fonk. birebir kopyası) Zeki Gürsoy 0 4.185 21-02-2012, 02:58
Son Mesaj: Zeki Gürsoy
  Trigger dan Firebird veri tabanı kullanıcısı ekleme silme ve gücelleme AhmetNuri 7 8.749 12-01-2012, 22:25
Son Mesaj: Zeki Gürsoy

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi