Arşiv Anasayfa Raporlama Bileşenleri
Sayfalar: 12
dinamik rapor Gönderen: birnur Tarih: 04 February 2008 14:03:19
merhabalaar arkadaşlar
 master detail bir tabloya bağlı rapor hazırlamak istiyorum tek alan tanımlı yani hmuayene diye ve  12 tane periodik muayenin yapılması lazım.bende bunu 12 kadar bir dongüyle tanımladım ve gritte görüntüledim şimdi rapor hazırlama lazım ama tek aln oldugu icin gritte yapamıtorum.bir arkadaş dinamik rapor yapman lazım dedi bu dinamik rapor nedir nasıl yapılır yardımcı olursanız cok sevinirim. elinde bukonuda bilgi olan varsa paylasabilirmi  lütfen
Ynt: dinamik rapor Gönderen: Akrep Tarih: 04 February 2008 15:22:21
O arkadaş söylemedi mi dinamik raporun ne demek olduğunu? Ben de merak ettim. Basitçe statik=durağan, dinamik=hareketli, değişken. "Tek alan olduğu için gritte yapamıyorum.." şeklindeki ifadeyi de açıklarsanız daha iyi yardımcı oluruz. Tek alanı kabul etmiyor mu raporlama bileşenleri?
Ynt: dinamik rapor Gönderen: birnur Tarih: 04 February 2008 15:31:48
programda mantık şu bir hastayı  6 ay ara iledüzenli muayene ediyorsunuz.ve bunlarıda saklıyorsunuz.ben  bu muayeneleri formda grite gösteriyorum.raporda ise yan yana göstermem lazım. buda dinamık raporla oluyormuş tek bildigim bu size formun görüntülerini atabilirim isterseniz.ama bu forma rsim koyamıyorum galiba dimi.

Ynt: dinamik rapor Gönderen: Akrep Tarih: 04 February 2008 15:38:27
Yani rapor sayfasında grid içerisinde göstermek istemiyorsunuz. İstediğiniz bilgi istediğiniz yerde olmalı, rapor sayfasının görselliğini istediğiniz gibi ayarlamak istiyorsunuz değil mi?
Ynt: dinamik rapor Gönderen: ineffable_space Tarih: 04 February 2008 17:54:20
Benim anladığım kadarıyla şöyle bir rapor istiyor;

Hasta Adı : Ahmet TÜRKOĞLU    Muayeneler : 18.12.2007 filan işlem, 03.01.2008 falan işlem, 18.01.2008 ilaç yenileme...

Gridde ise bu bilgiler şu şekilde

Tarih             Yapılan İşlem
---------------------------------
18.12.2007    filan işlem
03.01.2008    falan işlem
18.01.2008    ilaç yenileme...

Bu mudur?
Ynt: dinamik rapor Gönderen: Akrep Tarih: 04 February 2008 18:42:23
Eğer ineffable'ın dediği gibiyse şuraya gözat;

http://www.delphidunyasi.net/index.php/topic,2918.0.html
Ynt: dinamik rapor Gönderen: birnur Tarih: 05 February 2008 10:02:55
evet tam anlamıyla bunu demek istiyorum çok teşekürler
Ynt: dinamik rapor Gönderen: birnur Tarih: 05 February 2008 10:42:11
ama bnu  hiç denemedim. quickrepteki qrexpr içerisinie kod yazarak yapsam nasıl olur exprler içerisine nasıl kod yazacagım bilen varsa  yardımcı olabilirmi

Ynt: dinamik rapor Gönderen: ineffable_space Tarih: 05 February 2008 10:47:08
QrExpr bu işlem için uygun değil, dinamik rapor yapman gerek diyen arkadaşının önerisi doğru. QRLabel nesnesinin caption değerine detail bandın OnBeforePrint yordamında kodla atama yaparak çözmek gerek. Bir de bandın Columns özelliğini kullanarak yapılabilir ama ne kadar stabil olacağı muamma..
Ynt: dinamik rapor Gönderen: birnur Tarih: 06 February 2008 09:12:12
öncelikle ilginize çok teşekür ediyorum.evet rave rapor veya  QrExpr bu iş için olmuyor denedim dediğiniz gibi labelin caption özelligime yaptım faka bu seferde son yazdıgımı hepsine yazıyor yanı 12 peryodik muayenenın 3 yapıldı diyelim raporda ücünü yazıp diger 9 unun baoş gözükmesi lazım fakat son yapılanı hepsine yazıyor yani ücüncü muayene ne yazıyorsa diğer dokuzunada ynı şeyi yazıyor bunu nasıl engellemeliyim.


