Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 3/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fast Report Master Detail
#1
Mrb;

    Master Detail bir fastreport raporum var. Raporda Master Data da Müşteri İşlemleri , Detail Data ise işleme ait açıklama yazdırılacak. Uygulamayı hazırladım çalışıyor fakat şöyle bir sorun var. Master Detail bağlantısı ID -> ID olarak yaptım Veriler aynı kayıt ve aynı tablo üzerinden geliyor. İstediğim Açıklama bilgisi olan kayıtların alt bölümde açıklamalarının görünmesi. Veriler aynı tablodaki aynı kayıtlar olduğu için sorgu döndüğünde açıklama alanı boş olsa bile kayıt döndürdüğü için Açıklama ekranda yazmaya devam ediyor. Ben sorunun bundan kaynaklandığını düşünüyorum. Aşağıdaki resimde daha net anlaşılacağını düşünüyorum. 




Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Sorunu Detail olarak veya FastReport farklı yöntemlerle çözebilecek yol var ise ve cevaplarsanız çok sevinirim.
Cevapla
#2
Detail band'ı bir kayıt altında birden fazla satır kayıt gelecekse kullanmalısınız, bu durumda master band'a koyup koşullu olarak gize/göster yapabilirsiniz. Ama illa bu şekilde yapmak isterseniz de aynı sorguya detay band için (2 dataset kullandığınızı düşünerek yazıyorum) "where aciklama is not null" diye bir koşul eklemek işinizi görecektir.
Cevapla
#3
master ve detail olarak 2 sorgu yazıp, master ve detail band koyup, fastreport ta script yazarak sorunu halledebilirsiniz. 
freereport ta detail bandın script kısmına aşağıdaki kodu yazarak açıklama varsa göster yoksa gizle deyince olay çözülüyor.

if [QACIKLAMA."ACIKLAMA"]<>'' then begin
DetailData1.Visible := 1
end else begin
DetailData1.Visible := 0
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#4
Detay tablosuna where aciklama <> '', yaptığımda Ana tablodaki sorguyu etkiledi ana tablodaki sadece açıklama olan kayıtları getiriyor açıklama olmayanlar gelmiyor. Oda ilginç oldu ana kayıtla alakası olmayan sorgu neden ana kaydı etkiledi. Sadece detay kayitlarinin etkilenmesi lazım.

Illa detay tabloda olması gerekmiyor. Bu işi sadece master bantta yapabilsem daha rahat olur fakat master bantta gizleme ve açma işini sağlıklı yapamadım
Cevapla
#5
(12-10-2016, Saat: 10:55)CaglarCoskun Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDetay tablosuna where aciklama <> '', yaptığımda Ana tablodaki sorguyu etkiledi ana tablodaki sadece açıklama olan kayıtları getiriyor açıklama olmayanlar gelmiyor.  Oda ilginç oldu ana kayıtla alakası olmayan sorgu neden ana kaydı etkiledi. Sadece detay kayitlarinin etkilenmesi lazım.

Illa detay tabloda olması gerekmiyor. Bu işi sadece master bantta yapabilsem daha rahat olur fakat master bantta gizleme ve açma işini sağlıklı yapamadım

@esistem in dediği şekilde master band'da gizleme işlemini yapabilmeniz lazım. 

Ayrıca bant'ların ikisine de aynı dataset'e bağlamış olmadığınıza emin misiniz?
Cevapla
#6
Aynı tabloya bağlı değil. Faturada çalışıyor. Bunda çalışmıyor. Ana tabloda gizleme daha rahat olur fakat master bandın açıklama yok iken veya varken yüksekliğini ayarlayamadim
Cevapla
#7
(12-10-2016, Saat: 11:16)CaglarCoskun Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAynı tabloya bağlı değil. Faturada çalışıyor.  Bunda çalışmıyor.  Ana tabloda gizleme daha rahat olur fakat master bandın açıklama yok iken veya varken yüksekliğini ayarlayamadim

Ben şu şekilde yaptım hocam;
QCARI_ISLEM SQL' i = ('SELECT KOD, TARIH, TUTAR FOM CARI_ISLEM');

QCARI_DETAY SQL' i = ('SELECT ACIKLAMA FOM CARI_ISLEM WHERE KOD=:KOD');
Tabi bu arada QCARI_DETAY Query si master ile QCARI_ISLEM data source una bağlı

master ve detail band koyup yukarıdaki kodu detailband ın script ine yazdım
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#8
(12-10-2016, Saat: 09:40)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olmaster ve detail olarak 2 sorgu yazıp, master ve detail band koyup, fastreport ta script yazarak sorunu halledebilirsiniz. 
freereport ta detail bandın script kısmına aşağıdaki kodu yazarak açıklama varsa göster yoksa gizle deyince olay çözülüyor.

if [QACIKLAMA."ACIKLAMA"]<>'' then begin
DetailData1.Visible := 1
end else begin
DetailData1.Visible := 0
end;

DetailData1.Visible := True / False ile şeklinde yaptım çalıştı. Akşam bunu denedim hemde birkaç kere çalışmadı. 1 gün bekleyince mi çalışıyor acaba. Teşekkür ederim
Cevapla
#9
Aşağıdaki şekilde yazmayı tercih ederim genel olarak  Wink

DetailData1.Visible := [QACIKLAMA."ACIKLAMA"]<>''
Cevapla
#10
(12-10-2016, Saat: 13:19)edo Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAşağıdaki şekilde yazmayı tercih ederim genel olarak  Wink

DetailData1.Visible := [QACIKLAMA."ACIKLAMA"]<>''

Bende ne hikmetse tek satır dahi olsa aşağıdaki şekilde açık seçik yazarım, kodlama açısından herhangi birinin bi avantajı varmıdır bilmiyorum ama.
if x<>'' then begin
......................
end else begin
.....................
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 10.3.2 Cominity için Sui Pack ve Rave Report konusu Bafehan 9 339 09-08-2018, Saat: 20:48
Son Yorum: Bafehan
  Community Edition Fast report quake16 1 166 05-08-2018, Saat: 13:02
Son Yorum: engerex
  Quick Report ile boş satır ekleme boreas 1 263 10-04-2018, Saat: 18:53
Son Yorum: boreas
  Delphi 10.2 Fast Report Install Error narkotik 5 600 01-03-2018, Saat: 15:02
Son Yorum: narkotik
  Linux Console Uygulaması İle Fast Report Kullanılarak Yazıcılar Yönetilebilir mi ? mad85 2 293 15-02-2018, Saat: 23:49
Son Yorum: mad85



Konuyu Okuyanlar: 1 Ziyaretçi