ORKESTRA

ORKESTRA

  orkestra orkestra.com.tr
  Sohbet   İndirme Merkezi

Gruplama Veri Bağlantısı Nedir ve Nasıl Kullanılır?

Gruplama Veri Bağlantısı Nedir ve Nasıl Kullanılır?



Bir önceki konumuzda bahsettiğimiz  Veri Gruplama İşlemleri'nden farklı olarak, isimleri benzer olsa bile işlevleri birbirinden çok farklı olan bir konuya gelmiş bulunuyoruz. Gruplama Veri Bağlantısı raporları ilk bakışta biraz karışık gibi görünse de, temel olarak adım adım ilerlendiğinde sorun yaşamadan bir rapor oluşturmanıza ve sonuca ulaşmanıza çok hızlı şekilde yardımcı olmaktadır. Yeni bir çalışma alanı açarak raporumuzu yapmaya başlıyoruz. Biz sadece yapacağımızı raporun konusu belli olması için bir başlık ekledik, sizde bir Metin Bileşeni ekleyerek buraya aynı başlığı yazabilirsiniz. [ Şekil 1 ]

 

Şekil 1

Bu raporumuzda firmamızın yıllar içerisinde aylık toplam satış tutarlarını ve fatura sayılarını gösteren bir rapor yapacağız. 

Şekil 2

Ekranımızın sol tarafında, Nesne Özellikleri sekmesi altında Veri bağlantısı içindeki Gruplama Veri Bağlantısı bölümüne geliyoruz ve sağ kısmında bulunan üç nokta simgesine tıklıyoruz.  [ Şekil 2 ]

Şekil 3

Karşımıza [ Şekil 3 ] de görülen Gruplama Veri Bağlantısı ekranı geliyor. Üst kısımdan "Gruplama Veri bağlantısı Kullanmak İstiyorum" seçeneğini seçtikten sonra Gruplama Alanları Sekmesine tıklıyoruz. Sağ taraftan "Yeni" ye tıkladıktan sonra birtakım ayarlamaları yapacağımız Sıralama Alanları ekranı karşımıza geliyor. [ Şekil 3 ]

Bu alana daha sonra birkaç bilgi daha ekleyeceğiz. Başlangıç olarak, Sıralama Alanı Listesinden Dönem açılır menüsü altında Kurumu ve Kurum açılır menüsü altında Kayıt No'yu buluyoruz ve orsolki "EKLE" tuşuna basarak ekranın sağ kısmına geçmesini sağladıktan sonra Tamam tuşuna tıklayarak Sıralama Alanları ekranını kapatıyoruz. 

Şekil 4

Hesaplanan alanlar Sekmesine geçerek Tekrar "Yeni" tuşuna tıklıyoruz. 

[ Şekil 4 ] de görüldüğü gibi, "Grup Fonksiyonu" Açılır menüsünden "Farklı Kayıt Sayısı"'nı seçiyoruz ve alt kısımdan Kayıt No'yu seçiyoruz.  Burada ki amacımız fatura sayısını bulmaktır. 

Not: Her faturanın kendine özgü Orkestra tarafından verilen Kayıt No'ları mevcuttur ve bu numaralar sadece o kayda özgüdür. Biz şu anda Orkestradan her gördüğü farklı kayıt numarasına karşılık 1 adet yeni fatura olduğunu saymasını ve toplamını göstermesini istiyoruz. 

 

 Önemli Not: Gruplama Veri Bağlantısı diğer rapor yapma metotlarından farklı olarak daha dikkat isteyen ve daha planlı programlı rapor yapmayı gerektiren bir yöntemdir. Sürükle Bırak Yöntemi veya Sihirbaz ile rapor yapımı yöntemlerindeki gibi sistem içerisinde bulunan tüm alanları değil sadece seçmiş olduğumuz alanları görüntüleyebiliriz. 

Şekil 5

Gruplama Veri Bağlantısındaki Gruplama Alanları bölümünde Yıl ve Ay bilgisinin, Hesaplanacak Alanlar Bölümünde ise TL Tutar bilgisinin olmasını istiyoruz bu sebeple, Ekranın sol kısmındaki [ Şekil 5 ] Formül alanları bölümünün sağ tarafında bulunan üç noktaya tıklıyoruz ve açılan Formül Alan Tanımları ekranında "Yeni" Tuşuna tıklıyoruz. 

Adı bölümüne YIL yazıyoruz ve Alan Formülü bölümüne

year($F{voucherTime)

Kodumuzu yazıyoruz. Burada Orkestraya, Fatura Tarihinin sadece YIL Kısmını bilgi olarak al demiş oluyoruz. 

Şekil 6

Aynı Şekilde bir tane daha Formül alanı tanımlıyoruz ve Bununda ismini [ Şekil 6 ]'daki gibi AY yapıyoruz ve bu sefer Alan Formülü Bölümüne

month($F{voucherTime)

yazıyoruz. Aynı Yıl'da olduğu gibi burada da Fatura Tarihinin sadece Ay bilgisini al demiş oluyoruz. 

Şekil 7

Gruplama Veri Bağlantısının Hesaplanan Alanlar Bölümünde kullanmak üzere TL Tutar bilgisini faturalardan almamız gerekiyor. Bunun için ise yeni bir formül alanı daha açıyoruz ve buraya

(($F{voucherType}==600 && $F{priceDiffType}==0) || $F{voucherType}==101 || $F{voucherType}==102) ?
-1*(($F{lines.netAmount}-($F{lines.vat.vatNet}+$F{lines.taxAmount}))*$F{txCurr.txRate}) :
($F{lines.netAmount}-($F{lines.vat.vatNet}+$F{lines.taxAmount}))*$F{txCurr.txRate}

Kodumuzu yazıyoruz. Bu kısım ilk bakışta biraz karışık gibi görülebilir fakat görüldüğü kadar sıkıntılı bir bölüm değildir. 

Bu kod bölümünde;  

(Not : Daha önceki konumuzda belitmiş olduğumuz gibi && = ve, || = veya demektir. )

(($F{voucherType}==600 && $F{priceDiffType}==0) || $F{voucherType}==101 || $F{voucherType}==102) 

bölümümüz sadece ön koşul bölümüdür. Burada yazmış olduğumuz 600,101 ve 102 kodlarını Orkestra ekranı sol üst kısımda Araçlar Menüsü altında Nesne Tarayıcısından görebilirsiniz. 

 

 

 

Kodda yazılmış ön koşul şudur; Eğer ( Fatura Türü(voucherType) 600 (Satış Fiyat Farkı) ise ve(&&) Fiyat Farkı Yönü(priceDiffType) 0(Azaltma)sa ) veya (||)  Fatura Türü(voucherType) 101(Perakende Satış İade) ise veya(||) Fatura Türü(voucherType) 102(Toptan Satış İade) ise(?)) Fatura Tutarlarını -1 ile çarparak topla değilse(:) Normal olarak topla şeklindedir. 

Kod içerisinde bulunan Para ile ilgili kısım ise şu şekildedir;

(($F{lines.netAmount}-($F{lines.vat.vatNet}+$F{lines.taxAmount}))*$F{txCurr.txRate})

Bu bölümde, (Satırdaki Net tutar - (KDV ile Ek vergi toplamı)) buradan gelen değerin varsa döviz ile çarpımı. 

lines = satırlar
NetAmount = Net Tutar

 

 

Şekil 8

Şimdi sıra bu oluşturduğumuz 3 Formül alanını, Gruplama Veri Bağlantısına eklemeye geldi. [ Şekil 8 ] deki gibi tekrar Gruplama Veri Bağlantısı bölümüne geliyoruz ve yan kısmında bulunan üç noktaya tıklıyoruz. Açılan ekranda, daha önceden oluşturduğumuz Gruplama alanlarını seçerek güncelle diyoruz. 

[ Şekil 8 ]'de görüldüğü gibi Sıralama alanları içerisinde artık "Formül ALANLARI" isminde yeni bir alan açıldı. Burası bizim Formül olarak tanımladığımız verilerin kullanılmasına olanak sağlayan yeni bir alandır. Formül alanlarından yeni oluşturduğumuz YIL ve AY alanlarını ekliyoruz ve sıralamasını YIL - AY - Dönem şeklinde olacak şekilde ayarlıyoruz. Bunun sebebi en önce Yıla göre sonra Aya göre en son Döneme Göre gruplama yapmasını istememiz sebebiyledir. 

Şekil 9

Hesaplanan alanlar bölümüne geçiyoruz ve burada "Yeni" tuşuna tıklayarak yine Formül Alanları altından Yeni oluşturduğumuz TL alanını seçiyoruz. Grup Fonksiyonunu Toplam Değer olarak ayarlıyoruz ve sonrasında Tamam tuşuna tıklayarak ekranı kapatıyoruz. 

Şekil 10

Veri Gruplama İşlemleri'nde uygulamış olduğumuz gibi yeni bir grup Bandı oluşturuyoruz ve Grup adını YIL, Grup bantlarını Başlık/Dipnot seçiyoruz. Alt kısımdaki Gruplama Alanları bölümünden YIL alanını ekranın sağ kısmına [ Şekil 10 ]'daki gibi ekliyoruz. 

 

Şekil 11

Tanımlamış olduğumuz verileri Değişken Tanımları altında bulunan Kullanıcı değişkenleri bölümüne tanımlayacağız. 

[ Şekil 11 ]'de görüldüğü gibi, Değişken Tanımlarına giriyoruz ve "Yeni" tuşuna tıklıyoruz. Açılan Rapor değişkeni ekranında;

Adı: AY yapıyoruz.

Tipi : Tamsayı

Ön değere Döndür : Seçilen Grupta

Ön değer Grubu : YIL ( az önce oluşturduğumuz, Veri gruplama alanı oluyor burası)

Hesaplama Kodu Kısmına ise;

return $F{formula.AY};
yazıyoruz ve Tamam tuşuna tıklayarak kapatıyoruz. 

Not : Değişken Kullanımı bölümünde bahsettiğimiz gibi $F{ yazmanız sonrasında CTRL+SPACE kısayolunu kullanarak kullanabileceğiniz komutları görebilir ve oradan $F{formula.AY} alanını seçebilirsiniz. 

 

Şekil 12

Değişken tanımları ekranında, tekrar "Yeni" Tuşuna basıyoruz. Bu sefer faturaların aylık toplamlarının genel toplamını yani yıllık toplamı bulmak için bir kod yazacağız. 

Adı : ToplamTL

Tipi : Büyük Ondalık Sayı 

Fonksiyon : Toplam

Ön değere Döndür : Seçilen Grupta

Ön değer Grubu : YIL (Az önce oluşturduğumuz, Veri gruplama alanı oluyor burası)

Hesaplama Kodu bölümüne ise yukarı AY için yaptığımız gibi;

return $F{sum_formula_TL};

yazıyoruz ve Tamam tuşuna tıklayarak kapatıyoruz.

Not: sum_formula_TL Gruplama Veri Bağlantısı içerisinde bulunan Hesaplanan alanlarda hesaplanarak gelen bölümdür. 

Bize gerekli olan bir alan daha var burasıda Toplam Fatura Sayısı alanıdır. 

Şekil 13

Değişken Tanımları Ekranında, "Yeni" tuşuna tıklıyoruz ve açılan ekranda;

Adı : ToplamFaturaSayisi

Tipi : Uzun Tam Sayı

Fonksiyon : Toplam

Ön değere Döndür : Seçilen Grupta

Ön değer Grubu : YIL

Olarak yazıyoruz. 

Hesaplama Kodu alanına ise yine öncesinde Gruplama Veri Bağlantısında Hesaplatmış olduğumuz Farklı Fatura referans sayılarının toplamını seçiyoruz. Bu sayede Aylık toplam veren bu alanın, her ayı toplayarak yıllık toplamını bulmuş olmayı amaçlıyoruz.

Not: Her zaman olduğu gibi CTRL+SPACE kısayolu ile seçebileceğimiz alanları görebilir ve oradan seçebiliriz.  

return $F{cntd_reference};

yazıyoruz ve Tamam tuşuna tıklayarak kapatıyoruz.

Artık tanımladığımız her şeyi raporumuzda kullanmaya hazırız. Hadi Başlayalım!

Şekil 14

 

[ Şekil 14 ] de görüldüğü üzere raporumuz şu anda tasarım ekranında boş bir şekilde bekliyor. Oluşturduğumuz grubu mevcut ve birde başlığı mevcut. 

Şekil 15

Raporumuzu yukarıdan aşağı doğru doldurmaya başlıyoruz. 

YIL isimli grup başlığımıza bir Metin Bileşeni Atıyoruz ve Veri Bağlantısı yanındaki üç noktaya tıklayarak alan seçimini açıyoruz. Burada daha önce Formül alanlarında oluşturmuş olduğumuz 123 YIL isimli alanı seçiyoruz ve SON diyoruz. 

Şekil 16

Yıl Başlığımıza 2 adet daha Metin Bileşeni atıyoruz. Bunlar sadece başlık olacaklar yani Veri / Detay bandında yazacak olan verilerin ne olduğu hakkında bilgi verecekler. Dolayısıyla Sol kısımdan Görünüm bölümü altından Metin seçeneğini buluyoruz ve yanındaki bölüme [ Şekil 16 ] daki gibi 1. Metin için Fatura Sayısı, 2. Metin için TL Tutar yazıyoruz. 

Şimdi sıra gelecek olan verilerin Veri / Detay Bandına eklenmesine geldi. 

Şekil 17

Veri / Detay Bandına bir Metin Bileşeni atıyoruz ve yine [ Şekil 17 ] deki gibi Veri bağlantısı yanındaki üç noktaya tıklayarak açılan menüde şimdiye kadar seçmemiş olduğumuz "Betik Bağlantısı"'nı seçiyoruz. 

Not: Betik Bağlantısı alanı, Alan Bağlantısı ve Değişken Bağlantısından farklı olarak çalışmaktadır. Hazır bulunan alanları seçmek yerine, bu alanları kendimiz kod yazarak kullanmaktayız. Sakın gözünüzü korkutmayın, kullanıcı dostu bir bölümdür. 

Şekil 18

Betik Tanımı Ekranı, [ Şekil 18 ] de Mavi ile seçilmiş olarak görünen, return ""; kodu ile varsayılan olarak gelmektedir. Bu kısmı silerek sıfırdan kendimiz yazıyoruz. Yazdığımız kodumuz şu şekildedir;

return DateUtil.monthName($F{formula.AY})+" "+$F{formula.YIL};

Bu kod içerisinde bulunan Date.Util Operatörü, Orkestra tarafından size kolaylık için sağlayacak olan bir operatördür. Orkestradaki Operatörler ve kullanımları için Betik Kullanımı Hakkında Herşey konumuzu inceleyebilirsiniz. 

Bu kodun yazım şeklinden görüldüğü üzere, DateUtil kısmından sonra, .monthName gelmektedir. Bu bölüme seçilen tarihin sadece AY ismini göstermesini istediğimizi belirtmektedir.  +" "+  bölümünü yazarak, Ay yazdıktan sonra araya boşluk koy demiş oluyoruz. Boşluk sonrasında da YIL bilgisi gelecektir. Ör. Nisan 2018

Betiğimizi yazdıktan sonra;

Şekil 19

Veri / Detay Bandına iki adet daha Metin Bileşeni ekliyoruz. Bu Metinlerden ilki Fatura Sayısının verilerini getirecek diğeri ise TL tutarları getirecek. 

[ Şekil 19 ] da ilk olarak Fatura sayısı verisi için seçim yapıyoruz. Veri bağlantısı bölümünün sağ kısmındaki üç noktaya tıklıyoruz ve açılan ekrandan alan bağlantısını seçiyoruz. Sonrasında karşımıza [ Şekil 19 ] geliyor. Bizim örneğimizde listedeki en üst kısımda 123   cndt_reference yazan bölümü görüyoruz ve seçiyoruz. Bu alan bizim he bir farklı referans numarasına sahip faturamızı sayarak bize fatura adedini veren alandır. Seçtikten sonra Son tuşuna tıklayarak ekranı kapatıyoruz. 

Şekil 20

Şimdi sıra Aylık Faturaların tutarlarını göstermeye geldi. Eklemiş olduğumuz Metin Bileşenini seçiyoruz ve ekranın sol kısmından Veri Bağlantısı bölümünün sağ tarafındaki üç nokta simgesine tıklıyoruz. Açılan Veri Bağlantısı Oluştur ekranında yine Betik Bağlantısını seçiyoruz ve "İleri" tuşuna tıklıyoruz.

Şekil 21

Formül alanı dışındaki her yerde olduğu gibi yine return komutu ile başlıyoruz fakat bu sefer farklı bir durum karşımıza geliyor. $C{format}. $C yani context alanı ile ilgili detaylı bilgi için Betik Kullanımı Hakkında Herşey  konumuzu inceleyebilirsiniz. 

return $C{format}.currency($F{sum_formula_TL},null);

Kısaca açıklamak gerekirse; $C{format}.currency kodu ile başladığımızda Orkestraya,  "Ben bu bölümde bir para birimi kullanıyorum ve gösterimi para birimi olarak yapmalısın" demiş oluruz. Parantez içindeki bölümlerden ilki gelecek olan tutardır. Bu bölüm Gruplama Veri bağlantıları içerisinde hesaplatmış olduğumuz Fatura tutarları toplamı bölümüdür. Virgülden sonra gelen null yazısı ise boşluk demektir. Varsayılan olarak bu bölümde boş bir alan gelirse Orkestra oraya TL ibaresi koyacaktır. Farklı bir kod yazmadığımız taktirde buraya null yazacağız ve karşılığında bize TL gösterecek.

Ör. Toplam 10 liralık faturamız var ise bu bölüm bize 10.00 TL olarak gösterim yapar. 

Veri / Detay Bandındaki işimiz tamamlandı şimdi geldik son adım olan, aylık toplamların genel toplamına. 

Şekil 22

YIL grubumuzun Dipnot kısmına iki adet Metin Bileşeni ekliyoruz ve ilki yine yukarıdaki gibi Aylık fatura sayılarının toplamlarının Toplamı olacak. Bu Toplamların Toplamı işlemi için Değişken olarak tanımladığımız verileri kullanacağız. 

[ Şekil 22 ] de görüldüğü gibi Eklemiş olduğumuz Metin Bileşenini seçiyoruz ve sol taraftaki Veri bağlantısı bölümünden değişken Bağlantısını seçiyoruz ve ileri tuşuna tıklıyoruz.

Şekil 23

Açılan [ Şekil 23 ]deki gibi daha öncesinde Değişken olarak tanımladığımız, ToplamFaturaSayısı değişkenini seçiyoruz ve Son tuşuna tıklayarak kapatıyoruz. 

Şekil 24

Aynı şekilde TL tutarların Toplamlarının Toplamı için eklemiş olduğumuz Metin bileşeni seçiliyken, Veri bağlantısı bölümüne tıklayıp, parasal bir gösterim yapacağımız ve betik yazmamız gerektiği için Betik Bağlantısını seçiyoruz. Ardından ileri tuşuna basıyoruz. 

[ Şekil 21 ] deki gibi aynı formatta kodumuzu yazıyoruz fakat bu sefer gösterilecek miktar değişken olarak tanımlamış olduğumuz $V{ToplamTL} olduğu için $F{sum_fomula_TL} yerine [ Şekil 25 ] deki gibi $V{ToplamTL} yazıyoruz ve Son tuşuna tıklıyoruz. 

Şekil 26

Şu an kontrol için raporumuzu ön izleme yapıyoruz. 
[ Şekil 26 ] görüldüğü üzere, tüm toplamlarımız geldi şimdi sadece birkaç küçük dokunuş yapacağız. 


Şekil 27

YIL Grubumuzun Başlık ve Dipnotuna Verileri başlıktan ve Dipnottaki toplamlardan ayırması için çizgi ekliyoruz. [ Şekil 27 ]

Şekil 28

Rapor çalışma alanının alt kısmında boş bir alana tıklıyoruz ve sol taraftaki Tanımlar altındaki Olay Tanımlarında bulunan Rapor olayları yanındaki üç nokta simgesine tıklıyoruz. [ Şekil 28 ] deki görüntü karşımıza geliyor. Gelen listede Veri Kaynağını Düzenle seçeneğini tıklıyoruz ve açılan ekranda daha önce yaptığımız gibi Nesne tarayıcısından faydalanarak, veri kaynağına minik bir filtre koyacağız.  Rapor olayları hakkında detaylı bilgi almak için Rapor Olayları Nedir ve Nasıl Kullanılır? konumuzu inceleyebilirsiniz. 

Biz raporumuzda;

 
DataSource.addFilter("lines.editItemType","IN","0,100,102,103); 

Kodunu yazdığımızda, raporu çalıştırırken bana sadece bu verileri göster demiş oluyoruz.

Ör. bu kodu yazdığımızda Orkestra rapor üzerinde Ürün/Hizmet, Promosyon, Depozito ve Depozito iade dışındaki verileri göstermeyecektir. 

 

[ Şekil 28 ] deki gibi kodumuzu yazdıktan sonra Tamam tuşuna tıklayarak kapatıyoruz. 

Şekil 29

Raporumuzu ön izleme yaptığımızda, Aylık Satış Raporumuz karşımıza geliyor. Tutarımızı kontrol ettikten sonra raporumuzu kullanmaya başlayabiliriz.