Aynı Tab. İki veya daha fazla veriyi. tek DBChart da göster.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Aynı Tab. İki veya daha fazla veriyi. tek DBChart da göster.

Mesaj gönderen haydarxxx »

Slmlar
Bir tablede kişilerin DBChart a uyan sayısal verileri var.
(Aşağıda Fikir olarak yazıyorum)
Table deki alan adlarını bir checklistbox a aktarıp buradan birden fazla kayıtı seçili yaparak tek bir DBChart üzerinde yeni series oluşturarak bu seriesler üzerinde verileri gösterebilirmiyiz.Amacım kişilerin verilerini grafiksel olarak bir grafik üzerinde karşılaştırmak karşılaştırmak.Borsadaki grafik gibi yani birden fazla veriyi bir grafik üzerinde tutma

Aklımdan tek geçen yöntem tabledeki bir kaydı başka bir tableye aktarmak.Sonra ikinci bir kaydı başka bir tableye aktarma oluşan iki tabledeki verileri karşılaştırmak ama burada ancak iki kişiyi karşılaştırabilirim + table bolluğu olacak

Böyle bir şey yapmak için bir önerisi olan varmı.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

konuyu biraz daha açabilirseniz daha çabuk yardım alırsınız zannımca...

malum forumda bi tek şaban hocamda sihirli küre var. o da genelde buğulu gösteriyor...
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Örnek vereyim

Kod: Tümünü seç

Kayıtlar Tablesi
ADI               SAYI1    SAYI2    SAYI3
unicorn64           10      20        5 
şabanhocam          20      40       55  
haydarxxx            5      10        5
...........
...........
gibi tablede kaydımız olsun.SAY1,SAY2,SAY3 alanların grafiğini çizeceğiz.Bu table yi DBChart a bağladığımızda kim seçili ise onun sayısal değerlerinin grafiğini çiziyor hali ile.
Ben istiyorum ki bu kayıtlardan iki veya daha fazlasını seçerek DBChart da bu şeçtiğim kayıtların grafiğini ayrı ayrı çizsin.Ve bu grafikte örneğin unicorn64 ile haydarxxx in değerlerini rahatlıkla karşılaştırabileyim (görebileyim)
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

DBChart için Query kullanıp ad,soyad ve bunlara ait yanılmıyorsam sayı dediklerin notlar onlarıda sorgu ile çek....olay table ilede olur ama query daha esnek...DBchart ı bayadır kullanmıyorum ama muhtemelen sen ayarlarını yanlış yaptım...örneğin x,y ekranı için x de öğrenci adı olacak y de öğrenci notları yani doğru ayarları yapman lazım.. ama
DBChart gibi bileşenler fazla veriyi göstermek için değil ortalama alınmış veya raporlanmış bir kaç tane unsuru karşılaştırmak için kullanılır...örneğin 10 tane sınıf için bir yazılı sonucunun grafiksel başarı ortalaması için kullanabilirsin böylece sınıfları karşılaştırmış olursun....50 tane öğrenci için grafik çizdirmen görsel olarakta anlaşılır bir netice vermeyecektir.....
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

DBChart için Query kullanıp ad,soyad ve bunlara ait yanılmıyorsam sayı dediklerin notlar onlarıda sorgu ile çek
Denemiştim ama Query ile gelen verileriler dbchart a tek tek gelmiyorki.Sadece o kayda uyan tek veri geliyor.Yani birden fazla grafik çzimiyor.
...DBchart ı bayadır kullanmıyorum ama muhtemelen sen ayarlarını yanlış yaptım...örneğin x,y ekranı için x de öğrenci adı olacak y de öğrenci notları yani doğru ayarları yapman lazım.. ama
Doğru bağlama yapıyorum zanlımca çünkü tek bir grafiği alabiliyorum.DBchart da >>Series>>Datasource>> den Single Record yada dataset üzerinden verileri getiriyorum
DBChart gibi bileşenler fazla veriyi göstermek için değil ortalama alınmış veya raporlanmış bir kaç tane unsuru karşılaştırmak için kullanılır...örneğin 10 tane sınıf için bir yazılı sonucunun grafiksel başarı ortalaması için kullanabilirsin böylece sınıfları karşılaştırmış olursun....50 tane öğrenci için grafik çizdirmen görsel olarakta anlaşılır bir netice vermeyecektir.....
Dediğinde haklısın ama bir yöntemi varmıdır bilmiyorum yada bir bileşen var mı ki.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

http://rapidshare.com/files/89996604/grafik.xls

link veriyorum.xls dosyasındaki gibi grafik çizdirmek istiyorum.Bunun için bir yöntem.Yada komponent varmıdır acaba.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ben grafikler için dbchart normal tchart kullanıyorum
sen 3 tane seri ekliyeceksin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

Hocam 3 seri eklesemde aynı tableye bağlayacağım mağlum tek table dolayısı ile 3 seride bana aynı değerleri verecek(2 li yad 3 lü seri denemiştim).Mantık doğru değilmi
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
serilerin veri kaynağı olarak her birine ayrı bir sürun verebiliyorsunuz.
dbchart değil normal chart kullandım ben.
kolay gelsin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Tablo ile değilde query ile işi çözemezmisiniz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

