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.
Düzenleyen aziz.alkurt - 31.Ocak.2013 Saat 17:08