PHP Reports ile Raporlama

Neredeyse 1998 yılından beri Delphi ile yazılım geliştiriyorum. Masaüstü yazılımların en güçlü yönlerinden biri de raporlama konusunda FastReport, QuickReport gibi sağlam araçlara sahip olmaları.

İlgi alanımı web tabanlı platforma kaydırdıktan sonra gördüğüm en büyük eksiklerden biri de raporlama konusundaki sıkıntılardı. Örneğin eğer bir fatura bastıracaksınız, yarım santimetrelik sapmalar bile önemli hale geliyor. Web tarayıcı, sayfa düzeni ile çalışmadığından bu tür çıktıları almak neredeyse imkansız hale geliyor.

Bu problemi ortadan kaldırmak için rapor çıktılarınızı sayfa düzenine sahip bir biçimde yazdırmanız gerekiyor. ASP.Net’te üçüncü parti PDF oluşturma araçlarıyla işiniz biraz daha kolay olsa da PHP ortamında yıllardan beri çok fazla yol alınmış değil.

3 Ay Önce…

Ağırlıklı olarak kendi projelerimde kullanmak üzere, Delphi ile bir rapor tasarlama (Report Designer) aracı geliştirmeye karar verdim. Bu araçla, statik ve dinamik rapor bileşenlerini tasarlayabilecek ve çıktısını JSON biçiminde export ederek ilgili PHP sınıfı ile PDF olarak çıktısını alabilecektim.

Sonra bir an için kendime şu soruyu sordum: Ben angut muyum?

Web tabanlı bir platform için neden masaüstü bir araç geliştiriyordum?… Geliştirdiğim araç, ne kadar başarılı olabilecekti?… Amerika’yı baştan mı keşfediyordum?… Demet Akalın’ın yeni albümü ne zaman çıkacaktı?… Kafamda hep deli sorular…

Bu olumsuzluklardan dolayı Delphi ile rapor tasarlama düşüncesini rafa kaldırdım.

Günümüz…

Aslında hali hazırda, herkesin bilgisayarında yüklü bir rapor tasarlama aracı zaten vardı: Microsoft Word.

Biraz araştırdığımda, bu fikrin ilk uygulayıcısının PHPLIVEDOCX olduğunu gördüm. Projenin düşündüğümden daha yetersiz olması, beni benzer mantıkla çalışan yeni bir sistem yapma konusunda heveslendirdi. Ben de PHP Reports‘u kodlamaya başlamaya başladım.

php-reports-main

Acemiler İçin PHP Reports

İlk olarak sitesinden ücretsiz üye olarak bir API anahtarı alıyorsunuz. Daha sonra Word’de tasarladığınız bir raporu bilgisayarınıza kaydediyor ve PHP Reports’un “Template Manager” bölümünden yüklüyorsunuz.

Word dosyası içinde “Template Variable” olarak tanımladığım dinamik değişkenleri çift süslü parantez içinde yazıyorsunuz. Örneğin:

Dinamik değişkenler tek değer alabildiği gibi çoklu değerler de alabilir. Çoklu değerler, rapor çıktısında “Line Break” satır arası ile ayrılacak.

php-reports-1

Daha sonra PHPReports sınıfını projenize dahil ediyorsunuz.

GitHub adresi: https://github.com/murat-cileli/php-reports

Ya da Composer ile projenize dahil etmek için:

Bundan sonra tek yapacağımız, değişkenlere değerlerini atayarak raporumuzu oluşturmak. Örnek kod:

Hepsi bu kadar. Raporunuzun çıktısı, dinamik değişkenlerin yerine gönderdiğiniz değerlerin yer aldığı bir PDF dosyası olacaktır.

php-reports-2

Yalnızca kullanıcıya özel bir “token” ile indirilebilen PDF dosyasının adresi JSON nesnesi içinde döner.

Eğer JSON nesnesi yerine oluşturulan raporun tarayıcı tarafından direkt indirilmesini isterseniz, “setOutputAction” metodunu aşağıdaki şekilde değiştirebilirsiniz.

PHP Reports, kişisel kullanım için ücretsiz. Kişisel lisans seçeneğinde aylık 300 rapor oluşturma hakkınız var ve rapor çıktılarının alt kısmında filigran var.

“Ben limitsiz rapor üretmek istiyorum ve rapor çıktılarında filigran görmek istemiyorum” diyorsanız, parayı şifonyerin üzerine bırakabilirsiniz.

Facebook Twitter Digg Delicious

12 Nisan 2016 tarihinde yayınlandı.