ibdataset filtreleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

ibdataset filtreleme

Mesaj gönderen bobasturk »

Merhaba,

filtreleme konusunda yazılanları okudum ve datasetin filtreleme özelliği yerine sql kullanmayı tavsiye edenlerin çoğunlukta olduğunu gördüm fakat genelde sorular raporlama üzerineydi.

benim sorunumda ise veri girişinde filtreleme lazım. terminallerin ayrı ayrı kodları var ve her terminal programı açtığında kendi bilgilerini görsün istiyorum. forumda yaptığım araştırma sonucunda şu kod ortaya çıktı ve şimdilik tek kayıt olan tablomda istediğimi elde ettim. fakat ileride sıkıntı verirmi veya izlediğim yolun doğruluğu hakkında sizlere danışmak istedim.

ilgili datasetin SQL satırı şöyle;

Kod: Tümünü seç

SELECT*FROM OLAYRAPOR where TERMINALID=:TERMID ORDER BY OLAYYILI, RAPORNO, EKRAPORNO
veri giriş sayfasının açılacağı button komutları şöyle;

Kod: Tümünü seç

if not assigned(frmraporgiris) then
  begin
    frmraporgiris:=Tfrmraporgiris.Create(self);
    frmraporgiris.show;
    frmraporgiris.WindowState:=wsmaximized;
    [b]rapordm.RaporGirisIBDSet.Active:=false;
    rapordm.RaporGirisIBDSet.ParamByName('TERMID').AsInteger:=olayprodm.GirisKontIBQry.fieldbyname('TERMINALID').AsInteger;
    rapordm.RaporGirisIBDSet.active:=true;[/b]
    rapordm.OlaySahisIBDSet.Active:=true;
    rapordm.OlayuzmanIBDSet.Active:=true;
    rapordm.OlaydelilIBDSet.Active:=true;
    tempdm.delilteslimibdset.Active:=true;
    tempdm.teslimtesellumibdset.Active:=true;
    frmraporgiris.Caption:='Olay Yeri İnceleme Raporu... OLAYPRO... TERMİNAL ID='+
          inttostr(olayprodm.GirisKontIBQry.fieldbyname('TERMINALID').ASinteger)+
          '... TERMİNAL ADI='+
          olayprodm.GirisKontIBQry.fieldbyname('TERMINALADI').AsString+
          '... KULLANICI='+
          olayprodm.GirisKontIBQry.fieldbyname('ADISOYADI').AsString;
  end
  else
    frmraporgiris.BringToFront;
where şartı verdim ve button komutunda bu where şartına parametreyi belirttim ve sonuç istenilen gibi. veri giriş sayfası olacağı için query kullanmıyorum, datasource değişiklikleri falan olacağı düşüncesi veya query ile veri giriş şimdiye kadar yapmadığımdan biraz kafam karıştı doğrusu ve çözümü yukarıdaki gibi düşündüm.

düşünülen yolun sıhhati açısından görüş bildirirseniz sevinirim

kolay gelsin saygı ile
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bence hedefi vurmuşsun.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

a.s.

Teşekkür ederim ustam. kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

@aslangeri'nin dediği gibi olayı çözmüşsün, ama tablo sayım artacak demişsin.

bunun için program girişinde terminal_Id yi global bir değişkende tutmanda fayda var. diye düşünüyorum.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

evet değişkende tutmuyorum ama girişkontrolquery ile yaptığım kullanıcı adı ve şifre olayında terminalid olayını aldırıyorum ve işlemleri buna göre yapıyorum.

tablo sayım fazla olacak lakin bunların pek çoğu fk ile birbirine ilişkili tablo ana tabloları buna göre filtreledim mi bağlı oldukları autoinc id alanları sayesinde diğer detail tablolara uygulamam gerekmiyor. 5 veya 7 kategoride ana bölüm var bunların master tablolarına filtre uygularsam gerisi id ler ile detail tablo olduğu için sanırım karışıklık olmayacak.

teşekkür ve saygı ile kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla