Jasper Reports

TIBCO Jaspersoft Studio ile Rapor Tasarlama Kılavuzu

inSCADA; TIBCO Jaspersoft Studio gibi JasperReports oluşturma programları ile tasarlanmış raporlarınızı inSCADA'ya entegre etmenize ve efektif bir şekilde kullanmanıza olanak sağlar (Bu kılavuzda TIBCO Jaspersoft Studio programı ile tasarımlar anlatılacaktır). inSCADA'nın sağladığı bu olanak sayesinde raporlarınızı etkili bir şekilde tasarlayabilir, veri kaynaklarından bilgi çekebilir ve profesyonel kalitede, özel isteklerinize uygun raporlar oluşturabilirsiniz.

Jaspersoft Studio Nedir?

Jaspersoft Studio, TIBCO Jaspersoft tarafından geliştirilen açık kaynak bir rapor tasarım aracıdır. Jaspersoft Studio'nun temel özellikleri ise şöyle sıralanabilir;

  • Rapor Tasarımı : Kullanıcıların metin, tablo, grafikler, alt raporlar ve diğer bileşenlerle zengin raporlar tasarlamasına olanak sağlar.

  • Veri Bağlantısı : Veri tabanlarına, web servislerine, XML ve JSON dosyalarına ve diğer veri kaynaklarına bağlanmanıza izin verir, bu da gerçek zamanlı veriler kullanarak raporlar tasarlamanıza olanak sağlar.

  • Metin Biçimlendirme ve Stil : Metinleri ve verileri istediğiniz gibi biçimlendirebilir, yazı tipi, renk, boyut ve hizalama gibi stil özelliklerini ayarlayabilirsiniz.

  • Alt Raporlar : Ana rapor içinde alt raporlar eklemenize olanak tanır. Bu, karmaşık raporları parçalara bölmeyi ve modüler bir yaklaşım benimsemeyi kolaylaştırır.

  • Grafikler : Raporlarınıza görsel unsurlar eklemek için grafikler ve resimler kullanabilirsiniz. Bu, verilerin daha iyi anlaşılmasına yardımcı olur.

  • Entegrasyon : Java uygulamalarıyla kolayca entegre edilebilir. Java API'leri ve bileşenleri, raporların uygulamalarınıza entegre edilmesini sağlar.

  • Açık Kaynak : Açık kaynak bir programdır ve kullanımı ücretsizdir. Bu, herhangi bir projeye veya organizasyona maliyet tasarrufu sağlar.

Jasper Reports

inSCADA' da Jaspert Reports konfigurasyon ekranına Development ve Reports alt menüleri ile ulaşabilirsiniz.

var year = 1900+ins.now().getYear();
var month=ins.now().getMonth()+1;
var day=ins.now().getDate();
var hour=ins.now().getHours();
return {
    startDate:day+"."+month+"."+year,
    endDate:day+1+"."+month+"."+year,
    };

Jaspersoft programında Parametre olarak tanımlanan startDate ve endDate tarihleri inSCADA tarafında "Parameter Script" ile çağrılmıştır.

var names = ["ARJ_STOP_SN","ARJ_RUN_SN","ARJ_DRUN_SN","K1_STOP_SN","K1_RUN_SN","K1_DRUN_SN","K2_STOP_SN","K2_RUN_SN","K2_DRUN_SN","DUSUK_URETIM_SN","IND_TS","IND_GUNLUK","SIVI_GUNLUK_KG","ANLIK_SIVI_TH"];

var year = 1900+ins.now().getYear();
var month=ins.now().getMonth();
var day=ins.now().getDate();
var hour=ins.now().getHours();

var arrVal=hour-8;

var startDates=[];
var endDates=[];
var values=[];

for (var i =0;i<arrVal;i++) {
startDates[i] = ins.getDate((new Date(year,month,day,hour-i-1)).getTime());
endDates[i] = ins.getDate((new Date(year,month,day,hour-i)).getTime());
values.push(ins.getLoggedDailyVariableValueStats(names, startDates[i], endDates[i]));
}

var array = ins.javaArrayList();    
var dateInfoArray = [];

