ürün sipariş sayısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

Aşağıdaki kod ile 1.tabladaki "Urun_Kodu" 2. tablada var ise (birden fazla olabilir) aynı "Urun_Kodu" eşitse toplayıp karşısına yazıyor.
fakat herhangi bir filtre yapamıyorum

Kod: Tümünü seç

procedure TGUNLUK_STOK_RAPORU.Button1Click(Sender: TObject);
var
        B : TBookmark;
        SiparisToplam : double ;
begin
        URUN_KARTLARI_DB.first;    // master tablomuzun ilk satırındayız ve detail tabloyu filtreledik
        while not URUN_KARTLARI_DB.eof do
begin
        SiparisToplam := 0;
        try
          B :=URUN_KARTLARI_DB.getbookmark;                //master tablomuza nokta koyduk ki detail da gezerken
          SIPARIS_DETAYLARI_DB.first;                          //sıramızı bozmasın
          while not SIPARIS_DETAYLARI_DB.eof do               //detail tablomuzun  first une gittik ve artık ofirmanın
begin
            SiparisToplam := SiparisToplam + SIPARIS_DETAYLARI_DB.FieldByName('Urun_Adeti').value ;  //baştan aşşa
            SIPARIS_DETAYLARI_DB.next;                         //dolaşarak total şipariş toplamını bulduk
          end;
        finally
          URUN_KARTLARI_DB.GotoBookmark(B);                  //en son da master tablomuzdaki nokta koydugumuz yere geri döndük
          URUN_KARTLARI_DB.edit;                            //master tablomuza edit açtık ve gerekli fielda sonucu postladı
          URUN_KARTLARI_DB.FieldByName('Siparis_Sayisi').value:= '0' ;
          URUN_KARTLARI_DB.FieldByName('Siparis_Sayisi').value:= SiparisToplam ;
          URUN_KARTLARI_DB.FieldByName('Toplam').AsCurrency:= URUN_KARTLARI_DB.FieldByName('Fiili_Stok_Sayisi').AsCurrency - URUN_KARTLARI_DB.FieldByName('Siparis_Sayisi').AsCurrency;
          URUN_KARTLARI_DB.post;
          URUN_KARTLARI_DB.FreeBookmark(B);
         end;
     URUN_KARTLARI_DB.next;   //yeni cari geçtik.
  end;
end;

SIPARIS_DETAYLARI_DB özellikleri
Resim


Bu Kod ise iki tarih aralığını filtreliyor yukarıdaki kod ile bu kodu nasıl birleştirebilirim?

Kod: Tümünü seç

procedure TGUNLUK_STOK_RAPORU.Button2Click(Sender: TObject);
begin
   Memo1.Clear;
   SIPARIS_DETAYLARI_DB.Close;
   SIPARIS_DETAYLARI_DB.SQL.Clear;
   SIPARIS_DETAYLARI_DB.SQL.Add('select * from siparisler_kayit where Siparis_Tarih>=:tar1 and Siparis_Tarih<=:tar2');
   SIPARIS_DETAYLARI_DB.ParamByName('tar1').Value:=StrToDate(DateToStr(DateTimePicker1.Date));
   SIPARIS_DETAYLARI_DB.ParamByName('tar2').Value:=StrToDate(DateToStr(DateTimePicker2.Date));

 // SIPARIS_DETAYLARI_DB.SQL.Add(' and Siparis_Durumu='+QuotedStr('Iptal Edildi')+'');


 // if RzButtonEdit9.Text<>'' then begin
 // SIPARIS_DETAYLARI_DB.SQL.Add(' and Sevkiyat_Teslim_Eden='+QuotedStr(RzButtonEdit9.Text)+'');
 // End;

  Memo1.Lines.add(SIPARIS_DETAYLARI_DB.SQL.Text);
  SIPARIS_DETAYLARI_DB.Open;
   close
end;
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: ürün sipariş sayısı

Mesaj gönderen mussimsek »

viewtopic.php?f=2&t=6
* Mesajınıza uygun ve konuyu özetleyen kısa bir başlık yazın. Acil, Çok Acil, Önemli gibi ifadeler veya konuyla alakasız bir başlık kullanmayın.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam gerçekten acil :) çıkamıyorum bir türlü

