Rapor tanımlarında kendi oluşturduğumuz sql cümleciklerini kullanarak rapor oluşturabiliriz.

Bunun için yapılması gereken işlem adımları;

1 -  Projemizin üzerinde veya içersinde sağ klik > New > Other seçeneğine tıkladığımızda,

gelen 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" buttonuyla 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ı girip tipini seçeriz, bu dokümanda Query Independent Report anlatıldığından o alanı seçip “Next” butonuyla ilerlenir.

5 - Son olarak Rapora bağlı java class ismi isteğe bağlı olarak değiştirilebilir veya sistemin oluşturduğu isme dokunmadan “Finish” butonuyla rapor tasarımı ve class’ı oluşturulur.

6 - Oluşturulan rapor tasarım ekranında  boş bir alana tıklayıp resimde belirtilen  UserVariables üzerinden “Report Variables” ekranını açarak kendi alanlarımızı tanımlarız.


7 - Resimde belirtilen “Available Variables” alanından section üzerine kendi tanımladığımız alanları sürükleyip ekleriz.

8 - Rapor tasarımında   “Available Variables” ekranından alanlarımızın id'lerini öğrenebiliriz, Id numaraları kod kısmında bizim bu alanlara değer atamamızı sağlıyacaktır.

 

9 - Section’nın boş bir alanına tıklayıp sectionId sini öğrenebiliriz buda bize kod içerisinde göstermek istediğimiz sectionları belirtmek için gerekli olacaktır.

 

10 - Rapora ait sınıfı açtığımızda Oluşturulan canPrintSections metodunun geri dönüş değerini true olarak değiştiririz.


@Override
    public boolean canPrintSections() {
        // TODO Auto-generated method stub
        return true;
    }


11 - ExecuteReportDoc metodunu override edip içerisinde metodumuzda göstermek istediğimiz dataları queryle çekip raporda tanımladığımız id numaralarına göre istediğimiz alanlara setVarValue(id numarası , değer) metodu üzerinden set edebiliriz, printSection() metodu ile rapor üzerinde alanlarımızın bulunduğu section numarasını set edip görüntülenmesini sağlarız.   Kod içerisinde belirtilen for döngüsünün size’ı kadar belirtilen section gösterilecektir.

@Override
    public boolean executeReportDoc(JLbsReportRunParams runParams) {
        QueryParams queryParams = new QueryParams();
        queryParams.setCustomization(ProjectGlobals.getM_ProjectGUID());
        
        
        QueryBusinessObjects items = new QueryBusinessObjects();
        try {
             String sqlText = "SELECT COUNT(CARDTYPE) AS KART_SAYISI, CARDTYPE AS KART_TIPI FROM U_001_ITEMS GROUP BY CARDTYPE";
             m_Context.getServerQueryFactory().executeSelectQuery(sqlText,queryParams, items, -1); 
            //select("CQStudentBrowser", queryParams , items, -1);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            
            if(items.size()>0)
                {
                    
            for(int i=0; i<items.size();i++)
                 {
                QueryBusinessObject item = items.get(i);
       Integer cardCount = QueryUtil.getIntegerProp(item,"KART_SAYISI");
       Integer cardType = QueryUtil.getIntegerProp(item, "KART_TIPI");
                                     
                        setVarValue(5000005, cardCount);
                        setVarValue(5000004, cardType);
                        printSection(1);
                        
                    }
                }
        
        return super.executeReportDoc(runParams);
    }

12 - Son olarak raporu Tree üzerinde resimde belirtildiği gibi istediğimiz yere konumlarız. Projeyi deployedebiliriz.



Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım