Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Tabloları toplama  (Okunma sayısı 1503 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Tabloları toplama
« : 08 Mart 2010 16:41:23 »
arkadaşlar;

2 tablom var 1 tabloda firmalar 2 tabloda kesilen faturalar var
istediğim adoquery oncalc olayına bir kod yazmalıyıkim 1 tablo 2 tabloyu fitreleyerek o firmaya kesilen faturaların toplamını çıkarmalı 1 tabloda ToplamBorc diye bir sutun oluşturdum oraya toplamalı bilgisi olan arkadaşların cevaplarını bekliyorum

şöyle bir kod var ama çalışmıyor

procedure TForm3.ADOQuery1CalcFields(DataSet: TDataSet);
var
toplamBorc : Real;
begin
try
ADOQuery1.Close;
ADOQuery1.sql.Text:=' select SUM(carikart) AS TOPLAM FROM faturalar where firmareferans='''+ADOQuery2Cari_Kart_Ref.Value+'''';
ADOQuery1.Open;
TOPLAMBORC:= ADOQuery1.fielbyname('TOPLAM').value;
ADOQuery1.close;

end;

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #1 : 08 Mart 2010 18:21:50 »
1. tablo master 2. tablo detail yap , form create olurken her 2 tabloyuda sql ile cagır.

1. tablonun first une git, bookmark koy , 2. tablo otomatikmen filtrelenecekdir ,
2. tabloyu first den eof kadar gez ve ilgili fielgları topla , en son bookmarkı bozmadan 1.tabloda ki gerekli yere total degeri edit et.

1. tablo TblFirma , 2. tablo TblFirmaFatura olsun.
2. tabloda faturatutarı die bi field ın var sayalım, 1. tablodada faturatoplam.
Kod: [Seç]
var
  B : TBookmark;
  FaturaToplam : double ;
begin
 
  TblFirma.first;                 // master tablomuzun ilk satırındayız ve detail tabloyu filtreledik
  while not TblFirma.eof do   
  begin
    FaturaToplam := 0;
    try
      B :=TblFirma.getbookmark;  //master tablomuza nokta koyduk ki detail da gezerken
      TblFirmaFatura.first                //sıramızı bozmasın
      while not TblFirmaFatura.eof do  //detail tablomuzun  first une gittik ve artık ofirmanın
      begin                                         //bütün faturalarını filtreledik
        faturatoplam := faturatoplam + TblFirmaFaturafaturatutarı.value ;//baştan aşşa
        TblFirmaFatura.next;   //dolaşarak total fatura toplamını bulduk
      end;
  finally //en son da master tablomuzdaki nokta koydugumuz yere geri döndük 
    TblFirma.gotobookmark(B);
    mdtblfirma.edit;            //master tablomuza edit açtık ve gerekli fielda sonucu postladı
    mdtblFirmaFaturaToplam := faturatoplam ;
    mdtblfirma.post;
    TblFirma.freebookmark(B);
  end;
  TblFirma.next;  //yeni firmaya geçtik.
end;
   

kusura bakma iş çıkışı acil oldu biras, burda esinlenebilirsin.
« Son Düzenleme: 08 Mart 2010 18:28:59 by druella »

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #2 : 08 Mart 2010 18:36:25 »
hocam cevabın için teşekkür ederim çözecek kadar bilgim yoktur :) kodu kopyaladım hiç hata vermiyor fakat dbgrid pasif yapıyor hiç bir kayıt çıkmıyor

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #3 : 08 Mart 2010 20:18:42 »
     erdogan kardeşim , code copy paste yaptıkdan tablo isimlerinin degişikliklerini yapmış var sayıyorum.
    1. si sen bu fatura görüntüleme işlemini bi butona basarakmı yoksa form acıldıkdan sonramı görmek istiyorsun..
   2.gridde göremedim demişsin,
   2.a gridin gerekli database baglantılarını sağlandın mı, tablodaki fieldları code calışmadan gridde görebiliyormusun,
   2.b  code calışıtı demişsin , code calıştıkdan sonra hesap field ımı boş görünüyor yoksa bütün grid mi boş görünüyor.

Çevrimdışı recepseyis

  • Üye
  • ***
  • İleti: 47
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #4 : 08 Mart 2010 22:26:51 »
Walla bende denedim ama yapamadım

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #5 : 09 Mart 2010 08:42:30 »
arkadaşlar denediz elinize sağlık , ama denedim yapamadım demek yeterli olmuyor , nerde cevap alamadınız , code yazdınız "trace" ettinizmi sonuç dogru geliyormu...hangi controllerde takılıyorsunuz istediğinizi alamıyorsunuz ?

Çevrimdışı ibrahim_7822

  • Üye
  • ***
  • İleti: 29
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #6 : 09 Mart 2010 09:29:55 »
KOLAY GELSİN İYİ ÇALIŞMALAR EKDEKİ DOSYAMDAKİ TABLE1 CARİ HAREKETLERİM VAR AMA TOPLAMA İŞLEMLERİNİ VEREMİYORUM TOPLAMA IKARMA KONUSUNDA YARIMCI OLURMUSUNUZ

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #7 : 09 Mart 2010 09:34:39 »
ek de demişsin ama eki göremedim ben..:(

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #8 : 09 Mart 2010 09:58:49 »
pardon ya hemen ekledim
arkadaşlar iki tablo var eki açınca görebilirsiniz 1. tabloda firmalar ve firma ref. no var 2. tabloda firma ref. no ve tutar var
1. ve 2. tablodaki ref. numaraları karışık olarak aynı yani bir firmaya ait 5 veya 1 ftutar olabilir 1 tablo 2 tabloyu filtreleyerek tutarları toplayıp  1 tabloda firmanın karşısına yazacak
ilginiz için teşekkür ederim.

http://aktagkaucuk.net/ornek.rar
« Son Düzenleme: 09 Mart 2010 10:03:00 by erdogan_ozkaya »

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #9 : 09 Mart 2010 10:38:55 »
Erdoğan arkadaşım öncelikle kolay gelsin;
sorguları formun show unda degil creatinden cekmen lazım ki form acılmadan öncede datasetler dolsun, işleme hazır olsunlar ,

senin master tablon
      carikart bunu adoquery ile , name ine AdoQueryCariKart de
senin detail tablon
      faturalar bununda adotable ile , database den cagır.   name ine AdoTableFaturalar de
     
      bu iki tabloyu master-detail şekilde yapılandır. 
      aşşadaki codu önce bi butona yaz dene , sonra bi procedure e yaz istediğin yerde kullan.
     
Kod: [Seç]
      var
        B : TBookmark; 
        FaturaToplam : double ;
      begin   
        AdoQueryCariKart.first;    // master tablomuzun ilk satırındayız ve detail tabloyu filtreledik         
        while not AdoQueryCariKart.eof do   
        begin   
        FaturaToplam := 0; 
        try   
          B :=AdoQueryCariKart.getbookmark;                //master tablomuza nokta koyduk ki detail da gezerken     
          AdoTableFaturalar.first                          //sıramızı bozmasın 
          while not AdoTableFaturalar.eof do               //detail tablomuzun  first une gittik ve artık ofirmanın     
          begin                                            //bütün faturalarını filtreledik     
            FaturaToplam := FaturaToplam + AdoTableFaturalar.FieldByName('Fatura_Toplam').value ;  //baştan aşşa     
            AdoTableFaturalar.next;                         //dolaşarak total fatura toplamını bulduk     
          end;                                 
        finally                                             
          AdoQueryCariKart.gotobookmark(B);                  //en son da master tablomuzdaki nokta koydugumuz yere geri döndük
          AdoQueryCariKart.edit;                            //master tablomuza edit açtık ve gerekli fielda sonucu postladı       
          AdoQueryCariKartTOPLAMM.value := FaturaToplam ;   
          AdoQueryCariKart.post;   
          AdoQueryCariKart.freebookmark(B); 
        end;
        AdoQueryCariKart.next;   //yeni firmaya geçtik.
      end;
     
      senin tablolarına göre yukarıdaki codu düzenledim, bu code bende calışıyoru şuan , sana bi not adoquery ile database e baglanma
      da bilgi eksilikğin var, bunu önce araştırmanı tavsiye ediyorum,
      TADOConnection objesi olmadan hiç bi database e ado larla sorugu cekemezsin.
      programı sana yollamıyorum nie dersen , bu işi araştırarak ögrendiğinde cok yol katetmiş olduğunu anlıyacaksın.
      kusura bakma biras aceleye geldi , işteyim malesef. umarım işine yarar.
      kolay gelsin.  olmadı yolluyayım
« Son Düzenleme: 09 Mart 2010 10:56:37 by druella »

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #10 : 09 Mart 2010 11:28:04 »
CEVBIN İÇİN TEŞEKKÜR EDERİM :) TABİKİ ARAŞTIRMAM BENİM İÇİNDE İYİ OLACAK AMA EMİN OL 1 HAFTADIR TAKILDIM KALDIM ÇÖZEMEDİM :)
VERDİĞİN KOD SANIRIM İŞE YARAMADI DENİYORUM HALEN AMA BİR SONUCA ULAŞAMADIM HENÜZ YİNEDE ÇOK TEŞEKKÜR EDERİM

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #11 : 09 Mart 2010 11:32:51 »
eki aç  orda TADOconnection ın ayarını db nerdeyse ona göre ayarla ve calıştır. kolay gelsin.

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #12 : 09 Mart 2010 11:53:14 »
çok teşekkür ederim hocam ya bir kaç yede daha konuyu açmıştım orda cevapsız kalmaması için yayınlayabilirmiyim cevabı ?

Çevrimdışı druella

  • Üye
  • ***
  • İleti: 44
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #13 : 09 Mart 2010 11:59:45 »
nasıl istersen herkeze faydamız dokunsun , ama bu sana yolladığım yapıyı , anladıgın an cok şeyi kolaylıkla yapabileceksin. ne kadar kolaymış demi :)) kolay gelsin..

Çevrimdışı erdogan_ozkaya

  • Üye
  • ***
  • İleti: 26
  • Rep: +0/-0
Ynt: Tabloları toplama
« Yanıtla #14 : 09 Mart 2010 13:43:11 »
ya gerçekten çok teşekkür ederim daha önce aradığım ve cevap bulamadığım bir çok soruya cevap oldu gerçekten çok teşekkür ederimstediğim gibi çalıştı ve bir çok fikirde verdi saol