Stokkartrpr.Close;
Stokkartrpr.SelectSQL.Clear;
Stokkartrpr.SelectSQL.Add('select stokkodu,stokadi,sum(giris),sum(cikis) from STOKHRKT where stokkodu is not null ');
Stokkartrpr.SelectSQL.Add('and tarih<='+#39+datetostr(T1.date)+#39);
Stokkartrpr.SelectSQL.Add('and CINSI=''FATURA'' or CINSI=''ÜRETİM'' or CINSI=''İRSALİYE'' or CINSI=''ÜRETİM HAR.''or CINSI=''SARF ÇIKIŞI''');
if e1.Text<>'' then Stokkartrpr.SelectSQL.Add('and stokkodu>='+Quotedstr(''+E1.Text+''));
if e5.Text<>'' then Stokkartrpr.SelectSQL.Add('and stokkodu<='+Quotedstr(''+E5.Text+''));
if e2.Text<>'' then Stokkartrpr.SelectSQL.Add('and stokadi>='+Quotedstr(''+E2.Text+''));
if e6.Text<>'' then Stokkartrpr.SelectSQL.Add('and stokadi<='+Quotedstr(''+E6.Text+''));
Stokkartrpr.SelectSQL.Add('group by stokkodu,stokadi');
Stokkartrpr.SelectSQL.Add('order by stokkodu');
Stokkartrpr.Open;
yukarıda sonuç döndürüyor ama örneğin E1.text ile E5.Text de yazan stokkodu aralığını getir dediğimde laf dinlemiyor,yine tüm stokları gösteriyor yani stokkodu veya stokadı alanına göre aralık veremedim bir türlü..
arkadaşım veritabanı olarak ne kullanıyorsun ve sadece stokkodu ve stok alanına göre mi srogulama yapacaksın ?Eğer veritabanın türkçe karakterler kullanmaya müsade ediyorsa doğru ama türkçe karakter kullanmna müsade etmiyorsa onlara dikkat et derim geri kalanı bence doğru eğer yanlışı gören varsa söylerse bizde öğreniriz iyi olur kolay gelsin
Firebird ve IBX kullanıyorum.Amacım verilen tarihten önceki stok hareketlerinde girenler ile çıkanları toplayıp onuda calculated olarak birbirinden çıkarıp verilen tarihteki bakiyeyi bulmak geriye dönük depo durumu yani.verdiğim aralıklar uyuyor uymasada zaten yine tüm kayıtları getiriyor yani kıstas verdiğimde boş getirse anlarım kıstasta versem hepsini getiriyor..
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
OR demek birinden biri sağlanıyorsa demek. Eğer aynı koşul içersinde AND ler var ise aralarında OR olanlar parantez içerisine alınmalı... Doğan hoca ufak bir el sürçmesi ile cevaplamış gerçi ama ...
Stokkartrpr.Close;
Stokkartrpr.SelectSQL.Clear;
Stokkartrpr.SelectSQL.Add('select stokkodu,stokadi,sum(giris),sum(cikis) from STOKHRKT where stokkodu is not null ');
Stokkartrpr.SelectSQL.Add(' and tarih<='+#39+datetostr(T1.date)+#39);
Stokkartrpr.SelectSQL.Add(' and ( CINSI=''FATURA'' or CINSI=''ÜRETİM'' or CINSI=''İRSALİYE'' or CINSI=''ÜRETİM HAR.'' or CINSI=''SARF ÇIKIŞI''' ) );
if e1.Text<>'' then Stokkartrpr.SelectSQL.Add(' and stokkodu>='+Quotedstr(''+E1.Text+''));
if e5.Text<>'' then Stokkartrpr.SelectSQL.Add(' and stokkodu<='+Quotedstr(''+E5.Text+''));
if e2.Text<>'' then Stokkartrpr.SelectSQL.Add(' and stokadi>='+Quotedstr(''+E2.Text+''));
if e6.Text<>'' then Stokkartrpr.SelectSQL.Add(' and stokadi<='+Quotedstr(''+E6.Text+''));
Stokkartrpr.SelectSQL.Add('group by stokkodu,stokadi');
Stokkartrpr.SelectSQL.Add('order by stokkodu');
Stokkartrpr.Open;