Rapor tanımlarında LPT üzerinden oluşturduğumuz Custom Queryleri kullanarak başlık ve detay bilgilerini içeren raporlar oluşturabilirsiniz.
İşlem adımları;
1- Projemizin üzerinde sağ klik > New > Other seçeneğine tıkladığımızda, New Select a Wizards ekranından Logo Platform Tailor klasörü altından LPT Report Layout alanını seçip “Next” Butonuna tıklarız.
2 - Açılan “New Custom Report Wizard” ekranından File name kısmına rapor ismini tanımlayıp "Next" butonuyla ilerleriz.
3 - Gelen ekran üzerinde hiçbir değişiklik yapmadan “Next” butonuyla ilerleriz.
4 - Report “Template and Handler” Ekranından rapor adını ve açıklamasını yazıp tipini seçeriz, bu dokümanda Master-Detail Query Report anlatıldığından o alanı seçip “Next” butonuyla ilerlenir.
5 - Rapora bağlı java class ismi isteğe bağlı olarak değiştirilebilir veya sistemin oluşturduğu ismi değiştirmeden “Next” butonuyla rapor tasarımı ve class oluşturulur.
6 - Detay olarak listeleyeceğiniz bilgilerin ana query ile arasında Link olması gereklidir.
7 - Sistem rapor üzerinden de ilişkilendirmeye ihtiyaç duyduğundan parametre ve term tanımları yaparız.
Parametre kısmına ana query’nin logicalref alanı gönderilecektir, ilerleyen adımlarda nasıl yapıldığı gösterilecektir.
8- Gelen Ekrandan Raporunu oluşturmak istediğimiz CQCourseSlipBrowser ve bu query ile ilişkili olan CQCourseSlipLine query’si seçilip “next” butonuna basılır.
9- 7. Adımda belirtilen parametre alanına bu ekrandan ana query’nin logicalref alanın gönderileceği belirtilip finish butonuna tıklanır.
10 – Oluşturulan rapor dizayn ekranında section kısmında ana querynin başlık alanları girilir.
11 - Başlık altına yeni bir section alanı eklenir.
12- Rapor üzerinde mouse sağ klik>import query fields seçeneği seçilir.
13- Açılan ekrandan Ana query seçilerek next butonuna basılır.
14 – gelen ekran üzerinden ana query’nin hangi alanlarına ihtiyaç var ise onlar seçilerek finish butonuna tıklanır.
Not: Variable Name Prefix alanına rapor tanımlarında alan isimlerinin önüne eklemek istediğimiz tanımı gireriz.
15- Tekrar rapor üzerimde mouse sağ klik>import query fields seçeneği seçilerek ana query ile ilişkili olan detay query si seçilerek alanları eklenir.
16- Seçme işlemleri sonrası variables listesinden başlık alanlarının değerleri sürüklenir.
17- Yeni section eklenerek detay alanının başlıkları eklenir.
18- Detay kısmı için yeni bir section eklenerek variables listesinden ihtiyaç duyulan alanlar eklenir.
19- Rapor için oluşturulan class içerisinde otomatik olarak oluşan constructor metodunda ilişkilendirme işlemimiz otomatik olarak yapılandırıldığını görürüz. Burada değiştirilmesi gereken /*detail body*/ alanı. Detay olarak tasarladığımız section idsini 4 olarak değiştiririz.
public MasterDetailReport(JLbsReportLayout
layout, IReportRenderer renderer) {
super(layout, renderer);
// TODO Auto-generated constructor stub
setMainQueryName("CQCourseSlipBrowser");
setMainBodySection(2);
registerDetailQuery(null, "CQCourseSlipLines", null, // order name
false, // is descending
"LOGICALREF", // parent property
"P_SLIPREF", // link parameter
null /* headers*/, null /* footers*/, 4 /* detail body */);
setActive("CQCourseSlipLines", true);
}
20- Class içerisinde ikitane metod override edilir biricisi başlık kısmının gösterilmesi için ikincisi detail alanı için.
İlk metoda rapor dizayn ekranında başlık bilgisinin bulunduğu yerin section idsi tanımlanır printSection(1);
@Override
protected void printQueryObject(QueryBusinessObject record, int order)
throws LbsLocalizableException {
printSection(1);
super.printQueryObject(record, order);
}
@Override
protected void printDetailQueryObject(String string, int queryId,
QueryBusinessObject parent, QueryBusinessObject record,
int bodySec, int j) throws LbsLocalizableException {
// TODO Auto-generated method stub
super.printDetailQueryObject(string, queryId, parent, record, bodySec, j);
}
21- Son olarak raporu Tree üzerinde istediğimiz yere konumlarız. Projeyi deploy edebiliriz.