form2.TAR1.Caption:=DataModule1.Q_RAPPRIODP_TAR.Text;
form2.DOG1.Caption:=DataModule1.Q_RAPPRIODP_DOKG.Text;
form2.ad1.Caption:=DataModule1.Q_RAPPRIODP_ADSOYAD.Text;
form2.dip1.Caption:=DataModule1.Q_RAPPRIODP_DIPNO.Text;
DataModule1.Q_RAPPRIOD.Next;

form2.TAR2.Caption:=DataModule1.Q_RAPPRIODP_TAR.Text;
form2.DOKG2.Caption:=DataModule1.Q_RAPPRIODP_DOKG.Text;
form2.AD2.Caption:=DataModule1.Q_RAPPRIODP_ADSOYAD.Text;
form2.dip2.Caption:=DataModule1.Q_RAPPRIODP_DIPNO.Text;
DataModule1.Q_RAPPRIOD.Next;
 
12 ye kadar devamm ediyor ve bitiyor fakat olmadı. hatası nerde olabilir
Ynt: dinamik rapor Gönderen: ineffable_space Tarih: 06 February 2008 09:53:44
Bu kodları hangi evente yazıyorsun peki?
Ynt: dinamik rapor Gönderen: Akrep Tarih: 06 February 2008 10:19:51
evet rave rapor veya  QrExpr bu iş için olmuyor

QuickReports'u bilmem ama RaveReport'da label tarzı nesnelerin program içerisinden atanan değerleri alabildiğini gösteren linki verdim yukarıda, Fatih hocam bir örnek vermiş. Büyük ihtimalle kodlamanızda hata var.

Ayrıca boş olması gerekn 9 kayıttan bahsetmişsiniz, galiba tablodaki bazı kayıtların değerleri formdaki label bileşenlerine aktarılıyor. DataModule1.Q_RAPPRIOD.Next; komutuyla sıradaki kayda geçiyorsunuz her seferinde. Fakat 3. kayıttan sonra kayıt yoksa bu komutherhangi bir kaydı gösteremeyeceğine göre, sanki sıradaki kayıt doluymuş gibi kodlarınız çalışmaya devam edecek. Ve o andan sonra mesela DataModule1.Q_RAPPRIODP_TAR.Text özelliğine yeni bir atasma yapılmadığı için boş olması gereken 9 kayda aynı şeyleri yazıp duracak.

Bunu engellemek için her atama kod bloğunu;

if not DataModule1.Q_RAPPRIOD.EOF do begin //kayıtların sonuna gelinmemişse başla... (EOF=end of file)
form2.TAR1.Caption:=DataModule1.Q_RAPPRIODP_TAR.Text;
form2.DOG1.Caption:=DataModule1.Q_RAPPRIODP_DOKG.Text;
form2.ad1.Caption:=DataModule1.Q_RAPPRIODP_ADSOYAD.Text;
form2.dip1.Caption:=DataModule1.Q_RAPPRIODP_DIPNO.Text;
DataModule1.Q_RAPPRIOD.Next;
end;

şeklinde yapabilirsiniz.
Ynt: dinamik rapor Gönderen: birnur Tarih: 06 February 2008 10:36:55
başka bir raporun after printına yazıyorum
Ynt: dinamik rapor Gönderen: ineffable_space Tarih: 06 February 2008 11:35:59
Şimdi yapılacak işlemleri sıralayalım,

1. Raporumuzda bir detay bandımız var ve bu bant hasta kayıtlarının (muayenelerin değil) datasetine bağlı yani hasta kayıtlarını (isimlerini) listeliyor.

2. Detay bandın OnBeforePrint yordamında aktif hastanın primary key ya da muayene tablosuyla bağlantılı alan hangisiyse onu kullanarak bir SQL cümlesi yazıp bu hastaya ait muayeneleri sorguluyoruz.

3. Sorguyu çalıştırdığımız Query nesnesini @akrep'in örneklediği gibi tablo sonuna kadar döngü kurarak muayene tarihlerini ilgili QRLabel nesnesinin Caption değerine atıyoruz.

Veritabanı yapısını bilmediğimiz için kabaca bu şekilde tarif edilebilir.
Ynt: dinamik rapor Gönderen: birnur Tarih: 07 February 2008 09:51:54
çok teşekür ediyorum akrep bey ve ineffable_space size cok teşekür ediyorum.yaptım bu işlemi yaptım.yardımlarınızla.

ama ben yeni olunca  sorular ve sorunlar  bitmiyor. şimdide program uyarı mesajları koymak istiyorum.mesela kaydetmediyse kaydetmediniz kaydetmek istiyormusunuz.bazı alanları zorunlu yapıp bu alanları boş geçince uyarsın istiyorum.birde tc numarasını 11 karekterden az girince uyarmasını istiyorum bunları nasıl yapabilirim çok soru  sordum ama daha önce bunları hiç yapmadım hiç bir fikrim yok:(((((