for (var j =0;j<arrVal;j++) {
    array.add({
         dttm: dateInfoArray[j],//new Date(String(values[j].dttm)).toLocaleDateString(),//toLocaleDateString(),
         ARJ_STOP_SN:Math.round((((values[j]["ARJ_STOP_SN"][0].lastFirstDiffValue)*10)/10)),
         ARJ_RUN_SN:Math.round((((values[j]["ARJ_RUN_SN"][0].lastFirstDiffValue)*10)/10)),
         ARJ_DRUN_SN:Math.round((((values[j]["ARJ_DRUN_SN"][0].lastFirstDiffValue)*10)/10)),
         K1_STOP_SN:Math.round((((values[j]["K1_STOP_SN"][0].lastFirstDiffValue)*10)/10)),
         K1_RUN_SN:Math.round((((values[j]["K1_RUN_SN"][0].lastFirstDiffValue)*10)/10)),
         K1_DRUN_SN:Math.round((((values[j]["K1_DRUN_SN"][0].lastFirstDiffValue)*10)/10)),
         K2_STOP_SN:Math.round((((values[j]["K2_STOP_SN"][0].lastFirstDiffValue)*10)/10)),
         K2_RUN_SN:Math.round((((values[j]["K2_RUN_SN"][0].lastFirstDiffValue)*10)/10)),
         K2_DRUN_SN:Math.round((((values[j]["K2_DRUN_SN"][0].lastFirstDiffValue)*10)/10)),
         DUSUK_URETIM_SN:Math.round((((values[j]["DUSUK_URETIM_SN"][0].lastFirstDiffValue)*10)/10)),
         IND_TS:values[j]["IND_TS"][0].avgValue,
         IND_GUNLUK:values[j]["IND_GUNLUK"][0].avgValue,
         SIVI_GUNLUK_KG:values[j]["SIVI_GUNLUK_KG"][0].avgValue,
         ANLIK_SIVI_TH:values[j]["ANLIK_SIVI_TH"][0].avgValue
         
        });
}
return array;

inSCADA'da tanımlı olan ARJ_STOP_SN, ARJ_RUN_SN gibi değişkenlerin belirli saatler içerisinde loglanmış verilerinin ortalama, son ve ilk değer arasındaki fark gibi hesaplamalarının influx tarafından raporunuza getirilmesine yardımcı olan Data Script görülmektedir.

TIBCO Jaspersoft Studio Proje Oluşturma

Jaspersoft programında yeni bir proje oluşturmak için File>New>Jasper Report üst menüleri ile "Report Templates" penceresine geçilir. Bu pencere yardımıyla oluşturulmak istenen raporun sayfa yapısı seçilir; Jaspersoft programı kullanıcılarına boş şablonlar sunduğu gibi bazı hazır şablonlarda sunmaktadır, tasarlanmak istenen rapora göre uygun bir şablon seçilebilir veya boş şablonlar isteğe göre tasarlanabilir.

Sayfa şablonu seçildikten sonra yukarıda görülen, hazırlanan raporların tutulduğu dosya ekranı gelecektir. Burada çalışma alanında raporu tutmak istediğiniz klasör ve raporun adını seçebilir ardından devam etmek için "ileri" düğmesine basabilirsiniz.

Raporun bulunacağı klasör seçildikten sonra "Data Source" ekranı gelecektir. Burada bir veri kaynağı, yani raporu oluşturmak için verilerin alındığı kaynak tanımlanabilir. Eğer veriler inSCADA influxdb üzerinden getirilecek ise "One Empty Record - Empty rows" seçeneği ile devam edilir iken veriler Postgresql' de oluşturulan database üzerinden getirilecek ise "SampleDB-Database JDBC Connection" seçeneği ile devam edilir. Postgresql'den verileri getirebilmek için DataAdapter konfigurasyonlarının doğru bir şekilde yapılması önemlidir. Ve rapor tasarım aşamasına geçebilirz..

Rapor Tasarımı

TIBCO Jaspersoft programı ile tasarım yapılırken sayfanın Title, Page Header, Column Header, Detail, Column Footer, Page Footer, Last Page Footer, Summary gibi bölümlere ayrıldığı görülebilir.

  • Title : Raporun en üst kısmında bulunan bölümdür. Genellikle raporun adı veya başlığı burada yer alır. Başlık bölümü raporun ne hakkında olduğunu tanımlayabilir.

  • Page Header : Her sayfanın üst kısmında görünen bilgileri içerir. Örneğin, şirket logosu, sayfa numarası veya tarih gibi bilgiler bu bölümde yer alabilir. Sayfa üst bilgisi, tüm sayfalar için ortak bilgileri görüntülemek için kullanılabilir.

  • Column Header : Veri sütunlarının başlıklarını içerir. Verilerin düzenli bir şekilde gösterilmesini ve takibini kolaylaştımayı sağlar. Her sütunun adı ve açıklaması bu bölümde görüntülenebilir.

  • Detail : Verilerin asıl içeriğini temsil eden bölümdür. Bu bölümde, raporunuzdaki her kaydın ayrıntıları görüntülenebilir. Veriler burada liste veya tablo biçiminde yer alabilir.

  • Column Footer : Sütun boşluklarının altında bulunan bilgileri içerir. Bu bölüm genellikle toplam veya ortalama gibi sütun bazlı hesaplamaları göstermek için kullanılabilir.

  • Page Footer : Her sayfanın alt kısmında görünen bilgileri içerir. Genellikle sayfa numaraları, raporun oluşturulma tarihi veya şirket bilgileri bu bölümde yer alabilir. Sayfa altbilgisi, tüm sayfalar için ortak bilgileri görüntülemek için kullanılır.

  • Summary : Raporun en alt kısmında yer alır ve genellikle raporun toplam sonuçlarını ve önemli özet bilgileri içerir. Örneğin, toplam satış miktarı veya ortalama değerler bu bölümde görüntülenebilir.

Bir Değişkeni Rapora Ekleme

Rapora getirilecek veri, Jaspersoft programında "Fields" veya "Parameters" alanında tanımlanabilir. "Fields" kısmına sağ click ile yeni bir Field tanımlanabilir ve "Properties" alanından rapora getirilecek verinin veri tipi (Boolean, Double, Float vs) seçilebilir.

Field alanına eklenen bir veri örneğin ARJ_STOP_SN isimli bir veri olsun , sürükle bırak yöntemiyle "Detail" alanına taşınabilir bu alan ilgili verinin görüneceği alandır, hatasız bir şekilde görebilmek için ise detail kısmında doğru Expression ile ifade edilmesi gerekir örneğin Field alanında tanımlanmış ARJ_STOP_SN için doğru Expression ifadesi $F{ARJ_STOP_SN} şeklindedir. Parametre alanında tanımlanan bir değişken ise $P{} biçiminde ifade edilir.

Yukarıda (1) numara ile refere edilen kısımda "Field" alanına tanımlanan ARJ_STOP_SN isimli veri görülebilir ve tanımlanan bu veri sürükle-bırak yöntemiyle raporumuzda asıl içeriğinin görüntüleneceği "Detail" alanına taşınmıştır. Sürükle bırak işleminin ardından (2) numara ile refere edilen kısımda da görülebileceği gibi "Detail" kısmında otomatik olarak ARJ_STOP_SN değişkeni oluşturulacaktır. Ardından (3) numaralı alanda ilgili değişkenin konumu, uzunluk ve genişlik ayarlarının bulunduğu Appearance ; Expression , decimal point ayarları text formatları ile ilgili ayarların yapılabileceği Text Field bölümleri görüntülenebilir ve isteğe göre ayarlanabilir.

Yukarıdaki resimde raporun toplam hesaplamalarının oluşturulabileceği alan (2) görülmektedir. Bir verinin gün sonu toplam, ortalama, en düşük değer, en büyük değer, standart sapma vs gibi hesaplamaları otomatik olarak Jaspersoft programına yaptırılabilir. Bunun için ilk önce "Variables" alanına değişkenlerin oluşturulması gerekmektedir (1) ("Variables" üzerine sağ click ve "Create Variable" ile) , bir değişkenin "Variables" altına default bir isimle otomatik olarak oluşturulduğu görülecektir. Oluşturulan default variable üzerine tıklandığında ekranın sağ tarafında (3) Variable Properties ekranında objenin ayarları görülebilir. Properties alanında bu değişkenin uygun isimlendirilmesi yapılabilir, toplamı alınacak veri ile uyumlu olarak veri tipi seçilebilir, Calculation alanında hesaplama türü seçilebilir ve Expression alanı ile hesaplama işlemine tabi tutulacak esas veri refere edilebilir.

Jasper Report İndirme,Kayıt ve Otomatik Mail İşlemleri

Animasyon içerisinde click animasyon elementi yardımıyla, oluşturulan Jasper Raporlar sunucu bilgisayara indirilebilir.

return {type:"exportJasperPdf", name: "GUNLUK_RAPOR1"};

Oluşturulan Jasper Raporlar bir script ve API yardımıyla belirli koşullar sağlandığında da server bilgisayara indirilip kaydedilebilir.

ins.exportJasperPdf({name: 'GUNLUK_RAPOR1'});

Tasarlanan Jasper Raporlar otomatik olarak mail atılabilir. Otomatik mail operasyonunun doğru şekilde yapılabilmesi için E-posta yönergelerinin doğru şekilde tanımlanması ve kullanıcı mail adreslerinin doğru şekilde Kullanıcı Menüsü 'ne tanımlanması gerekmektedir.

function tt () {
    
    var reportname = "REPORT_TEST1";
    var usernames = ["cemal"]; 
    var subject = "Konu111";
    var content = "icerik111";
    var params = {};
    
ins.mailJasperReport(reportname, params, usernames, subject, content);

}
tt();

Yukarıdaki kod otomatik mail operasyonunu gösteren bir script örneğidir. Bu script bazı zamanlayıcı veya tarih saat koşullarına göre otomatik olarak çalıştırılabilir.

Last updated