İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

quickreportda master-detail

A

Anonymous

Misafir
şmidi 2 tablom var

muskarti:(müşteri bilgileri tutuluyor)
Musno(pk)
ad
soyad
unvan
adres vs vs

siparis:(musteri siparisleri tutuluyor,muskarti ile musno ile bağlı)
sirano(pk)
musno(secondary index)
siparistarihi
adet

quickreportta yapmak istediğim raporun öncesinde bir forma bir dblookupcombobox kodyum,datasource ve dataset özelliklerini boş bıraktım,listsource u muskartı,keyfield ve listfield ın ikiside unvan dolayısıyla tum unvanları sıralıyor.aynı formda 2 tane Datetimepicker ile
iki tarih arası sorgulama yaptım.şimdi benim amacım şöyle bir rapor yapmak

Rapor Title'ı
muskarti.unvan(detail band)

tarih Adet (bunlar header)(group header)
veriler burada(subdetail)

bunun için 2 sorgu yapmam gerekiyor hem unvanı sorguluyorum hemde iki tarih arası siparişleri sorguluyorum.yukarıdaki şekli master detail kullanarak muskartını master tarihleri sorgulayıp veri aldığım siparisquery i de detail yaptım ama bir türlü sipariler müşteriyle bağlı olarak gelmiyor.
subdetailde tüm siparisler gözüküyor.yazdıklarımı teker teker uygulayabilecek arkadaş varsa demek istediğimi anlıyacaktır.yardım lütfen
 
A

Anonymous

Misafir
selam. iki tablon arasında master-datay ilişki kurup kurmadığını yazmamışsın. eğer kurmadıysan master - detay ilişki kur. benimde anlattığın mantıkla çalışan raporlarım var. fakat böyle bir sorun yaşamadım. sana kolay gelsin.
 
A

Anonymous

Misafir
iki tablom arasında master detail ilişkisi olduğu gibi,iki query arasında da master detail ilişkisi var.sorun raporda detail band için query kullanmak isteyince ortaya çıkıyor ama delphinin böyle bir eksikliği olması bence saçma olur bence.siz iki queryi quickrepotta naısl bağlıyorsunuz?
 
A

Anonymous

Misafir
Mail adresine Master/detail ile ilgili bir örnek gönderdim..umarım işine yarar..
 
A

Anonymous

Misafir
gönderdiğiniz örnek çok işime yaradı teşekkür ederim.arama kriterlerim arasında tarihde var yani detay tablodaki siptarın tairh1 ve tarih2 arasında olması gerekiyor.yani:
(siparisdty.siptar>:tarih1) and (siparisdty.siptar<:tarih2)

bunu detay queryde whereden sonra yazdım fakat musquery(anaquey)de tarih1 yok diye bir hata veriyor?
 
A

Anonymous

Misafir
Tarih1 ve Tarih2, kullanılan query'nin Datasource'u ile ilişkilendirilen dataset içinde yer almalıdır. yani :

MustQ -> Müşterilerin yeraldığı dosya kayıtlarını içersin,
MustSource ise MustQ datasource'u olsun.
SipQ -> Müşterilere ait sipariş detaylarını

SipQ.DataSource:=MustDataSource;

SipQ.SQL içinde

(siparisdty.siptar>:tarih1) and (siparisdty.siptar<:tarih2)

şeklinde verdiğiniz Koşulda yeralan :TARIH1 ve :TARIH2 değerleri MustQ ile temsil edilen dosyalarda olmak zorunda. Yan :)) ikinoktaüstüste ile Bağlantı kurulan dosya değişkenleri kullanılır. Siz Burada iki tarih arası kriterlerinizde SipQ.SQL içinde verdiğiniz bu koşulu aşağıdaki şekilde değiştirmelisiniz. Bunu iki Query arasında sizin hiç müdahale etmeden yaptığınız gibi kayıtları otomatik olarak execute etmesini bekleyemezsiniz. Eğer verilen iki tarih arasında göre veya dışsal kriterlere göre SQL yönlendirilecekse, bunu en kolay ve en kısa olarak sizin örneğinizde Tarih1 ve Tarih2 değerlerinin alındığı DateTimePicker comp.larının Event Aksiyonları vasıtası ile ve her seferinde SQL içini kaynak kodlar vasıtası ile düzenleyerek yapmalısınız. (Örneğin OnChange)
SipQ.SQL içini bağladığınız bir event aksiyonu içinde aşağıdaki şekilde uygulayabilirseniz istediğiniz sonucu alabilirsiniz :

procedure TSiplistForm.Tarih1Change(Sender: TObject);
begin
if SipQ.Active=True Then SipQ.Close;
SipQ.SQL.Clear;
SipQ.SQL.Add('Selecet * From Siparis');
SipQ.SQL.Add('Where (Siparis.Tarih>="+DateToStr(Tarih1.Date)'+'")');
SipQ.SQL.Add(' and (Siparis.Tarih<="+DateToStr(Tarih2.Date)'+'"');
if SipQ.Active=False Then SipQ.Open;
End;

Yukarıdaki Begin End arasını ilk ve son tarih DateTimePicker Compenentlerinin her ikisininde OnChange event aksiyonlarında yeralmasını sağla. Tarih değişince Query otomatik olarak tarihe bağlı olarak değişecektir.

Kolay gelsin. Saygılarımla.

QuickPink
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst