Sayfayı Yazdır | Pencereyi Kapat

.NET için açık kaynaklı raporlama nesnesi

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: C, C++, Visual C++
Forum Tanımlaması: C, C++, Visual C++ Örnekleri
URL: http://forum.datakent.com/forum_posts.asp?TID=2489
Tarih: 16.Nisan.2024 Saat 20:21


Konu: .NET için açık kaynaklı raporlama nesnesi
Mesajı Yazan: aziz.alkurt
Konu: .NET için açık kaynaklı raporlama nesnesi
Mesaj Tarihi: 31.Ocak.2013 Saat 16:57
FYIREPORT gözlemlerime göre oldukça başarılı bir raporlama nesnesi
 www.fyiReporting.com
Orjinalinde pdf export için türkçe karakter problemi var. Fakat itextsharp ile bu sorun aşılmış.

https://github.com/majorsilence/My-FyiReporting/issues/11

adresindeki kodlarla RdlEngine->RenderPDF içerisindeki bazı fonksiyonları değiştirmeniz gerekiyor.
Öte yandan verilen bu kodda küçük bir hata var.
public void End() fonksiyonu içerisindeki  "byte[] contentbyte = ms.GetBuffer();" kodunu  
byte[] contentbyte = ms.ToArray(); olarak değiştirmemiz gerekiyor.

Birde

else fontname = "\\ariali.ttf"; kodunu else fontname = "\\arial.ttf";

olarak değiştirisek defaultta italik gelmez.

Öte yandan RdlEngine->Report.cs dosyasına

public bool ItextPDF = true;
static DirectoryInfo dirWindowsFolderx = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System));
// Concatenate Fonts folder onto Windows folder.
public string FontFolder = Path.Combine(dirWindowsFolderx.FullName, "Fonts");

kodlarını eklememiz gerekiyor.

Birde tabi itextsharp apisini RdlEngine projesine "Add Reference" yapmamız gerekiyor.

Kullanımı designer üzerinden çok basit.

C# ile bir örnek
projeye RdlEngine apisini referans ediyorum.
------------------------------------------------------------------------
RDLParser rdlParser = new RDLParser(File.ReadAllText("d:/x.rdl"));
Report report = rdlParser.Parse();
byte[] bytes=null;
ListDictionary parameters = new ListDictionary();
parameters.Add("REFNO", "2");
report.RunGetData(parameters);
using(MemoryStreamGen ms = new MemoryStreamGen())
{
report.RunRenderPdf(ms, report.BuildPages());
bytes = (ms.GetStream() as MemoryStream).ToArray();
ms.CloseMainStream();
}

------------------------------------------------------------------------
Yukarda verdiğim örnekte önceden yarattığım x.rdl rapor dosyasına "REFNO"->"2"
paremtresi gönderek çalıştırdım. Raporun içerisindeki queryleri REFNO ile bağlantılı
hazırladığım için istediğim tablodaki istediğim bilgileri rapora yazdırabildim. Sonra
onu bytes variablesine export ettim.



Sayfayı Yazdır | Pencereyi Kapat