DecisionCube komponentleri filtreleme ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
oguz_islam
Üye
Mesajlar: 4
Kayıt: 10 May 2005 05:48

DecisionCube komponentleri filtreleme ?

Mesaj gönderen oguz_islam »

merhaba arkadaslar;
benim DecisionCube komponentleri ile ilgili soyle bir problemim var ;

Bir tane yeni uygulamaya,

1 tane DecisionQuery (adı: DQ)
1 tane DecisionPivot (adı: DP)
1 tane DecisionCube (adı: DC)
1 tane DecisionSource(adı: DS)
1 tane DecisionGraph (adı: DG)
olarak ekleyin;

sonra Object Inspector Penceresinden,

DG->DataSource : DS
DP->DataSource : DS
DC->DataSet : DQ
DS->DecisionCube: DC
olarak verin..

diyelim bolumdeki ogrencilerin aylara yillara gore değişimlerini tuttugunuz bir veritabanında 3 tane tablo olsun bu tabloların içerisine de 2000 ve 2001 yillarina ati aylar icin veriler girin..
---------------------
| tb_fakulte |
---------------------
| fakulte_kodu(*)|
| fakulte_adi |
---------------------

----------------------
| tb_bolum |
----------------------
| fakulte_kodu(*) |
| bolum_kodu(*) |
| bolum_adi |

----------------------
| tb_bolum_ozet |
----------------------
| fakulte_kodu(*) |
| bolum_kodu(*) |
| yil(*) |
| ay(*) |
| ogr_sayisi |
----------------------

oldugundan Object Inspector Penceresinden,
DQ->SQL : SELECT tb_fakulte.FAKULTE_ADI,
tb_bolum.BOLUM_ADI,tb_bolum_ozet.YIL,
tb_bolum_ozet.AY,SUM(tb_bolum_ozet.OGR_SAYISI)
FROM tb_fakulte,tb_bolum,tb_bolum_ozet
WHERE (tb_bolum.FAKULTE_KODU = tb_fakulte.FAKULTE_KODU) AND
(tb_bolum.FAKULTE_KODU = tb_bolum_ozet.FAKULTE_KODU) AND
(tb_bolum.BOLUM_KODU = tb_bolum_ozet.BOLUM_KODU)
GROUP BY tb_fakulte.FAKULTE_ADI, tb_bolum.BOLUM_ADI,
tb_bolum_ozet.YIL,tb_bolum_ozet.AY

olarak girin ve DQ->Active :true verin.
Şimdi çalışma zamanında DP deki değişmelere gore,
DG deki grafik değişecek durumda.. şimdi programı calıştırın ve DP'de FAKULTE_ADI ve BOLUM_ADI 'nı secilebilir hale getirin sonra da Herhangi bir fakulte seçin, BOLUM_ADI'na gelip listeye bakınca sectiginiz fakulte koduna uygun olmayan bolumlerinde(daha dogrusu girdiginiz tüm bölümlerin) listelendigini goreceksiniz. Sadece secilen fakulte adına uygun bolumlarin secilmesini istiyorum.
işte bu problemi çözmek mümkün mü diye soracaktım :)
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Önce forumu kullanmayı öğrenmelisin.Aynı konuyu iki ayrı bölümde açamazsın.
oguz_islam
Üye
Mesajlar: 4
Kayıt: 10 May 2005 05:48

Boyle Cevap Olmaz

Mesaj gönderen oguz_islam »

İlk önce herkesten özür;

bu mesajı bir heyecanla actım birisi cevap yazdı diye, ama ne ile karsilastim, forumda baskalarini uyarma yetkisi olmayan( !(moderator||admin)) birisi forum kurallarından bahsediyor..

Bak kardesim Cevapı biliyorsan yaz yoksa boyle sırf cevap yazmak icin cevaplar atma. Bunu hicbisiyden anlamayan sadece isimlerini boyle duyurmaya calisan kisiler yapar, Boş teneke misali sadece kuru gürültü çıkarırlar.

Sağlıcakla..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Oncelikle aramıza hoş geldiniz.... :)
DecisionCube componentini hiç kullanmadim.... Fakat olaya veri tabanı tarafından bakarsak veritabanı tarafındaki hiç bir ilişki veya tanımlama Delphi tarafında ilave bir kod yazılmaksızın seçtiğiniz fakulteye ait bolumleri getirmez. Ancak bolum tablosundaki butun kayıtları getirir ki zaten probleminiz de bu....
Yapmanız gereken bolum seçimi için kullanılacak bir combo box var ise bu combo box'i run time da kod ile doldurmalısınız.

Kod: Tümünü seç

Select bolum_kodu, bolum_adi from tb_bolum where fakulte_kodu=2
Şeklindeki bir sql cümlesini runtime da çalıştırıp tabiki 2 yerine secilen fakultenin numarası gelecek sekilde ilgili bolumleri cekip bunları bir dongu icinde combobox in items ozelligini doldurmalısınız...