siparişler günlük ve (kayıtlarda "Siparis_Tarihi" var ) çok sayıda ilk kod toplamak için kullanıyorum fakat siparişlerin hepsini alıyor sadece belli tarihte ki siparişleri saysın.

teşekkürler
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

Kod: Tümünü seç

select u.urun_kodu, sum(sk.miktar) siparis miktari
from urunler u, siparisler_kayit sk
where u.urun_kodu=sk.urun_kodu and Siparis_Tarih>=:tar1 and Siparis_Tarih<=:tar2
sorguyu kendinize göre uyarlarsınız...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam cevabın için çok teşekkür ederim fakar bir bir türlü yapamadım beceremedim aba koda ekleyebirmisiniz?

birde buradaki asıl amaç belli tarih arasında hangi ürünlerden kaç tane sipariş verilmiş onu yazacak kodda böyle bir işlem yok sanırım ?

teşekkürler
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

yapamadığınız beceremediğiniz kısmı neresi onu da söyleseydiniz iyi olurdu...
verdiğim sorgu cümlesini kendi tablonuza göre düzenleyip çalıştırsaydınız zaten verilen tarih aralığında hangi üründen toplam kaç tane sipariş verildiğini görecektiniz...

bence öncelikle biraz temel sql sorgulamaları üzerine çalışıp daha sonra proje geliştirmelisiniz...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam ilgin iz için teşekkür ederim evet sql bilgim iyi değil fakat bunu acil çözmem lazım:)

Kod: Tümünü seç

procedure TGUNLUK_STOK_RAPORU.Button2Click(Sender: TObject);
begin
   Memo1.Clear;
   SIPARIS_DETAYLARI_DB.Close;
   SIPARIS_DETAYLARI_DB.SQL.Clear;
   SIPARIS_DETAYLARI_DB.SQL.Add('select u.Urun_Kodu, sum(sk.miktar) siparis miktari from urun_kartlari u, siparisler_kayit sk where u.Urun_Kodu=sk.Urun_Kodu and Siparis_Tarih>=:tar1 and Siparis_Tarih<=:tar2');

   SIPARIS_DETAYLARI_DB.ParamByName('Tar1').Value:=StrToDate(DateToStr(DateTimePicker1.Date));
   SIPARIS_DETAYLARI_DB.ParamByName('Tar2').Value:=StrToDate(DateToStr(DateTimePicker2.Date));

 // if RzButtonEdit9.Text<>'' then begin
 // SIPARIS_DETAYLARI_DB.SQL.Add(' and Sevkiyat_Teslim_Eden='+QuotedStr(RzButtonEdit9.Text)+'');
 // End;

  Memo1.Lines.add(SIPARIS_DETAYLARI_DB.SQL.Text);
  SIPARIS_DETAYLARI_DB.Open;
end;

hataekranı
Resim
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

sum dan sonraki siparis miktari kısmını siparis_miktari olarak değiştirip tekrar denermisin...
bu arada muhtemelen Tar1 ve Tar2 parametrelerinde de büyük küçük harf dolayısıyla hata alabilirsin, ya sorgudakilerin baş harfini büyük yap yada parametre değerini aktardığın kısımda baş harfi küçük yap..
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam dediklerinizi harfiyen yaptım buseferde aşağıdaki hatayı alıyom

Resim
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

sorguyu kendinize göre düzenlemeliydiniz....

siparisler_kayit tablonuzda miktar diye bir alan yokmus... sk.miktar kısmını sk.Urun_Adeti olarak değiştirin.......
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam aynışekilde Urun_Adeti hatası verdi yine :(
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

tablo yapınızı bilmiyorum ki ne diyeyim, sizin yazdığınız kodu baz alarak yazdım ben onu...
dizayn moddayken query nesnesine sağ tıklayıp fileds editor u açın ve listede bulunanları silip tekrar deneyin...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

hocam size mümkünse müsayitseniz size teamviewer ıd versem bakarmısınız?
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: ürün sipariş sayısı

Mesaj gönderen unicorn64 »

ok bakalım bakalım ;)
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: ürün sipariş sayısı

Mesaj gönderen erdogan_ozkaya »

841 857 971
5237

teşekkürler
Cevapla