ORKESTRA

ORKESTRA

  orkestra orkestra.com.tr
  Sohbet   İndirme Merkezi

Özel Değişkenler Nedir ve Nasıl Tanımlanır?

Özel Değişkenler


Orkestra ile rapor hazırlarken, kullanmak istediğiniz alanlara bir kaç tıklama ile erişebilirsiniz.

 

Şekil 9

Bu alanlar içerisinde $F ile başlayan alanlar program tarafından bize sunulan kolaylıkladan sadece birisidir. Genellikle $F bile başlayan alanlar programı kullanırken ara yüzde gördüğünüz alanlardır. Fatura numarası, Miktar, tutar, cari hesap vb. gibi göz önünde olan alanlardır. Alanların sol kısmında kırmızı ile işaretlenmiş olan oklar ilgili alana ait alt alanların seçimini sağlamaktadır. Bu alt alanlara derinlik denir. Bir raporda derinlik arttıkça dikkat edilecek husus artmaktadır. bilinçsiz bir şekilde derinliklerde alan seçimleri raporun hatalı sonuç vermesine sebep olacaktır. 

 

Şekil 10

 

Şekil 11

Buna karşılık $V ile başlayan alanlar bir adım daha kompleksleşebilir. Kullanıma bağlı olarak tek bir değişken içerisinde sayfalarca kod ekleyebilir veya  istediğimiz matematiksel  işlemleri yaptırabilirken bunun yanı sıra tercih edildiği taktirde herhangi bir $F li alanı $V değişkeni içerisinde tanımlayıp kullanabiliriz. $V değişkenlerinin $F alanlarından en ayırt edici özellikleri, daha değişken tanımlanırken [ Şekil 10 ] ve [ Şekil 11 ] de görüldüğü gibi Tipi ve Fonksiyon özelliklerinin eklenebilmesidir. 

Örneğin bir raporunuzda Fatura Numarası ve Fatura tarihi hep 2 satır görünsün fakat yerleri hep aynı olsun gibi bir isteğiniz olursa; 

 

Şekil 12

[ Şekil 12 ] deki gibi bir tanımlama yapmak gerekecektir. Bu tanımlama içerisinde görüldüğü üzere tanımlanmış alanlar aslında $F li yani sistemde sabit olan alanlardır fakat biz o alanları bu şekilde farklı kullanmak istiyoruz. İki  $F alanı arasında +"\n"+ kodunun olduğunu görüyoruz. 

iki farklı alan bu şekilde bir değişken içerisinde bir biri ile iletişime geçmeden gösterilecekse, iki alan arası +" "+ ile ayrılır. " " arasında bulunan boşluk rapor üzerinde iki alan arasında ne kadar boşluk olacağını tayin eder. " " arasında kalan \n ise NewLine demektir ve ilk alanı yazdıktan sonra ikinci alanı bir alt satıra yaz demektir. 

return $F{voucherNo}+" \n"+$F{voucherTime};

Şeklinde yazdığımızda Fatura no üstte Fatura Tarihi onun bir altında görülcek şekilde basılmaktadır. 

 

Şekil 13

[ Şekil 13 ]'de görüldüğü gibi Fatura numarası ve Fatura tarihi alt alta yazdırılmış oldu. 

 

Şekil 14

$F ve $V dışında sıradaki değişkenimiz $C dir. $C context demektir ve raporda en çok kullanacağınız özellikleri format ve perioddur. Bunun sebebi para gösterimlerinde sürekli bu değişken kullanılmaktadır. Çalışma prensibi, verdiğiniz sayısal veriyi belirlediğiniz özelliklere göre parasal cinste göstermesidir. 

 

Şekil 15

$C{format}. yazdıktan sonra CTRL+SPACE kısayoluna başvurduğumuzda [ Şekil 15 ] deki gibi seçilebilecek tüm özellikler gelecektir. Bu özelliklerinde içinden en çok kullanılacak olanları currency ve currencyText olacaktır. Bu formatlar para birimi formatlarıdır. 

 

Şekil 16

gelen listeden currency seçildiğinde  kodumuz şu hali alacaktır.

 

$C{format}.currency(amount,currency)

Burada amount yazan bölüm bizim sayısal değerimiz yani para miktarımızdır. Virgülden sonraki curency ise bizim para birimimizdir. [ Şekil 17 ]

Şekil 17
Şekil 18

Raporu çalıştığımızda karşımıza  [ Şekil 18 ] deki görüntü geliyor. Görüldüğü üzere 1.313,34TL şeklinde formatlanarak görüntüleniyor. 

Şekil 19

Türk Lirası dışında diğer para birimleri ile görüntüleme yapmak için (amount,currency) bölümündeki curency alanına farklı işlemler yapmamız gerekmektedir. 

[ Şekil 19 ] da görüldüğü gibi, null yazdığımız taktirde karşımıza Türk Lirası cinsinden değerler gelecektir. 

Belge Dövizi cinsinden ve Raporlama Dövizi cinsinden tutar göstermemiz için minik işlemler eklememiz gerekecektir. 

Belge dövizi cinsinden göstermek için öncelikle $F{netTotal} alanını anlamak gerekir. netTotal dediğimiz alan, fatura ister Türk Lirası cinsinden isterse Döviz cinsinden olsun her zaman TL sonuç verir. Verdiği sonuca KDV ve tüm vergilendirmeler dahildir. 

Temel olarak bakıldığında, Orkestra arka planda size $F{netTotal} alanını gösterirken, öncelikle fatura tutarını döviz katsayısı ile çarpmakta ve o şekilde göstermektedir. Türk lirasının çarpım katsayısı 1 dir. 

Ör. Fatura tutarımız 1000 olsun.  ilk aşamada 1000 sayısının hiç bir anlamı yoktur, bu sayının anlamlanması için birime ihtiyaç vardır. 

Eğer bu bir TL fatura ise 1000*1 işlemi yapılacak (1 çarpanı TL olduğu için gelmektedir.) ve curency alanına null (null yazdığımızda gösterim olarak TL gelir) yazıldığı için (1000*1 null) şeklinde bir anlam kazandıracaktır. Bu işlemi orkestra rapor üzerine 1000 TL olarak gösterecektir. Daha önceden belirttiğimiz gibi varsayılan para birimi TL dir dolayısıyla null bıraktığımız alanlara TL ibaresi gelecektir. 

Direk satırdaki birim fiyatı göstermek için ise;

Birim Fiyat:
return $C{format}.lineUnitPrice($F{lines.unitPrice},$F{lines.txCurr},$F{txCurr});

Kodu kullanılır. Normalde birim fiyatı virgülden sonra 2 haneden fazla göstermek gerekir. Fakat $C{format}.currency kodu ile bu işlemi yaptığınızda sadece 2 hane görüntülenir. MathUtil.format(value) kodu ile yaparsanız sonuna birimi gelmeyecektir. Dolayısıyla birim fiyat göstermenin en kolay yolu $C{format}.lineUnitPrice kodudur. 

Belge Dövizi ve Raporlama Dövizi farkı nedir?
Belge Dövizi; $F{txCurr.txCurency} şeklinde (amount,currency) bölümündeki currency alanına gelmektedir. Burada dikkat etmemiz gereken en önemli husus $F{txCurr.txCurency} alanının aslında sadece birim gösterimi yaptığını unutmamaktadır. Örneğin ;

Şekil 20
$C{format}.currency($F{netTotal},$F{txCurr.txCurrency}) 

Şeklinde yazsaydık, 586,07 sayısı için null yerine $F{txCurr.txCurrency} yazdığımız için TL yerine belge dövizimiz ne ise sayının yanına dövizin ISO kodunu ekleyecekti. Yani 586,07 €  şeklinde görüntülenecekti. Fakat bu gösterimdeki tutar yanlıştır. Yukarıda bahsetmiş olduğumuz gibi, 586,07 sayısı zaten Belge dövizinden Türk Lirasına çevrilmiş bir sayı olduğu için bu sayıyı tekrar Belge dövizi cinsinden yazmamız gerekir. Orkestranın, Belge Dövizi cinsinden verilmiş sayıyı Türk Lirasına çevirmek için yapmış olduğu işlemin tam tersini uygulayarak tutarıda düzenlememiz gerekmektedir. 

Şekil 21
$C{format}.currency(($F{netTotal}/$F{txCurr.txRate}),$F{txCurr.txCurrency})

Şu anda netTotal (ödenecek tutar) alanımızı kırmızı ile gösterildiği gibi $F{txCurr.txRate} alanına yani $F{belgedövizi.Dövizkatsayısı} alanına bölüyoruz. Bu sayede daha önceden bu sayı bir belge dövizi ile çarpılmış ise eski rakama dönmesini sağlıyoruz.  Bu şekilde yazdığımızda artık ekrana gelen tutar 586,07 € değil, 118 € oluyor.

Şekil 22

Raporlama Dövizi;

Raporlama dövizi kullanımıda Belge Dövizi ile benzerlik göstermektedir. Fakat firmanızın raporlama dövizi $F{} li alanlarda bulunmaz. Raporlama Döviziniz Yasal kurum - Raporlama Para Birimi bölümündeki seçilmiş olan para birimidir. (amount,currency) kodundaki currency bölümüne diğerlerinden farklı olarak periyod belirtmemiz gerekecektir. Bunun sebebi Yasal kurumun ( firmanız ) dönemlere göre raporlama dövizi değişebilir ve bu bilgi Yasal kurum üzerindedir. 

Şekil 23

 

 [ Şekil 23 ] de görüldüğü gibi, 

$C{format}.currency(($F{netTotal}/$F{rxRate}),$C{period}.getRepCurrency());

 netTotal Tutarımızı rxRate yani Raporlama Dövizi kur'una bölüyoruz. Birim olarak ise null veya $F{txCurr.txCurrency} yerine

$C{period}.getRepCurrency()

ile Raporlama Dövizi ISO kodunu çağırıyoruz. 

Şekil 24

Raporumuzu çalıştırdığımızda, bizim Raporlama Dövizimiz Euro olduğu için Euro cinsinden TL tutarın karşılığını görmekteyiz. 