firbird kullanıyorum table yerine Ibquery ve Ibdataset kullanıyorum query ne yazacağız ki :? :roll:
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

http://delphi.about.com/od/usedbvcl/l/aa082101b.htm den biraz yaralandım

Kod: Tümünü seç

DataModule1.IBQuery10.Close;
DataModule1.IBQuery10.SQL.Clear;
DataModule1.IBQuery10.SQL.Add('select * from TBL_MAC where IDKATEGORI='+#39+DBEdit1.Text+#39+'' );
DataModule1.IBQuery10.open;
şekli ile IDKATEGORİ ye uyan verileri Bar grafiğine aldım.Bu koşula uyanlar DBChart a geldi Series ı Horiz bar seçtim dataset bağlantısında query bağladım Görmem gerektiğim Label ı ekledim ve grafikteki bar ın göstermesi gereken alanı seçtim Y değerini boş bıraktım.ve istediğime biraz yaklaştım.

1.Sorum
sorgu ile çektiğim kayıtların sayısı çok fazla olur ise 10,20,50....1000 gibi grafiğin bir anlamı kalmayacak.Ben sorgu ile çektiğim kayıtları seçerek örneğin 3 tanesini sen sen sen grafiğe çık.diğerleri çıkmasın nasıl yaptırtabiliriz.

2.Sorum
Burada bar ın göstermesi gereken alanları kodla nasıl düzenleyebilirim(X yada Y değerine alan adını atama).Örneğin Benim DBChart bağlantımda bar ayarım query deki YUZDE denilen alana bağlı Ben bunu kod ile SURE adındaki alana baglamak istiyorum.Böylelikle query ile her alanı sorgulayarak karşılaştırma yapma şansım olsun.

(yani series deki alan isimlerine müdahale etme mi diyeyim bilmiyorum anlaşılır yazmaya çalışıyorum ama ben yazdıkcada şumu anlaşılıyor bumu anlaşılıyor diye sorgulayıp duruyorum bu arada. :roll: )
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

1.soru iç.in

Kod: Tümünü seç

select * from yerine select TOP 3
v.s. der isen seçtiğin kadar kayıt listelenmiş olur. Ayrıca

Kod: Tümünü seç

Order by
ile sıralamayı da yaptırarak hangi kayıtları istediğine ulaşabilirsin.
Ama sen aralardan seççem dersen o zaman ID v.s. tuttuğun bir alan var ise bunlara ulaşman ve soruguya eklemen lazım.

2. için

Kod: Tümünü seç

DBGrafik.Series[0].DataSource:=Frmrapquery;
DBGrafik.Series[0].XValue := FrmrapqueryAlanım;
DBGrafik.Series[0].yValue := Frmrapquerydegerim;
Şeklinde bir denermisin.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

conari teşekkür ederek ;
select * from yerine select TOP 3

Kod: Tümünü seç

DataModule1.IBQuery10.Close;
DataModule1.IBQuery10.SQL.Clear;
DataModule1.IBQuery10.SQL.Add('select  TOP 3 TBL_MAC where IDKATEGORI='+#39+DBEdit1.Text+#39+'' );
DataModule1.IBQuery10.open;
şeklinde denedim sql hatası alıyorum.


Ama sen aralardan seççem dersen o zaman ID v.s. tuttuğun bir alan var ise bunlara ulaşman ve soruguya eklemen lazım.
Buradaki sorgu nasıl olabilir kullanıcı kendisi seçecek.Yani örnek veririsek tabledeki yada querydeki kayıtları CheckListBox a aktarıp işaretlediğimiz kayıtları grafikte göstermek şeklinde aklımdan geçiyor.(ama nasıl :? )

DBGrafik.Series[0].DataSource:=Frmrapquery;
DBGrafik.Series[0].XValue := FrmrapqueryAlanım;
DBGrafik.Series[0].yValue := Frmrapquerydegerim;
değişiklik yaparak yazdım ama olmadı.

Kod: Tümünü seç

DBChart1.Series[0].DataSource:=FrmrapDataModule1.IBQuery10;
DBChart1.Series[0].XValue := FrmrapDataModule1.IBquery10YUZDE;
DBChart1.Series[0].yValue := FrmrapDataModule1.IBquery10TOPTUTMA;
şeklinde.Burada sorgum DataModule1.IBQuery10 üzerinden olduğu için ne yazacağım Frmrap dan sonrası.ben bu şekilde yazdım.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

'select  TOP 3 TBL_MAC where IDKATEGORI='+#39+DBEdit1.Text+#39+'' ); 
yerine

Kod: Tümünü seç

'select TOP 3 * from TBL_MAC where IDKATEGORI='+#39+DBEdit1.Text+#39+'' ); 
TOP 3 ( 3 kayıt getir) FB de farklı olabilir.

frmrap değişken querynin adı :wink:
Senin

Kod: Tümünü seç

DBChart1.Series[0].yValue :=DataModule1.IBquery10TOPTUTMA;
Şeklinde kullanman lazım.
Bunu denemiş değilim bilgin olsun.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla