C#

C# Crystal Report PDF Çıktı Alma

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda C# ile Crystal Report kullanarak RPT formatındaki bir raporu PDF olarak çıktı almayı anlatacağım. Hadi başlayalım !

Crystal Report Nedir ?

Crystal Report, doğrudan veritabanına bağlanıp sorgu ile veri çekebilen ve özel olarak oluşturulmuş rapor formatında kaydedebilen bir kütüphane. Rapor formatlarını da .rpt uzantılı bir dosyaya yazarak oluşturabiliyoruz. Ayrıca bu .rpt uzantılı dosyayı Crystal Report programı ile açarak çalıştırılmasını istediğimiz Sql sorgusunu da belirtebiliyoruz. Örneğin bankacılık uygulamalarında dekontlarda kullanılabilmekte. Şimdi bizde bu .rpt uzantılı rapor dosyasını PDF olarak çıtkı almayı anlatacağım.

Crystal Report Kütüphanesi Kurulumu

Crystal Report, C# kurulumu ile beraber gelen kütüphanelerden değil. Bu yüzden elle projeye eklememiz gerekiyor. Crystal Report’un birçok paketi bulunmakta fakat biz CrystalDecisions.Shared ve CrystalDecisions.CrystalReports.Engine paketlerini kullanacağız. 3. parti bir paketi C# projesine eklemenin en kolay ve hızlı yolu Nuget gibi bir paket yöneticisi kullanmak. Nuget, Visual Studio ile beraber gelen ve Visual Studio üzerinde gömülü bir terminal üzerinden çalışan uygulama ve bu uygulama sayesinde terminal komutları yardımıyla projemize paket ekleyebilir yada çıkarabiliriz. Visual Studio üzerinden Tools > Nuget Package Manager > Package Manager Console adımlarını izleyerek Nuget terminalini açabiliriz. Ardından şöyle 2 tane komut girerek ilgili paketleri projemize ekleyebiliriz.

install-package CrystalDecisions.Shared
install-package CrystalDecisions.CrystalReports.Engine

Bu komutları ayrı ayrı girerek bu paketleri indirebilir ve projenize dahil edebilirsiniz.

Paketleri projeye eklemiş olsak dahi kod yazacağımız sayfada çağırarak kullanılabilir hale getirebiliriz. Bunun için kod yazacağınız C# dosyasını açıp sayfanın en üstüne gelerek

using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

satırlarını ekleyelim. Ardından asıl yapacağımız işlemlere geçebiliriz.

ReportDocument Sınıfı

RPT dosyasından PDF çıktısı alabilmek için ReportDocument adında bir sınıfı kullanacağız ve kullanabilmek için bu sınıfın yeni bir nesnesini türetmemiz gerekiyor. Yeni bir nesnesini constructor metodunu kullanarak yapabiliyoruz ve constructor metodu herhangi bir parametre istemiyor. Buna göre yeni bir ReportDocument sınıfı nesnesi türetelim.

ReportDocument document = New ReportDocument();

ReportDocument sınıfı nesnesi oluşturduk, şimdi sıra geldi bu nesneye kullanacağımız RPT dosyasını yüklemeye. Bunun için document nesnesi altındaki Load() fonksiyonunu kullanacağız. Bu fonksiyon string tipte RPT dosyasının yolunu parametre olarak istiyor ve void tipte olduğu için geriye herhangi birşey döndürmüyor. Örneğin masaüstünde bulunan dosya.rpt dosyasını parametre olarak gönderelim.

document.Load("c:/users/kullanici/desktop/dosya.rpt");

PDF Çıktı Alma

RPT dosyasını da doldurduğumuza göre artık PDF olarak çıktı alabiliriz. Bunun için document nesnesi altındaki ExportToDisk() fonksiyonunu kullanacağız. Bu fonksiyon ExportFormatType enum nesnesi ve strin tipte kaydedilecek dosyanın yolunu parametre olarak istiyor ve void tipte olduğu için geriye herhangi birşey döndürmüyor. ExportFormatType enum’u altında Excel, PortableDocFormat, CrystalReport, RichText, WordForWindows, HTML32, HTML40 gibi nesneler bulunmakta. Bu nesneler ile Excel, HTML3.2, HTML4.0, PDF, metin belgesi gibi formatlarda çıktı alınabilmekte. Biz PDF çıktısı alacağımız için PortableDocFormat nesnesini kullanacağız. Örneğin az önceki dosya.rpt dosyasını masaüstünde dosya.pdf olarak çıktısını alalım.

document.ExportToDisk(ExportFormatType.PortableDocFormat, "c:/users/kullanici/desktop/dosya.pdf");

Bu kod satırını da yazdıktan sonra işimiz tamamlanıyor. Projeyi çalıştırdığınızda masaüstünde bulunan dosya.rpt rapor dosyasının masaüstünde dosya.pdf olarak kaydedildiğini göreceksiniz.

Tüm Kodlar

Evet C# ile Crystal Report kullanarak RPT dosyasını PDF’e çevirme bu kadardı. Yazdığımız tüm kodları daha toplu olması için aşağıya bırakıyorum;

ReportDocument document = new ReportDocument();
document.Load("c:/users/kullanici/desktop/dosya.rpt");
document.ExportToDisk(ExportFormatType.PortableDocFormat, "c:/users/kullanici/desktop/dosya.pdf");

Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu