Ana içeriğe geç

5.1.3. Genişletilebilir Uygulama Paketi (Starter)#

RTool Report uygulamasında projeye özgü özelleştirme veya yeni özelliklerin eklenmesi ihtiyacı olabilir.

Starter paketi proje ihtiyaçlarınızı karşılayabilmeniz için RTool Report uygulamasını genişletebilme imkanı sağlamaktadır.

Aşağıdaki adımları uygulayarak projeye özelleştirilmiş RTool Report uygulamanızı geliştirmeye başlayabilirsiniz.

Bağımlılıklar#

Gradle Bağımlılıkları

dependencyManagement {
    imports {
        mavenBom "tr.com.havelsan.framework.report:hvl-report-parent"
    }
}

compile (
    [group: 'tr.com.havelsan.framework.report' , name: 'hvl-report-rtool-starter']
)

Mevcut özelliklerin aktifleştirilmesi#

Hvl report uygulamasına ait entity, repository, logic gibi katmanlarının spring context'ine dahil olması için aşağıdaki annotation'ı configuration dosyanıza eklemelisiniz.

Starter kullanımına ilişkin detaylı anlatıma buradan ulaşabilirsiniz.

Default Veri Kaynağı (Data Source) Tanımlama#

Rapor şablonu tanımlanabilmesi için ilk şart, sistemde en az bir tane default data source'un tanımlı olmasıdır. Data source'lar uygulama değişkenleri üzerinden tanımlanabilir. "hvl-common" için örnek bir tanım aşağıdaki gibidir:

HVL_REPORT_RTOOL_DATA_ADAPTERS_DEFAULT_JDBC_DATA_SOURCE_KEY: hvl-common
HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES_HVL_COMMON_URL: jdbc:postgresql://hvlpostgresmultipledatabases:5432/hvl
HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES_HVL_COMMON_USERNAME: HVL
HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES_HVL_COMMON_PASSWORD: hvl12345
HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES_HVL_COMMON_HIKARI_MINIMUM_IDLE: 1
HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES_HVL_COMMON_HIKARI_MAXIMUM_POOL_SIZE: 5

Örneğin "data-source-example" isimli bir data source tanımlamak istersek; değişkenlerimiz aşağıdaki formatta olmalıdır;

"HVL_REPORT_RTOOL_DATA_ADAPTERS_JDBC_DATA_SOURCES" + "DATA_SOURCE_EXAMPLE" + "SPRING_PROPERTY"

Yukarıdaki örnekteki url, username, vb. parametrelere ek olarak, uygun suffix ile tüm spring property'leri tanımlanabilir.

Rapor İlklendirme#

Hazır raporların initializer ile ilklendirilmesi için file system ve git tabanlı bir initializer mekanizması mevcuttur. Seçenekler aynı anda birbirini ezmeden kullanılabilir.

İki mekanizmayı da kullanırken dikkat edilmesi gereken parametreler;

  • REPORT_INITIALIZER_ENABLED parametresi ile; raporların uygulama başlangıcında otomatik yüklenip yüklenmeyeceği bilgisi verilir.
  • REPORT_INITIALIZER_WORKING_DIR_PATH parametresi ile raporların bulunduğu dosya yolu verilir.
  • DESTROY_APPLICATION_ON_REPORT_INITIALIZING_ERROR parametresi ile; uygulama ayaklanırken initialize aşamasında bi hata olması durumunda hatanın gözardı edilip edilmeyeceği yönetilir.
  • REPORT_INITIALIZER_AFTER_SHUTDOWN parametresi ile; rapor initialize işlemi yapan sunucunun initialize işleminden sonra kapanıp kapanmayacağı yönetilir.

File system mekanızması;

  • IMPORTABLE_REPORT_RESOURCES_PATH parametresi ile; verilen dosya yolundaki raporlar initalize edilir. Burada hiyerarşik bir yapıya göre yükleme işlemi yapılır. Aşağıdaki dosya dizini örneğinde görüldüğü gibi; "oauth" klasörü, rapor grubunu ifade eder. Buna göre hiyerarşiye göre farklı rapor gruplarının altına farklı rapor tanımları yapılabilir.

ÖNEMLİ: jrxml dosyasında verilen isim ile properties dil dosyalarına verilen isim aynı olmalıdır, ayrıca her dil için tek bir properties dosyası olmalıdır.

  • REPORT_IMPORTING_DEFS_FILE_NAME parametresi ile; initialize edilecek dosyalara kaynak olan yml dosyası ismi verilir. Bu parametre iki yaklaşımla kullanılabilir;
  • Dosyada görülen "importableReportDiscoveryEnabled" parametresi false olarak tanımlanırsa; aşağıdaki formata uygun olarak tanımlanan raporlar olduğu gibi otomatik kaydedilir, mevcutsa tekrar kaydedilmez.
  • "importableReportDiscoveryEnabled" parametresi true olarak tanımlanırsa, verilen path'deki rapor tanımları, burada tanımlanan parametreler üzerinden initialize edilerek kaydedilir. Yani IMPORTABLE_REPORT_RESOURCES_PATH parametresindeki dosya yolunda verilen ve initialize edilecek olan raporların özelliklerini (parametre, yetki, vb.) tanımlamamızı ve override etmemizi sağlar.

Git mekanizması;

  • REPORT_INITIALIZER_GIT_ENABLED parametresi ile; belirlenen git reposunun altındaki dosya yolundaki raporların otomatik yüklenmesi sağlanır.
  • REPORT_INITIALIZER_GIT_URI parametresi ile git reposu bağlantı linki verilir.
  • REPORT_INITIALIZER_GIT_LABEL parametresi ile git branch'i ismi verilir.

Desteklenen Rapor Fontları#

Sistemde desteklenen fontlar aşağıdaki gibidir. Rapor tasarımında göz önünde bulundurulması gerekir.

  • Arial, Helvetica, sans-serif
  • 'DejaVu Sans', Arial, Helvetica, sans-serif
  • 'DejaVu Serif', 'Times New Roman', Times, serif
  • 'DejaVu Sans Mono', 'Courier New', Courier, monospace
  • 'DejaVu Sans', Arial, Helvetica, sans-serif
  • 'DejaVu Serif', 'Times New Roman', Times, serif
  • 'DejaVu Sans Mono', 'Courier New', Courier, monospace
  • 'Lato', Arial, Helvetica, sans-serif
  • 'Lato', Arial, Helvetica, sans-serif
  • 'Times New Roman', Times, serif
  • 'Courier New', Courier, monospace
  • 'Noto Sans', Arial, Helvetica, sans-serif
  • 'Noto Serif', 'Times New Roman', Times, serif
  • 'Noto Mono', 'Courier New', Courier, monospace

UI Uygulamasının Angular Projesinde Kullanımı#

UI uygulaması library olarak sunulmaktadır. Örnek kullanım şekli aşağıda görülebilir.

https://gobitbucket.havelsan.com.tr/projects/JAVALT_NG/repos/hvl-ng-all-instance/browse/projects/report