ORKESTRA

ORKESTRA

  orkestra orkestra.com.tr
  Sohbet   İndirme Merkezi

Formüller İle Yeni Alan Tanımları Nasıl Yapılır?

Formül Alanı Kullanımı



Formül Alanları, Gruplama Veri Bağlantısı kullanırken işimize yaramaktadır. Gruplama Veri Bağlantısı kullandığımızda, Orkestra içerisinde varsayılan olarak gelen ve normalde seçebildiğimiz alanlar yerini kendimizin tanımladığı özel alanlara bırakmaktadır. Bu alanlardan hesaplama yaptıklarımızı gruplama veri bağlantısı içerisinde hesaplanan alanlarda, Gruplama yaptıklarımızı ise Gruplama Veri bağlantısı içerisindeki Grup alanlarında zaten belirliyoruz. Eğer hesaplama yapmak istediğimiz alanlardan birinde, örneğin TL tutarları belirli bir filtre dahilinde göstermek istiyorsak (iade olan işlemleri negatif yap, diğerlerini pozitif yap gibi), hesaplanacak alanı seçmeden önce formül olarak hesaplama yapılacak alanı istediğimiz filtrelere uygun hale Formül Alanında tanımlayarak getirmekteyiz. 

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. 

 

Şekil 1

Ö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;

Şekil 2

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;

substring($F{lines.account.code},1,3)
Şekil 3

Şeklinde komutumuzu uyguluyoruz. Buradaki $F{lines.account.code} alanı, Satırlardaki.MuhasebeHesabının.Kodu  anlamındadır. 

 

Şekil 4

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. 

Şekil 5

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. 

 

Şekil 6

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. 

Şekil 7

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. 

 

Şekil 8

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;

return $f{sum_lines_debit};

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. 

 

Şekil 9

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;

return $f{sum_lines_credit};

 

Şekil 10

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;

return $V{runTotalDebit}-$V{runTotalCredit};

 

Şekil 11

Son bir tane daha tanımlayacağımız değişkenimiz mevcut. 

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;

return $F{sum_lines_debit}-$F{sum_lines_credit};

Tanımlayacağımız tüm verileri tanımladık. Şimdi rapor alanını ayarlayalım. 

Şekil 12

"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. 

Şekil 13

Veri detay bandına da 6 adet Metin Bileşeni Ekliyoruz ve sırasıyla ayarlamaya başlıyoruz. 

Şekil 14

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. 

Şekil 15

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. 

Şekil 15a

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. 

Şekil 16

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)

Şekil 17

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. 

 

Şekil 18

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. 

if ($v{net} > 0)
 return MathUtil.format($V{net},"#,##0.00");
return "";
Şekil 19

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.  

 

if ($v{net} < 0)
 return MathUtil.format($V{net},"#,##0.00");
return "";

 

Şekil 20

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. 

Şekil 21

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. 

Şekil 22

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)

Şekil 23

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.