Not: Formül Alanlarında, herhangi bir veri bir başka veri formatına dönüştürülemeyeceği için, return komutu kullanılmaz.
Gruplama Veri Bağlantısı kullanmadığımız durumlarda, Formül alanı ve Kullanıcı değişkeni alanı hemen hemen aynı işlevlidir. Örneğin Kullanıcı değişkenine $F{netTotal} alanını tanımlayabildiğiniz gibi, Formül alanında $F{netTotal} alanı tanımlanabilir. Formül alanı ve Kullanıcı değişkeni alanı arasında görülen bariz fark ise birinci olarak Gruplama Veri Bağlantısı kullandığımız raporlardır. Bu raporlarda sabit alanlar bulunmadığı ve kullanacağımız alanları kendimiz oluşturup seçtiğimiz için kullanıcı değişkenine direk bir varsayılan alan tanımlayamayız. Burada ilk tanım için Formül alanı kullanılır. Formül Alanı ve Kullanıcı değişkeni arasındaki en büyük diğer fark ise özel durumlu gruplamalarda formül kullanabiliyor olmamızdır.
Örneğin; Kebir Bazında Mizan raporu yapmak isterseniz, bu raporu [ Şekil 1 ]deki gibi Muhasebe hesaplarının ilk 3 hanesine göre gruplama veri bağlantısı kullanmanız gerekir. İşte bu tarz özel gruplamalar için Formül kullanmak zorunda kalırız. Bu raporun nasıl hazırlanacağına gelirsek;
Yeni bir boş rapor oluşturduktan sonra, ilk iş olarak Formül Alanlarına gidiyoruz ve [ Şekil 2 ] deki formül alanını tanımlıyoruz. Burada ki substring(s,start,end) komutu String formatındaki bir Metin'in hangi hanelerini işleme alacağımızı belirtmemize yarayan bir komuttur. Biz Muhasebe hesaplarının ilk 3 hanesini almak istediğimiz için;
Şeklinde komutumuzu uyguluyoruz. Buradaki $F{lines.account.code} alanı, Satırlardaki.MuhasebeHesabının.Kodu anlamındadır.
Sonrasında Gruplama Veri Bağlantısına geliyoruz ve "Gruplama Veri Bağlantısı Kullanmak İstiyorum" seçeneğini seçtikten sonra, Gruplama alanları sekmesine geçip [ Şekil 4 ] deki gibi Yeni Tuşuna tıklıyoruz.
Açılan [ Şekil 4 ] ekranında görüldüğü gibi Sıralama alanları bölümü altından Formül Alanlarını buluyoruz ve onun altındaki az önce oluşturmuş olduğumuz "code3digit" isimli alanı seçip ekle tuşuna basarak ekranın sağ kısmına aktarıyoruz.
Gruplama Alanlarında bir tane daha Yeni alan oluşturuyoruz ve ekranın sol tarafından "Satırlar/Muhasebe Hesabı/Kebir Hesabı/Açıklama" adresini seçiyoruz sağ tarafa aktarıp ekranı tamam diyerek kapatıyoruz.
Hesaplanan alanlar sekmesine geçiş yapıyoruz ve burada, Alan Açıklaması bölümüne Borc_sumDebit yazıyoruz. (Bu ismin bir önemi yok, Türkçe karakter olmaması ve görüldüğünde anlaşılır olması yeterli). Grup Fonksiyonunu "Toplam Değer" Seçiyoruz ve Alt kısımdan "Satırlar/Borç" adresini seçiyoruz.
Aynı şekilde Hesaplanan Alanlar sekmesindeyken "Yeni" tuşuna tıkladıktan sonra açılan ekranda Alan Açıklamasına Alacak_sumCredit yazıp Grup Fonksiyonu bölümünü Toplam değer Seçiyoruz. Alt kısımdan "Satırlar/Alacak" adresini seçiyoruz ve tamam diyerek kapatıyoruz.
Gruplama Veri bağlantısı ile ilgili ilk ayarlarımız tamamlandı. Şimdi burada hesaplanan tutarlarında toplamını rapor dip notunda gösterebilmek için Kullanıcı değişkenleri tanımlayacağız.
Ekranın sol kısmında Tanımlar Altında Kullanıcı Değişkenlerine geliyoruz ve yanındaki üç noktaya tıklayarak Değişken tanımları ekranını açıyoruz. "Yeni" tuşuna tıklayarak yeni bir rapor değişkeni tanımlama ekranı açıyoruz.
Adı: runTotalDebit (Bu ismin önemi yoktur, Türkçe karakter içermemesi ve görüldüğünde anlaşılır olması yeterlidir.)
Tipi: Büyük Ondalık Sayı seçiyoruz. (Para ile ilgili tüm gösterimlerde tipimizin BigDecimal olduğunu hatırlayalım)
Fonksiyon: Toplam
Yeniden Hesaplama : Hiçbir Zaman
Ön değere dönüdür: Rapor Sonunda
Hesaplama kodu;
yazıyoruz ve tamam diyerek kapatıyoruz. Bu değişken bizim Borçlarımızın Toplamlarının Toplamı için oluşturduğumuz değişkendir.
Bu sefer alacakların toplamlarının toplamı için bir kullanıcı değişkeni tanımlayacağız.
Adı: runTotalCredit
Tipi: Büyük Ondalık Sayı seçiyoruz. (Para ile ilgili tüm gösterimlerde tipimizin BigDecimal olduğunu hatırlayalım)
Fonksiyon: Toplam
Yeniden Hesaplama : Hiçbir Zaman
Ön değere dönüdür: Rapor Sonunda
Hesaplama kodu;
Değişken Tanımları ekranı tamam diyerek kapatıyoruz ve tekrar açıyoruz. (Tanımlamış olduğumuz Kullanıcı değişkenlerinin sistemde aktif görünür olması için öncelikle Değişken tanımları ekranın kapatılması gerekmektedir. Bu sebeple Kapatıp tekrar açıyoruz)
Adı: runTotalNet
Açıklama: Borç - Alacak
Tipi: Büyük Ondalık Sayı seçiyoruz. (Para ile ilgili tüm gösterimlerde tipimizin BigDecimal olduğunu hatırlayalım)
Fonksiyon: <boş>
Yeniden Hesaplama : Hiçbir Zaman
Ön değere dönüdür: Rapor Sonunda
Hesaplama kodu;
Adı: net
Açıklama: satır borç - alacak
Tipi: Büyük Ondalık Sayı seçiyoruz. (Para ile ilgili tüm gösterimlerde tipimizin BigDecimal olduğunu hatırlayalım)
Fonksiyon: <boş>
Yeniden Hesaplama : Hiçbir Zaman
Ön değere dönüdür: Hiçbir Zaman
Hesaplama kodu;
Tanımlayacağımız tüm verileri tanımladık. Şimdi rapor alanını ayarlayalım.
"Sayfa Başlığı" bandına 6 adet Metin Bileşeni ekliyoruz ve başlıklarını kullanacağımız şekilde düzenliyoruz. Biz Hesap, Hesap Açıklaması, Borç, Alacak, Net Borç, Net Alacak şeklinde düzenledik.
Veri detay bandına da 6 adet Metin Bileşeni Ekliyoruz ve sırasıyla ayarlamaya başlıyoruz.
Hesap başlığı altına gelen Metin Bileşenini seçiyoruz ve Veri bağlantısına giriyoruz. Alan Bağlantısını seçtiğimizde karşımıza [ Şekil 14 ] geliyor. Tanımlamış olduğumuz, muhasebe hesaplarının ilk 3 hanesini getirecek olan kodumuzu burası için alan listesinden seçiyoruz ve "Son" diyerek ekranı kapatıyoruz.
Hesap Açıklaması başlığı altına gelen Metin Bileşenini seçiyoruz ve Veri bağlantısına giriyoruz. Hesap açıklaması için oluşturmuş olduğumuz Satırlar/Muhasebe Hesabı/Kebir Hesabı/Açıklama alanını seçiyoruz ve ileri tuşuna tıklıyoruz.
Açılan alan biçimleme ekranında, "Boş ise" Bölümüne "Muhasebe Rotası Seçilmemiş!" uyarısını yazıyoruz ve son diyerek ekranı kapatıyoruz. Buradaki amacımız, eğer muhasebe rotası seçilmemiş işlem varsa boş gelecektir. Boş gelen verilerde de bu uyarıyı yazmasını istiyoruz.
Borç başlığı altına gelen Metin bileşenini seçiyoruz ve Veri bağlantısına giriyoruz. Borc_sumDebit olarak oluşturmuş olduğumuz alanı seçiyoruz ve Son tuşuna tıklıyoruz. (eğer istersek son demek yerine ileri diyerek, virgülden sonra kaç hane göstereceğini vs seçebiliriz)
Alacak başlığı altına gelen Metin bileşenini seçiyoruz ve Veri bağlantısına giriyoruz. Alacak_sumCredit alanını seçiyoruz. Aynı şekilde ileri diyerek istersek format ayarlarını yapabiliriz.
Net Borç başlığı altına gelen Metin bileşenini seçiyoruz ve bu sefer Betik Alanına giriyoruz. Önceden tanımlamış olduğumuz $V{net} isimli bir Kullanıcı değişkenimiz vardı. (Borç - Alacak) işlemi yapan bu değişkenden gelen veriler eğer Sıfırdan büyükse raporda basılmasını, eğer büyük değilse basılmamasını istiyoruz.
Net Alacak başlığı altına gelen Metin bileşenini seçiyoruz ve Betik alanına giriyoruz. Net borç bölümünde yapmış olduğumuz işlemin işaret yönünün ters olduğu versiyonu tanımlıyoruz. (Borç - Alacak) işlemi yapan bu değişkenden gelen veriler eğer Sıfırdan küçükse raporda basılmasını, eğer büyük değilse basılmamasını istiyoruz.
Rapor Dipnotu bandına geliyoruz ve 4 adet Metin bileşeni ekliyoruz. Bu alanlar bizim toplamlarımızın Genel toplamlarını verecek.
Toplam Borç karşısındaki Metin Bileşeni için Kullanıcı değişkenlerinden runTotalDebit isimli oluşturduğumuz değişkeni seçiyoruz.
Toplam Alacak karşısındaki Metin Bileşeni için ise Kullanıcı değişkenlerinden runTotalCredit isimli oluşturduğumuz değişkeni seçiyoruz.
Dipnot ve Veri detay bandı arasında gözle görülür bir fark olması ve göze hitap etmesi için Rapor dipnotu bandının hem alt sınırına hem üst sınırına bir Şekil Bileşeni ekliyoruz ve bunları üst ve alt çizgi olarak seçiyoruz. (üstteki çizgiye üst çizgi, alttaki çizgiye alt çizgi seçiyoruz)
Raporumuzu ön izleme yaptığımızda, raporumuz beklediğimiz gibi karşımıza geliyor. Görüldüğü üzere, Hesap başlığı altında Muhasebe hesaplarının sadece ilk 3 hanesi görünmekte ve bunlara göre gruplu şekilde toplamları gelmektedir. En alt kısımda ise Borç ve Alacak Toplamlarının Genel Toplamları gelmektedir.