Raporlarınızı koruyun.
Rapor motorunuzu değiştirin.
sgcReports artık FastReport, QuickReport ve ReportBuilder raporlarını içe aktarıyor ve alıcıların ilk baktığı özellikleri ekliyor: parametreler, gerçek tablolar, rapor şablonları, aranabilir önizleme ve elektronik faturalar. Tek sürümde on iki yeni özellik.
- VCL
- FireMonkey
- C++ Builder
- WinForms
- WPF
- Avalonia
On iki yeni özellik dört dakikadan kısa sürede. YouTube'da da izleyin.
Rapor motorunu bırakmak isteyen ekiplerin çoğu bunu hiç yapmaz, çünkü nedeni tektir: kimsenin yeniden çizmek istemediği yüzlerce mevcut rapor. sgcReports 2026.11 bu nedeni ortadan kaldırıyor. FastReport, QuickReport ve ReportBuilder dosyalarınızı okuyup dönüştürüyor, ayrıca bir ekibin geçiş yapmadan önce kontrol ettiği eksikleri kapatıyor: rapor parametreleri, gerçek bir tablo öğesi, kalıtımlı rapor şablonları, arama ve küçük resimli bir önizleme ve elektronik faturalar için PDF çıktısı.
Aşağıdaki her şey Delphi ve C++ Builder'da VCL ve FireMonkey ile, .NET'te ise WinForms, WPF ve Avalonia ile aynı şekilde çalışır. Bu sayfadaki her kod örneği 2026.11 kaynaklarına karşı derlendi ve çalıştırıldı.
- 01Rapor içe aktarıcıFastReport, QuickReport ve ReportBuilder dosyaları dönüştürülür.
- 02Rapor parametreleriÖnizlemenin sorduğu türlü değerler, HTTP üzerinden de.
- 03Tablo öğesiBirleştirilmiş hücreler, tekrarlanan başlık satırları, toplamlar.
- 04Yeni öğe türleriOnay kutuları, SVG, sparkline ve göstergeler.
- 05Şablonlar ve kalıtımTüm raporlar için tek bir antetli kâğıt.
- 06Daha iyi bir önizlemeArama, küçük resimler ve dışa aktarma menüsü.
- 07Yer imleri ve bağlantılarPDF anahtarı, köprüler ve bağlantı noktaları.
- 08E-fatura PDFPDF/A-3 içinde Factur-X, ZUGFeRD ve XRechnung.
- 09İfade kütüphanesi68 fonksiyon ve 10 toplama işlevi.
- 10VurgularBetik yazmadan koşullu stiller.
- 11İlerleme ve iptalBüyük raporlar için, ekranda ve sunucuda.
- 12Her platformDelphi ve .NET'te aynı API.
Bölüm 1 · Geçiş maliyetini ortadan kaldırın
FastReport, QuickReport ve ReportBuilder Raporlarını İçe Aktarın
Yeni TsgcReportImporter, bir FastReport .fr3 dosyasını, bir QuickReport formunu (TQuickRep içeren bir .dfm) veya bir ReportBuilder .rtm şablonunu metin ya da ikili biçimde okur ve bir sgcReports rapor tanımına dönüştürür. Sayfalar, bantlar, öğeler, stiller ve veri kaynakları aktarılır, ifadeler sgcReports sözdizimine çevrilir ve QuickReport ile ReportBuilder onay kutuları yeni onay kutusu öğesine dönüşür.
Gerçek bir projede güvenle kullanılabilmesini sağlayan, sonucun diğer yarısıdır. İçe aktarıcı, eşleyemediği her nesneyi, özelliği, ifadeyi, betiği ve veri kaynağını raporun içindeki yolu ve nedeniyle birlikte listeler, böylece elle neyi tamamlamanız gerektiğini tam olarak bilirsiniz. Hiçbir şey sessizce kaybolmaz.
Tasarımcılarda bir İçe Aktar komutu bulunur, böylece bir rapor kod yazmadan içeri alınabilir, önizlemede kontrol edilebilir ve JSON olarak kaydedilebilir. Koddan, temizlik dışında dört satırdır:
oImporter := TsgcReportImporter.Create;
try
oImporter.ImportFromFile(oReport, 'fr_items.fr3');
for i := 0 to oImporter.ImportResult.Issues.Count - 1 do
Writeln(oImporter.ImportResult.Issues[i].Reason);
finally
oImporter.Free;
end;
C#'ta da aynısı:
var oImporter = new TsgcReportImporter();
oImporter.ImportFromFile(oReport, "fr_items.fr3");
foreach (var oIssue in oImporter.ImportResult.Issues)
Console.WriteLine(oIssue.Reason);
Kaynak raporun betikleri, zengin metinleri, grafikleri ve çapraz tabloları dönüştürülmez. Bunlar sorun listesinde görünür, böylece sgcReports karşılıklarıyla yeniden oluşturabilirsiniz. Delphi, C++ Builder ve .NET için gelen yeni ReportImport demosu, üç biçimin de örnek dosyalarını içe aktarır.
Önizlemenin Sorduğu Rapor Parametreleri
Bir rapor artık parametrelerini bildirebilir: metin, tamsayı, sayı, tarih, tarih ve saat ya da evet veya hayır türünde; her biri için varsayılan değer veya varsayılan ifade, zorunlu bayrağı, çoklu değerler ve sabit ya da bir veri kaynağından okunan izin verilen değerler listesi. İfadeler ve betikler bunları :Name olarak okur.
Bunlar için bir form yazmanız gerekmez. VCL ve FireMonkey önizlemeleri ile tasarımcıları, rapor hazırlanmadan önce parametreleri sorar, .NET önizlemeleri de öyle. HTML görüntüleyici türlü bir parametre formu gösterir; HTTP uç noktası ise ?param.Name=value değerini sorgu dizesinden okur ve uymayan bir değer için bozuk bir rapor döndürmek yerine 400 yanıtı verir.
Bir JSON tanımında parametreler sayfaların yanında yer alır:
"parameters": [
{ "name": "FromDate", "dataType": "rpdtDate", "required": true,
"defaultExpression": "EncodeDate(2026, 1, 1)" },
{ "name": "MinTotal", "dataType": "rpdtFloat", "defaultValue": "0" }
]
Raporu kullanıcı olmadan hazırlayan bir hizmet değerleri kodda ayarlar ve hiçbir istem gösterilmez:
oEngine.Report := oReport;
oEngine.SetParameterValue('FromDate', VarFromDateTime(EncodeDate(2026, 3, 1)));
oEngine.SetParameterValue('MinTotal', 100.0);
Gerçek Bir Tablo Öğesi
Sahte bir tablo oluşturmak için metin öğelerini elle hizalama dönemi sona erdi. Yeni tablo öğesi sabit, yüzde ve otomatik sütun genişliklerine, satırlara ve sütunlara yayılan hücrelere, her sayfada tekrarlanan başlık satırlarına, kendi veri kaynağından gelen veri satırlarına, toplam içeren alt bilgi satırlarına ve içeriğiyle büyüyen satırlara sahiptir. Hücrelerde stiller, Vurgular ve köprüler bulunur.
Dışa aktarmalar yapıyı korur. Bir tablo, erişilebilir bir PDF'te başlık hücreleri, kapsamları ve yayılımlarıyla etiketli bir tablo olur, böylece ekran okuyucu onu tablo olarak okur. HTML tablosuna, başlık satırları tekrarlanan bir Word tablosuna ve XLSX'te birleştirilmiş hücrelere dönüşür. Kodda akıcı oluşturucu bunu birkaç satırda yazar:
oTable := oBuilder.Page('Main').Paper(rpsA4).Margins(15).ReportTitle(14)
.CanGrow.Table(0, 0, 180, 'Products');
oTable.Column(25).Column(0, rtwmAuto).Column(30)
.HeaderRow(['Products', '', '']).RowStyle('Title').Cell(0, 0).Span(1, 3)
.HeaderRow(['Code', 'Name', 'Price']).RowStyle('Head')
.DataRow(['[Products.Code]', '[Products.Name]', '[Products.Price]'])
.Cell(1, 2).Format('#,##0.00');
oTable.Table.RepeatHeaderRows := True;
Onay Kutuları, SVG, Sparkline ve Göstergeler
Bir sayfaya çizebileceğiniz dört yeni öğe:
- Onay kutusu öğesi, bir Boolean ifadeyle işaretlenir, onay, çarpı veya kare işaretiyle. PDF'te vektör olarak kalır, XLSX ve CSV'de TRUE veya FALSE değerine dönüşür.
- Görüntü öğelerinde SVG resimler, PDF'te vektör grafik olarak, HTML'de SVG olarak ve Word'de keskin görüntüler olarak basılır, böylece bir logo her yakınlaştırmada net kalır.
- Sparkline öğesi, sgcCharts tarafından çizilir: çizgi, alan, sütun veya kazanç ve kayıp, her satır için bir tane.
- Gösterge öğesi, sgcGauges tarafından çizilir, renkli aralıklarla radyal veya doğrusal olarak, yeni sgcReportsGauges köprüsü üzerinden.
Özel öğelerin ayarları artık basılan her bant için değerlendirilen ifadeleri kabul eder; her satırın kendi sparkline ve göstergesini çizmesi bu sayede olur:
oBand := oPage.MasterData('Projects', 14);
oBand.CheckBox('Projects.Done', 4, 4, 6, 6).Name('DoneBox');
oBand.Item.CheckBox.CheckStyle := rcsCheck;
oBand.Custom('Sparkline', 75, 1, 60, 12, ['values=[Projects.Trend]',
'kind=area', 'markers=last,high']).Name('Trend');
oBand.Custom('Gauge', 140, 2, 50, 10, ['value=[Projects.Progress]',
'gaugeKind=linear', 'unit=%']).Name('ProgressGauge');
Rapor Şablonları ve Kalıtım
Her şirketin bir antetli kâğıdı vardır ve her fatura, ekstre ve irsaliye onu tekrarlar. Yeni InheritsFrom özelliği, JSON'da "inheritsFrom", sayesinde bir rapor tanımı bir temel tanımdan başlar ve yalnızca farklarını saklar. Sayfalar, bantlar, öğeler ve stiller ada göre birleştirilir. Bir alt rapor bir özelliği geçersiz kılabilir, bir öğe ekleyebilir, bir bandı "$first" ile başa yerleştirebilir ya da miras alınan bir öğeyi "$remove" ile kaldırabilir. Temel raporda logoyu değiştirin, onu miras alan her rapor buna uyar.
Yukarıdaki irsaliyenin tamamı birkaç satırlık farktan oluşur. Burada antetli kâğıdın iletişim bloğunu kaldırıyor:
"inheritsFrom": "letterhead.json",
"pages": [ { "name": "Page1", "bands": [
{ "name": "PageHeader", "items": [
{ "name": "Contact", "$remove": true }
] }
] } ]
oDef.BaseFolder := ExtractFilePath(ExpandFileName('letterhead.json'));
oDef.LoadFromFile(oReport, 'child.json');
Temel, BaseFolder altında bulunur ya da OnResolveBase işleyiciniz onu bir veritabanından veya kaynaktan yükler. Zincirler sekiz seviyeye kadar çıkar ve tek bir dosya gerektiğinde Flat birleştirilmiş tanımı yazar. VCL, FireMonkey ve HTML tasarımcıları miras alınan nesneleri işaretler, onları geçersiz kılma olarak düzenler ve bir temel rapordan yeni bir rapor oluşturur. VCL tasarımcısında geçersiz kılınan bir özellik kalın görünür.
Arama, Küçük Resimler ve Dışa Aktarma Menüsü Olan Bir Önizleme
Önizlemelerde sayfadaki her eşleşmeyi vurgulayan bir bul çubuğu (Ctrl+F, F3, büyük/küçük harf eşleştirme ve tam sözcük), sayfa küçük resimleri bölmesi ve PDF, XLSX, CSV, PNG, HTML ve Word için bir Dışa Aktar menüsü bulunur; kaydetme işini devralmak için bir OnExport olayı da vardır. Bu, VCL ve FireMonkey önizlemelerinde ve WinForms, WPF ve Avalonia önizlemelerinde mevcuttur; FireMonkey PDF görüntüleyicisi de metin araması kazanır.
oPreview.ShowThumbnails := True;
oPreview.ExportFormats := [rpxPDF, rpxXLSX];
if oPreview.SearchText('Total', False, True) then
Writeln(oPreview.SearchResults, ' match(es)');
Bölüm 2 · Eksikleri kapatın
PDF Yer İmleri, Köprüler ve Bağlantı Noktaları
Bir banda veya öğeye yeni Bookmark ifadesini ayarlayın; PDF dışa aktarma yer imlerini belge anahtarı olarak, gruba göre iç içe yazar, VCL ve FireMonkey önizlemeleri ise bunları bir anahtar bölmesinde gösterir (ShowOutline). Yeni Hyperlink özelliği bir web veya mailto adresini açar ya da aynı rapordaki bir Anchor noktasına #name ile atlar; bağlantılar PDF, HTML, Word ve XLSX dışa aktarmalarında korunur.
E-Fatura PDF: Factur-X, ZUGFeRD ve XRechnung
PDF dışa aktarma, uygulamanızın e-fatura XML'ini yeni EInvoice özelliği üzerinden PDF/A-3 ilişkili dosyası olarak gömer; Factur-X, ZUGFeRD ve XRechnung için, ayrıca PDF/UA ile PDF/A-3a olarak da. İnsanların okuduğu fatura ile makinelerin okuduğu veri tek dosyada taşınır. sgcReports XML'i kendisi yazmaz: onu uygulamanız sağlar.
68 Fonksiyonlu ve 10 Toplama İşlevli Bir İfade Kütüphanesi
İfade kütüphanesi 68 fonksiyona ve 10 toplama işlevine çıkıyor. Yeni olanlar: tarih aritmetiği, doldurma ve biçimlendirme, Choose, bir tutarı 12 sgcUI dilinde yazıyla yazmak için ToWords ve SumIf, CountIf, Previous, RunningSum ve RunningCount toplama işlevleri. Bir toplama işlevi basıldığı banda uyar: grup alt bilgisi grubun toplamını, sayfa alt bilgisi sayfanın toplamını verir.
Vurgular: Betiksiz Koşullu Stiller
Vurgular, bir öğeye koşulların ve stillerin bir listesini ekler. Doğru olan ilk koşul öğenin stilinin yerini alır, böylece negatif toplamlar kırmızı, iyi sonuçlar yeşil basılır ve tek satır betik gerekmez. Vurgular JSON'da, akıcı oluşturucuda ve VCL, FireMonkey ve HTML tasarımcılarında yer alır.
Büyük Raporlar için İlerleme ve İptal
Motorda sayfa ve kayıt sayılarını veren yeni bir OnProgress olayı ve bir Cancel yöntemi bulunur. Önizlemeler, rapor hazırlanırken ilerlemeyi, Esc tuşunun da bastığı bir İptal düğmesiyle gösterir; HTTP uç noktasında ise yeni MaxPages ve Timeout sınırları vardır, böylece kontrolden çıkan tek bir rapor bir sunucuyu meşgul edemez.
Her Platform, Aynı API
Bu sayfadaki her özellik, Delphi ve C++ Builder için VCL ve FireMonkey önizlemeleri ve tasarımcılarıyla, .NET için ise WinForms, WPF ve Avalonia ile aynı sınıf ve özellik adlarıyla gelir. JSON ile tanımlanan raporlar iki dünya arasında değişmeden taşınır ve motor hâlâ hizmetlerde ve Linux64 arka plan programlarında başsız çalışır.
Bu sürümle birlikte Delphi, C++ Builder ve .NET için beş yeni demo gelir: ReportImport, ReportParameters, ReportTables, ReportVisualItems ve ReportInheritance, ReportEInvoice demosunun yanında.
sgcReports 2026.11'de Ayrıca Yeni
- VCL ve FireMonkey için araç kutusu, anahat, denetçi, cetveller, kılavuzlar, yapışma, geri alma ve yineleme, klavye ile düzenleme ve ekran okuyucu desteği olan yerel bir rapor tasarımcısı.
- VCL ve FireMonkey tasarımcılarında düzenlenen ve denetlenen, Pascal alt kümesiyle betik yazma.
- DOCX dışa aktarma (sabit ve akış modları) ve HTML dışa aktarma (sayfalı ve sürekli), HTTP rotaları üzerinden de.
- Özel öğeler, yerel bir çapraz tablo ve sgcReportsCharts ile sgcReportsPivotGrid köprüleri üzerinden grafik ve pivot grid öğeleri.
- Filigranlar ve macOS, iOS ve Android üzerinde çalışan bir FireMonkey önizlemesi.
Rapor içe aktarıcı ile sparkline ve gösterge öğeleri kayıtlı bir sürüm gerektirir. sgcReports, sgcUI Enterprise ve All-Access içinde yer alır ve ayrıca tek başına da satılır.
sgcReports 2026.11'i deneyin
Kendi FastReport, QuickReport veya ReportBuilder dosyalarınızdan birini içe aktarın ve nelerin aktarıldığını görün.
Sorularınız veya geri bildiriminiz mi var? Bize ulaşın, kodu yazan kişilerden yanıt alırsınız.
