Crystal Report Kazık bir soru ve Rapor dizaynı…

Merhaba arkadaşlar ara sıra sizlere Crystal Report ile ilgili deneyimlerimi anlatmaya çalışıyorum. Özelliklede karşıma çıkan sorunları çözer çözmez yazmak en büyük zevkim diyebilirim.

Bugün yine can sıkıcı bir sorunla karşı kaşıya kaldım.  Aslında sorun değil bir soru tam bir boru :) Ulen espiri yapmayı bile beceremiyorum :) Lafı fazla uzatmadan hemen konuya balıklamasına dalıyorum.

KURULU SİSTEM :

Uyumsoft’un ERP projesi sistemimizde kurulu. Sisteme girilen siparişler müşteriye teslim edildiğinde siparişler kapatılmaktadır. Sistemde 1 Database içerisinde 2 firma var. DB içerisinde veriler PROGRESS veritabanı yönetici ile işlenmekte. Uyumsoft ERP projesinde siparişler arasındaki Raporlar SQL ile Crystal Report programında dizayn edilerek işlenmektedir.  Genelde Açıklama1, Açıklama2, Açıklama3, Açıklama4 … gibi stunlara girilen değişkenler ile Rapor verileri çekilmekte. Sipariş Güncelleme adlı ekranda tüm açık siparişler alt alta satır satır belirtilmiş ve bazı kolonları açık ve yazılabilir durumda gelmektedir. Açıklama1, Açıklama2 … gibi stunlara yazılan DEĞİŞKENLER sayesinde raporlar database içerisinden çekilmektedir.

SİSTEMDEKİ SİPARİŞLER :

Panel, Ahşap ve Çelik olarak 3 farklı sipariş sisteme girilmekte. Panel siparişleri 100 01, 100 02, 100 03, … stok kodları ile başlamakta kendi içerisinde üretilen Panel ürünleri cinslerine göre stok kodları belirlenmiştir. Ahşap ürünlerinde ise 300 01, 300 02, 300 03, …. kodları ile belirlenmekte. Son olarak Çelik ürünleri ise 200 01, 200 02 … olarak kodlanmıştır. Ahşap, Panel ve Çelik ürünleri kendi içerisinde ayrı olarak raporlar halinde alınmaktadır.  İmalat raporu, ürün raporu, sipariş raporu, press raporu, gibi …

İHTİYAÇ :

Mobilya ürünlerindeki kullanılan KASA ürünleri dışarıdan hazır olarak alınmaktadır. Girilen siparişlerden üretime girecek olanların KASA ürünlerini sipariş vermek için tüm kasa adetleri gerekmektedir. Bir ürüne 2,5 adet kasa kullanılmaktadır. Bir kasa siparişi verilebilmesi için kasa ölçüleri guruplandırılacak bu gruplar arasında reklar ayrı olarak alınarak kasa siparişi ortaya çıkartılacak.

İSTENİLEN RAPOR : ( Açıkcası KAZIK SORU daha anlaşılır olacaktı. )

Sistemdeki Mobilya ürünlerinin siparişleri arasında istediğimiz siparişlerin AÇIKLAMA1 stunlarına “KASA” isimli bir değişken yazacağız.  Bu “KASA” değişkenini yazdığımız siparişler arasında Mobilya siparişleri seçilecek her siparişte 1 ile 20 arasında kalem bulunmaktadır. Siparişler kendi aralarında FINDIK, CEVİZ, MAUN …. gibi renklere sahiptir. Kasa ölçüleri ise 8, 10, 12, 14, 16, … gibi ölçülere sahiptir. Her renkte bu ölçüler bulunmakta. Hangi renkten hangi ölçüye sahip kaç tane sipariş olduğu ortaya çıkartılacak ve bu adetler 2,5 ile çarpılacaktır. ( Bir ürüne 2,5 adet kasa kullanılmakta. Fakat 0,5 kasa olmaz 1 ‘e tamamlanmalıdır. )

Aldın boruyu dedim kendi kendime… Daha anlaşılır bir şekilde ortaya şöyle bir sonuç çıkması gerekiyor..

10 ‘luk KASA dan

3 ADET MAUN  1 ADET CEVİZ  30 ADET FINDIK

12 LİK KASA dan

5 ADET MAUN 6 ADET CEVİZ 20 ADET FINDIK

…….
….
..

Tabiki ilk önce RAPOR dizaynımızı yapmamız gerekiyor. Bu kısmı  geçiyorum.

Raporde RECORD SELECTION bölümüne aşağıdaki kodları girdim.

{firma.firma_kod} = “MASTER” and

// Burası DB içerisindeki 2 firmadan MASTER olanını seçmek için;
{siparis_master.teslim_kod} = “KASA” and
// Burası Açıklama1 stunumuzda yazdığımız değşkeni belirttiğimiz kısım
// Açıklama1 stunlarına “KASA”  yazdığımız siparişlerin kalemleri toplanacak.
{siparis_detay.alis_satis} = “Satış” and
// Burası Alış – Satış siparişi olup olmadığını belirtmek için
{siparis_detay.siparis_durum} and
// Burası sipariş durumuna bakmak için KAPALI siparişleri okumayacak.
not ({siparis_detay.stok_kod} startswith [“100 01”, “100 02”, “100 03”, “100 04”, “100 05”, “100 06”, “100 07”, “100 08”, “100 09”, “100 10”, “100 12”, “100 90”, “200”, “300 11”, “300 12”, “300 90”])
// Burası hangi siparişlerin kalemlerindeki STOK kodlarını filtrelemek için NOT eki sayesinde bu siparişleri programın okumasını engelliyorum.
// 10.10.08 by TEAkolik http://www.teakolik.com

tabiki siz bunu istediğiniz gibi farklı atraksiyonlara çevirebilirsiniz.

Raporda GRUP HEADER 1 oluşturdum bu kısmı siparis_detay_bmiktar -A  olarak Databaseye bağladım. Raporumuzda

KASA :

{bmiktar} databasemiz içerisindeki siparişlerin kasa ölçülerini yazdığımız alan 10,12,14,16 gibi…

Yazdıracağımız kısımda 10 luk, 12 lik, 14 lük, ayrımını yapmaktayız. Alt alta kasalar yazılacak. Hemen altına GRUP HEADER 2 oluşturdum ve siparis_master_okod2 sütünuna bağladım. Bu sütünda siparişlerin kalemlerindeki ürünlerin renkleri tutulmakta.

Bu kısımdaki GRUBU gizliyorum. Grup arka planda çalışacak daha doğrusu filtreleme yapacak. Hemen alt kısımdaki GRUP FOOTER2 bölümüne geliyorum.

Bu bölüme

20 Adet FINDIK gibi yazılacaktır. Bunun için öncelikle Adeti hesaplattırmamız gerekiyor.  Şimdi Siparişler arasında Mobilyaları bulduk bu mobilyaların içindeki kasa ölçülerini bulduk kasa ölçüleri arasındaki renkleri ayırdık ve her rengi alt alta adetlerini yazıp 2,5 ile çarpacağız.

Kalemleri toplamak ve topladığımız adetleri çarpmak için Count değerinden faydalandım.

Formula Fields arasına sağ tıklayıp NEW dedim ve kasa_carp isimli bir değişken tanımladım. Bu değişkenin içerisine aşağıdaki formülü girdim.

(Count ({siparis_detay.bmiktar}, {siparis_master.okod1}))*(2.5)

Count ile siparişlerdeki kalemleri saydırıyorum. Bmiktar kasa ölçüleri ve okod1 kısmıda renkleri böylelikle her renkten kaç tane olduğunu çıkartabildim. Sonrada *(2.5) yaparak kasa siparişi verilirken söylemiştim 1 kalemdeki mala 2,5 adet kasa gitmekte…  Sonrada bu değişkenimizi  GRUP Footer 2 (siparis_master_okod1) içerisine sürükleyip koydum..

@kasa_carp  ADET  okod1  olarak tanımlamamız bitti.

Sonuç :

Hesaplama harika yanlışlık yok. Hadi kolay gelsin. Raporun görmek isterseniz Raporumuz tıklayarak indirebilirsiniz. Aşağıdanda ekran görüntülerini inceleyebilirsiniz.

“Crystal Report Kazık bir soru ve Rapor dizaynı…” üzerine 18 yorum

  1. mrhaba teakolik nickli kardesim bende uyumsofta ithalat ve ihracat raporlarini nasil gorebilirim ayrica bana dokuman lazim uyumsoft hakkinda

    Cevapla
  2. Selamlar,

    Maalesef ki 6 senedir Uyumsoft ile iletişimim yok… Eskiden çalıştığım firmada kullanıyordum. Uzun süredir kullanmıyorum.

    Cevapla
  3. merhaba sayın yetkili biz kele çelik şişli bölge bayisiyiz bizim talebimiz müşteriye satışını yaptığımız kapını rengi kapı kilit sistemi kapı ölcüleri imalata girdiği tarih teslim tarih aynı zamanda müşterinin yaptığı ödeme şekli alış ve satış takibi yapa bileceğimiz bir programa ihtiyacımız var iyi çalışmalar musa canpolat

    Cevapla

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. :)