Cyrstal Report İleri Düzey Rapor oluşturma Renklendirme

Merhaba arkadaşlar sizlere bugün Cyrstal Report programı ile bir rapor örneğinden bahsedeceğim. Yapacağımız rapor biraz karışık gelebilir fakat buradaki örneklerle eminim kendinizi geliştirebilirsiniz. Öncelikle bu raporları bana öğreten ve takıldığım yerde yardımı esirgemeyen UĞUR ÇULLUKÇU abime teşekkürlerimi iletirim. Şimdide öğrendiğim bilgilerimi sizlerle paylaşmak istiyorum.

AÇIKLAMA :

Oluşturacağımız rapor databasemizdeki bir stunda tanımlı olan değişkenleri çekerek bu değişkenlerim formüllerdeki tanımlarına göre satırı yada stunu renklendireceğiz.

Mesela databasemizdeki Açıklama2 stununa siparişlerde belirli özellikler tanımlayalım. Siparişimizi girerken Açıklama2 stununa gireceğimiz değişkenlerimize göre satırımız yada stunlarımızdaki renklendirme kurallarımızı belirleyelim…

YAPILACAK OLAN :

Yapmak istediğimiz mevcut siparişlerin takibi. Bu takibide alacağımız rapor ekranında satırların renklendirilmesi ile görelim.

Öncelikle renklerimizi ve işlevlerini belirleyelim.

Sipariş takibimiz şöyle ..

Gelen siparişi sistemimize kayıt ediyoruz.

Malzeme geldiyse : BEYAZ Renk olsun

Malzeme üretime girdiyse : KIRMIZI renk olsun

Malzeme üretimi bittiyse : SARI renk olsun

Malzeme montaja gittiyse : YEŞİL renk olsun.

Rapor aldığımız zaman renklere bakarak malın durumunu görmüş olacağız. Böylelikle siparişin durumunu renklendirilmiş rapor ile kontrolünü sağlayabileceğiz.

Açıklama2 stununa gireceğimiz değerler ise :

BEYAZ renk için GELDİ

KIRMIZI renk için ÜRETİM

SARI renk için BİTTİ

YEŞİL renk için MONTAJ

değişkenlerimizi oluşturduk ve renklerimizde artık belli şimdi formüllerimizi yazmaya başlayalım.

cyrstal.jpg

üstteki resimde de gördüğünüz gibi databasemizden bize gerekli olan bilgileri tek tek belirledik ve raporumuzun dizaynını bitirdik.

Şimdi renklendirme için formüllerimizi oluşturalım.cyrstal-2.jpg

Öncelikle renklendireceğimiz hücreyi sağ tıklayıp Format Field seçeneğine geliyorum. Burada Font sekmesine gelip X2 formül butonuna basıyoruz.

Şimdi isterseniz bu bölümde farklı atraksiyonlarda deneyebilirsiniz. Mesela Üretim de yazı tipini değiştirebilir, kalın yapabilir, ince yapabilir, büyük yazabilir küçük yazabilir, istediğiniz tarza değiştirebilirsiniz.

if {xsiparis_detayRECORD.aciklama2}=”GELDİ” THEN crwhite ELSE
if {xsiparis_detayRECORD.aciklama2}=”ÜRETİM” THEN crred ELSE
if {xsiparis_detayRECORD.aciklama2}=”BİTTİ” THEN cryellow ELSE
if {xsiparis_detayRECORD.aciklama2}=”MONTAJ” THEN crgreen ELSE CRBLACK

Gördüğünüz gibi yukarıdaki formülde size açıklama yapayım.

Eğer açıklama2 de GELDİ yazıyorsa o hücrenin rengini yani yazının rengini BEYAZ olarak çıkartacak.

Eğer açıklama2 de ÜRETİM yazıyorsa o hücrenin rengini yani yazının rengini KIRMIZI olarak çıkartacak.

Eğer açıklama2 de BİTTİ yazıyorsa o hücrenin rengini yani yazının rengini SARI olarak çıkartacak.

Eğer açıklama2 de MONTAJ yazıyorsa o hücrenin rengini yani yazının rengini YEŞİL olarak çıkartacak.

Buraya kadar ne yaptık siparişin durumuna göre raporda çıkacak olan bilgilerin yazı tipini renklendirdik. Şimdi de stunu renklendirelim .cyrstal-3.jpg

Raporumuzda SECTION EXPERT bölümüne gelip Renklendireceğimiz stunun bulunduğu HEADER ‘i seçiyoruz. Color sekmesine gelip X2 formül kısmımıza gelmekteyiz. Ben yaptığım rapor dizaynında Grup Header2 olduğu için resimde de gördüüğünüz gibi onu seçtim.

Sonrada formüllerimizi girmeye başlıyoruz.

if {xsiparis_detayRECORD.aciklama2}=”GELDİ” then COLOR(17,136,255) else
if {xsiparis_detayRECORD.aciklama2}=”ÜRETİM” then COLOR(17,136,255) else
if {xsiparis_detayRECORD.aciklama2}=”BİTTİ” then COLOR(17,136,255) ELSE
if {xsiparis_detayRECORD.aciklama2}=”MONTAJ” then COLOR(17,136,255) else

Bu sayede arka plan rengini yani stunuda renklendir olmaktayız. Burada bir farklılık var gördüğünüz gibi rengi CRBlack olarak girmedim renk kodunu gömdüm. Bunuda yapabilme imkanınız var tabiki….

Birde değişken tanımlarımızı yapalım bunun içinde yine SECTION EXPERT bölümünde Headerimizi seçtiğimiz kısımda

Peki biraz atraksiyon yapalım mı ?

Mesela eğer ki AÇIKLAMA2 stunumuz eğer boşsa o zaman ? O zaman satırı SİYAH ile boyasın bizimde dikkatimizi çekecektir böylelikle AÇIKLAMA2 stununun boş olduğunu bu siparişin unutulmuş olduğunu görebiliriz.
// Değişken tanımlamalarımız.
if {xsiparis_detayRECORD.aciklama2}=”GELDİ” then false else
if {xsiparis_detayRECORD.aciklama2}=”ÜRETİM” then false else
if {xsiparis_detayRECORD.aciklama2}=”BİTTİ” then false else
if {xsiparis_detayRECORD.aciklama2}=”MONTAJ” then ture
// Bu değişkenlerin dışında birşey yazılırsa yada değişkenler yanlış yazılırsa o zaman ?

Şimdi ise yanlış yazılanları veyahut boş olan bir kaydı rapor ekranımızda nasıl görebileceğimizi görelim. Buda farklı bir atraksiyon….

// Eğer açıklama2 stunu boş ise o zaman kayıtları görebilelim bunu yazmassak
// Açıklama2 stunu boş olanlar raporda gözükmez.
if {xsiparis_detayRECORD.aciklama2}=”” then false ELSE
// EĞER YANLIŞ YAZILIRSA <> MANASI YANLIŞ YAZILAN VEYA FARKLI DEĞER RENK siyah OLSUN
if {xsiparis_detayRECORD.aciklama2}<>”” then false ELSE
// by TEAkolik.com 04/03/2008 11:27

Bu koduda sisteme eklersek o zaman yanlış yazılan bir değişken raporda çıkacak ama SİYAHLA boyayacağız. … Apayrı iki atraksiyonumuz oldu :)

Arka plan boyadığımız kodların altınada bu kodları eklersek….
// EĞER AÇIKLAMA2 BOŞSA RENKLENDİRME SİYAH OLACAK..!
if {xsiparis_detayRECORD.aciklama2}=”” then COLOR(0,0,0)ELSE
// EĞER YANLIŞ YAZILIRSA <> MANASI YANLIŞ YAZILAN VEYA FARKLI DEĞER RENK KIRMIZI
if {xsiparis_detayRECORD.aciklama2}<>”” then COLOR(0,0,0)
// by TEAkolik 04/03/2008 11:27

Bu kodlarımızıda COLOR sekmesine tanımlarsak o zaman sistemboş kayıtları ve yanlış yazılan kayıtları karşımıza siyah zemin olarak çıkartacak….

Bu kadar arkadaşlar daha sonra farklı renklendirme raporları ile karşınızda olacağım…

Yorum yapın

teakolik hamza şamlıoğlu blog logo

Wordpress altyapısını kullandığımız bu sistem, Sunucu Çözümleri firmasında yüksek performans sağlayan özel sunucularda barındırılmaktadır. Görüntülemek için en iyi Chrome tarayıcı, 1920x1080 çözünürlük ve Full HD Android telefonlarda çalışır. Ayrıca Sitedeki içeriği istediğiniz gibi çarpabilirsiniz. :)