Aynı mesajı farklı iki foruma atmanızın cevap hızına hiç bir etkisi olmaz. Bilhakis bu mesaj kirliliği oluşturmakta ve de forum kurallarımıza aykırıdır. Sizden ricam forum kurallarını okumadıysanız bir an önce okuyun... İnşallah forum kurallarımıza uyduğunuz sürece siz forumumuzdan biz de sizden istifade ederiz.... Verdiğimiz seminerleri indirip izlemek ve de problemlerinizde once forum ici aramayı kullanmak size verebileceğim onemli 2 ipucudur.....

Uyarı meselesine gelince.... Yönetim olarak forum kuralları konusunda çok katı oldugumuzu bütün üyelerimiz bildiği için Ali Erdoğan arkadaşımız iyi niyetle sizi uyarmak istemiş. Fakat onun da gozunden kaçan konu yine forum kurallarımızda da var olan yeni uyelere yardımcı olma kuralı. Bu sadece cevap verme anlamıdna degil. Forum kurallarını ogrenmede de yardımcı olmak anlamına geliyor.... Bu nedenle yönetim olarak yeni üyelere ilk uyarılarımızın nazik bir dil ile ve yumuşak olmasına dikkat ederiz. Fakat bu yumuşak ikaz yeni üyenin forum kurallarına dikkat etmemede ısrarı oldugunda yerini sert ikaza ve fazla uzatmadan uyelik iptaline bırakır....

Bu arada diger mesajınızı da sildim.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
oguz_islam
Üye
Mesajlar: 4
Kayıt: 10 May 2005 05:48

:)

Mesaj gönderen oguz_islam »

Oncelikle aramıza hoş geldiniz....
Tesekkurler;
tablosundaki butun kayıtları getirir ki zaten probleminiz de bu....

anlasılan sorumu tam olarak okumadınız :( ben bu ilişkileri
DQ->SQL : SELECT tb_fakulte.FAKULTE_ADI,
tb_bolum.BOLUM_ADI,tb_bolum_ozet.YIL,
tb_bolum_ozet.AY,SUM(tb_bolum_ozet.OGR_SAYISI)
FROM tb_fakulte,tb_bolum,tb_bolum_ozet
WHERE (tb_bolum.FAKULTE_KODU = tb_fakulte.FAKULTE_KODU) AND
(tb_bolum.FAKULTE_KODU = tb_bolum_ozet.FAKULTE_KODU) AND
(tb_bolum.BOLUM_KODU = tb_bolum_ozet.BOLUM_KODU)
GROUP BY tb_fakulte.FAKULTE_ADI, tb_bolum.BOLUM_ADI,
tb_bolum_ozet.YIL,tb_bolum_ozet.AY

olarak girin ve DQ->Active :true verin.
diyerek zaten belirttim. Problem benim bunları belirtmeme ragmen calısma zamanında dynamic filtreleme yapmaması bu komponentin(veya ben yaptıramadım... ) zaten foruma da bu yuzden mesaj attım (cok saygı duydugum bir forumdan yonlendirildigim yer olan) bu foruma...

Neyse bu mevzuyu uzatmanın anlamı yok, zaten ozur de dilemistim onceki mesajıma baslarken..

İyi çalışmalar..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Sorunuzu tabiki okudum....

Fakat yazdıgınız SQL cümlesinde yaptığınız join in yapacağı tek şey ilgili kayıtları getirmektir. Bu join başka hiç bir componente bir etkide bulunamaz.

Yani bolumleri listeleyen comobox ya da hangi componenti kullanıyorsanız o componente bolum listesini ilgili fakultelerin bolumlerinden getir demez....

Yapmanız gereken daha onceki mesajımda da belirttiğim gibi
fahrettin yazdı:Yapmanız gereken bolum seçimi için kullanılacak bir combo box var ise bu combo box'i run time da kod ile doldurmalısınız.

Kod: Tümünü seç

Select bolum_kodu, bolum_adi from tb_bolum where fakulte_kodu=2
Şeklindeki bir sql cümlesini runtime da çalıştırıp tabiki 2 yerine secilen fakultenin numarası gelecek sekilde ilgili bolumleri cekip bunları bir dongu icinde combobox in items ozelligini doldurmalısınız...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Fahrettin Bey, anladığım kadarıyla arkadaş SQL ile bütün verileri bir seferde indiriyor. Query'de Filter property'sinin yaptığı işin Decision da gerçekleşmesi gerekirken gerçekleşmediğini anlatmaya çalışıyor. Anladığım kadarıyla DecisionCube, Query'dekine benzer içsel bir filtreye sahip (ben de hiç kullanmadım). Bu filtreyi nasıl çalıştıracağını öğrenmek istiyor.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

birbirimizi pek anlayamadık sanıyorum..... Eger dediginiz gibiyse tamamen yanlış anladık demektir....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
oguz_islam
Üye
Mesajlar: 4
Kayıt: 10 May 2005 05:48

Mesaj gönderen oguz_islam »

merhaba;
birbirimizi pek anlayamadık sanıyorum..... Eger dediginiz gibiyse tamamen yanlış anladık demektir....
durum aynen coderlord'un bahsettiigi gibi.. bu yorum ışıgında yardımcı olmaya calisirsanız sevinirim...

İyi çalışmalar..
Cevapla