Parametreler ($P{} alanları)

Sabit alanlar, Değişkenler ve contextler den hariç olarak, en çok kullanılabilecek özelliklerimizden birisi parametrelerdir. Parametrelerin kullanım amacı çok yönlüdür. En basit kullanımlarından birisi başlık seçimidir. 

 Başlık oluştuma işlemi en temel anlamda Parametreleri anlamakta yardımcı olacaktır. 

Şekil 25

Nesne Özelikleri altında Parametre tanımlarının yanındaki üç nokta simgesine tıklıyoruz. Açılan Parametre Tanımları ekranında Yeni tuşuna tıklıyoruz ve açılan Rapor Parametresi Ekranında adı ve açıklama kısmını dolduruyoruz.

Not: Burada başlık işlemi için ekstra başka bir tanım yapmamız gerekmez. Daha detaylı ileri seviye kullanımda alt kısımda bulunan Liste değerleri hakkında bilgilendirme olacaktır.

Şekil 26

Rapor Başlığımıza bir Metin Bileşeni atıyoruz ve herzaman ki gibi sol alt kısımdan Veri bağlantısına giriyoruz. Açılan Veri bağlantısı Tipi ekranında Parametre Bağlantısını seçiyoruz ve İleri tuşuna tıklıyoruz. 

Şekil 27

Açılan [ Şekil 27 ] ekranında görüldüğü gibi az önce oluşturmuş olduğumuz baslik isimli Parametremiz kullanıma hazır halde beklemektedir. baslik parametresini seçerek ileri tuşuna tıklıyoruz. 

Şekil 28

Alan biçimlendirme ekranı karşımıza geliyor. "Boş ise" seçeneğinin sağ tarafına, varsayılan olarak bu başlığın ne olması istediğimizi yazıyoruz. Buradaki mantık, eğer raporu çalıştırırken bir parametre seçmediysek parametre boş gelecektir. Boş geldiğinde ise "Satış Faturaları Betik Demo" yazmasını istiyoruz ve buraya yazıyoruz. 

Şekil 29

Seçtiğimiz parametremiz rapor üzerine geldi. Raporu direk ön izleme yaptığımızda, Parametre içerisinde bir veri girmediğimiz için Boş olduğunda gelmesini istediğimiz " Satış Faturaları Betik Demo" yazısı gelecektir. [ Şekil 30 ]

Şekil 30

Raporumuzu kaydettik sonra Kısayol oluşturup çalıştırdığımızda bu parametre alanını kullanabileceğiz. 

Şekil 31

Örnek olması için biz raporu kısayol oluşturup çalıştırıyoruz. Bu kısmın nasıl yapılacağı hakkında detaylı bilgi için Rapor çalıştırma ve Kısayol Ayarları konumuzu inceleyebilirsiniz. 

[ Şekil 31 ]deki gibi Parametreler Sekmesine geliyoruz ve başlığın ne olması istediğimizi yazıyoruz ardından raporu başlat tuşuna tıklıyoruz. 

Şekil 32

Çalışan raporumuz bize başlığında seçmiş olduğumuz Parametre başlık isimli başlığı getiriyor. 

Script ile Parametre Kullanımı

Şekil 33

Rapor başlığına eklemiş olduğumuz $P{baslik} alanını siliyoruz ve yeni bir Metin Bileşenini Rapor başlığına ekliyoruz. Sonrasında Sol alttan [ Şekil 33 ] de görüntülendiği gibi Veri bağlantısını tıklayarak açılan pencerede Betik Bağlantısını seçiyoruz ve ileri tuşuna tıklıyoruz. 

 

Şekil 34

Burada yazdığımız kodlar Değişken Tanımlama konumuzun özeti niteliğindedir.

 

String s ="Satış Faturaları Betik Demo" 

 yazdığımız satırda, "s" olarak tanımlamış bir metin olduğunu ve bu Metin'in değerinin "Satış Faturaları Betik Demo" olduğunu söylemiş oluyoruz. 

Bir alt satırda,

if(StringUtil.lenght)($P{baslik})>0 {
 s = $P{baslik};
} return s;

 

yazdığımızda ise, ilk verdiğimiz s Metin'inden sonra "Eğer StringUtil Faydalı Yardımcı Fonksiyon'unun .lenght olarak belirtilen Metin uzunluğu sıfırdan büyükse, s değişkenini $P{baslik} olarak değiştir. demiş oluyoruz. En kaba tabirle, eğer raporu çalıştırırken kullanıcı parametre bölümüne bir yazı yazdıysa bu yazıyı göster diyoruz.

Blok kapandıktan sonra ( { } ile başlayıp biten aralığa blok dendiğini hatılayalım) return s; diyerek kodumuzu bitiriyoruz. Blok kapanmadan önce eper ilk durum sağlanırsa, s olarak bastıracağı kullanıcının raporu çalıştırırken parametreye yazdığı yazı bastırılır. Eğer ilk durum sağlanmaz ise ilk tanımlamış olduğumuz "Satış faturaları Betik Demo" yazısı bastırılır.