dbgrid ve qreport
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgrid ve qreport
dbgrid içinden mouse la seçilen hücrenin bulunduğu satırı qreport da qlabel üzerinde gösterebilirmiyiz, nasıl yapmam gerek? mouse la yapılan seçimi algılama ve label a yazma konusunda yardım edermisiniz?
Öncelikle merhabalar;
Dostum mouse ile yapılan seçimi algılama olayı diye bir olay yok aslında olay, seçtiğin kayıt table ve datasource bağlı olan dbgird'den gerçekleştiği için sen mouse ile hangi kaydı seçersen table'da kayıt otomarik olarak oraya gider. Mouse'u sadece kaydı seçmek için kullanabilirsin.
Gelelim diğer sorduğun soruya seçilen kaydı qreport'taki label'a istediğin gibi gönderebilirsin.
Göndermek istediğin alan ne ise onun tipini yazarsın... Bu şekilde istediğin gibi gönderebilrsin yada ikinci bir yol olarak QRDbText kullanarak direk formdaki tablona bağlayabilirsin. Bu da diğer bir alternatif.
Kolay gelsin...
Dostum mouse ile yapılan seçimi algılama olayı diye bir olay yok aslında olay, seçtiğin kayıt table ve datasource bağlı olan dbgird'den gerçekleştiği için sen mouse ile hangi kaydı seçersen table'da kayıt otomarik olarak oraya gider. Mouse'u sadece kaydı seçmek için kullanabilirsin.
Gelelim diğer sorduğun soruya seçilen kaydı qreport'taki label'a istediğin gibi gönderebilirsin.
Kod: Tümünü seç
with raporfrm.QuickRep1 do
Begin
Qrlabel1.Caption := tabloavealanadı.AsString;
Qrlabel2.Caption := Query1adsoyad.AsString; //gibi örnek olarak
End;
Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Bildiğim kadarıyla Quick Report bileşeni bağlı DataSet i baştan sona kadar tarayıp rapor hazırlıyor. DataSet olmaksızın kullanarak da rapor hazırlamanız mümkün. Onun için OnDataNeed olay/event ına bakmanız gerekir. Yani kayıtta ayırm yapacak bir alan var ise ; o procedure deki
Burada genel bir değişken olarak KayitNo yu başta tanımlayıp. DataSet in DataSource unun OnDataChange inda ataması yapılabilir.
Kod: Tümünü seç
MoreData := Table1KayitNo.AsInteger = KayitNo;
Kod: Tümünü seç
KayitNo := Table1KayitNo.AsInteger;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Hiç uğraşmana gerek yok aslında
Aslında raporu tasarla ve bitir. O anda üstünde bulunduğun kayıt için liste alacaksan tek yapman gereken TQuickRep bileşenin dataset özelliğini boş bırakmak olacaktır. Orada sana sadece seçili olan tek kayıt için liste verecektir (Raporu görebilmek için detail bant kullanmak gerekir) . Bu arada TQRExpression nesnesini kullanarak tablo alanlarının değerlerini kullnamak istiyorsan, o tabloyu TQuickRep bilşeninin onBeforePrint olayına Sender.AllDataSets.Add(Table1); demen gerekebilir. Aksi halde TQRExpression nesnesi içinde işleme tabi tutulan bu tablonun değerleri için hata alabilirsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .