Filitreler

Filitreler raporlardan önce ekrana gelir. Girilen değerlere göre rapor verisi filitrelenerek görüntülenir.

Metin filitreler. Stokkodu, cari kodu, ürün adı metin türü alanlardır. Bu alanlardan filitre yapilmak istendiğinde metin filitreleri oluşturulur.  Tarih filitreleri. Belge tarihi ,işlem tarihi vs. gibi alanlar için kullanılır. Genellikle aralık olarak verilir. Mantıksal evet- hayır filitreleri, Tam sayı filitreleri (belge no, tip vs ), Reel sayı filitreleri (tutar, fiyat vs)

  • Bir metin tipli filitre oluşturmak

  1. iReport da sol taraftaki nesne ağacından Parameters üzerine sağ tıklanarak “Add parameter” komutu verilir.z.
  2. Sol taraftaki properties kısmından Name olarak istenen isim verilir, örneğin Stok Kodu
  3. Parameter Class olarak java.lang.String seçilir.
  4. Default value expression olarak varsayılan değer girilir. Bu varsayılan değer filitre ekranı görüntülendiğinde default olarak ekrana gelir. Buraya girilecek değerler tırnak işareti içerisinde girilmelidir. Örneğin “TÜMÜ”
  5. Description alanına girilecek açıklama bilgisi filitre ekranında görüntülenir.  Bu bilgi rapor kullanısına bu filitre alani ile ilgili bir ipucu olabilir. Ben “Lütfen stok filitresi giriniz” yazdım.
  6. Properties listesine SQL isminde bir property tanımlayıp içerisine  SELECT TOP 100 STOKKODU FROM F0100TBLSTOKLAR yazıyoruz. Böylece filitremizin değerini kullanıcı listeden seçebilecektir.
  7. Properties listesine GROUP isminde bir property tanımlayıp değer olarak Stok Filitreleri yazıyoruz. Bu özellik filitre ekranında bize guruplama olanağı sağlamaktadır.
  8. Şimdi bu oluştduğumuz filitreyi SQL cümlemizde kullanmalıyız. Bunun için Rapor nesne ağacının en üstünden sağ tıklayarak Edit Query komutu veriyoruz. SQL cümlemizi yazdığımız alana giriyoruz. Parametremizi SQL cümlemiz içerisine uygun şekilde yerleştiriyoruz. Benim SQL cümlem şu şekilde
    SELECT
    STK.STOKKODU ,
    SUM(GIREN) AS GIREN,
    SUM(CIKAN) AS CIKANFROM F0100D0001TBLSTOKHAREKETLERI AS HAR
    LEFT JOIN F0100TBLSTOKLAR AS STK
    ON STK.IND = HAR.STOKNOWHERE (STK.STOKKODU = $P{Stok Kodu} OR 'TÜMÜ'=$P{Stok Kodu})
    
    GROUP BY STK.STOKKODU
  1. Raporun güncel halini tekrar yükledikten sonra tıkladığımda görüntülenen filitre ekranı aşağıdaki şekilde.
  • Tarih tipinde bir filitre oluşturmak

  1. Yeni bir parametreyi daha ekleyerek isin olarak Başlangıç Tarihi, tip olarak java.util.Date giriniz.
  2. Use as a prompt işaretli olmalıdır.
  3. Default value expression olarak new Date() girerseniz filitre alanı varsayılan değer olarak bulunduğumuz günü alacaktır. Bulunduğumuz günden 7 gün öncesini varsayılan değer olarak aldırmak istersek yazmamız gereken değer new Date().plus(-7) olmalıdır. Bu alan için new Date().plus(-7) ifadesini girelim.
  4. Description alanına Başlangıç tarihi ifadesini giriniz. Bu bilgi filitre alanının altında gösterilecektir.
  5. Properties listesinde GROUP isminde bir property ekleyin ve değer olarak Tarih Aralığı ifadesini giriniz.
  6. Yeni bir parametre daha olşuturun, ismini Bitiş Tarihi verin ve yukarıdaki adımlari onun için de tekrarlayın. Bu alan için Default value exp olarak new Date() girelim.
  7. SQL Cümlesini aşağıdaki şekilde değiştiriniz ve derlediktan sonra tekrar yükleyiniz.
    SELECT
    STK.STOKKODU ,
    SUM(GIREN) AS GIREN,
    SUM(CIKAN) AS CIKAN
    FROM F0100D0001TBLSTOKHAREKETLERI AS HAR
    LEFT JOIN F0100TBLSTOKLAR AS STK
    ON STK.IND = HAR.STOKNO
    WHERE (STK.STOKKODU = $P{Stok Kodu} OR 'TÜMÜ'=$P{Stok Kodu})
    AND HAR.TARIH >= $P{Başlangıç Tarihi} AND HAR.TARIH <=$P{Bitiş Tarihi}
    GROUP BY STK.STOKKODU
  8. Sonuç aşağıdaki gibi olacaktır.
  • Tarih ve Saat tipinde filtre oluşturmak

Tarih saat tipinde filtre alanı oluşturmak için, filitre tipini java.sql.Timestamp seçmeniz yeterlidir. Diğer işlemler tarih filitresindeki ile aynıdır. Vega RS 1.4 ve altı versiyonlarda mutlaka default value vermelisiniz.

Default değer örnekleri:

Bugunden bir ay sonrası:

new java.sql.Timestamp(new Date().plus(30).getTime())

Bugün

new java.sql.Timestamp(new Date().getTime())

Bir ay öncesi

new java.sql.Timestamp(new Date().plus(-30).getTime())

 

  • Diğer veri tiplerinde filitreler oluşturmak

Tam sayı filitre oluşturmak için Tarih filitrelerinden farklı olaran tip seçiminde java.lang.Integer, reel sayılar için java.lang.Double, mantıksal evet hayır türleri için ise java.lang.Boolean girilmelidir. Diğer parametreler Tarih tipi filitrelerdekinin aynı işlevselliğe sahiptirler.

Comments are closed.