sgcReports 2026.11: FastReport Raporlarınızı İçe Aktarın, Üstelik Delphi, C++ Builder ve .NET için Parametreler, Tablolar ve Şablonlar

· Bileşenler
sgcReports 2026.11: FastReport İçe Aktarma, Parametreler, Tablolar ve Şablonlar, Delphi ve .NET için
✦  sgcUI 2026.11'de yeni · sgcReports

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.

12yeni özellik
3içe aktarılan rapor biçimi
68fonksiyon, ayrıca 10 toplama işlevi
6önizlemedeki dışa aktarma biçimi

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ı.

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.

Üç rapor biçimi girer, tek bir sgcReports tanımı çıkar.
Bir FastReport dosyası içe aktarıldıktan sonra ReportImport demosu: özet, sorunların listesi ve dönüştürülen raporun önizlemesi
İçe aktarılmış bir FastReport dosyası: 13 öğe, 2 ifade çevrildi ve desteklenmeyen her nesne nedeniyle birlikte listelendi.

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.

Zorunlu bir tarih, verilerden okunan bir listeden seçilen ülke ve asgari bir toplam içeren parametreler iletişim kutusu
Ülke listesi verilerden okunan istem
Seçilen tarih, ülke ve asgari toplama göre filtrelenmiş siparişler raporu
Değerlere göre filtrelenmiş rapor

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.

Birleştirilmiş hücreler ve tabloyu her sayfaya takip eden başlık satırı.
Birleştirilmiş hücreli bir plan karşılaştırma tablosu ve düşük stok değerleri kırmızı gösterilen bir ürün tablosu
Birleştirilmiş hücreler ve vurgulanmış stok sütunu
Satırları, sütunları ve birleştirme ile bölme komutlarını gösteren rapor tasarımcısının tablo düzenleyicisi
Tasarımcıdaki tablo düzenleyicisi

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:

Rapor satırlarının içinde onay işaretleri, sparkline'lar ve göstergeler.
Her satırda bir SVG logo, bir onay kutusu, bir sparkline ve bir ilerleme göstergesi bulunan ve ortalama ilerleme göstergesi içeren proje durum raporu
Bir proje durum raporu: bir SVG logo, bir onay kutusu, 12 aylık bir sparkline ve proje başına bir ilerleme göstergesi, ayrıca ortalamayı gösteren radyal bir gösterge.

Ö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.

Bir antetli kâğıt, onu miras alan iki rapor.
Antetli kâğıt temel raporu
Temel: letterhead.json
Antetli kâğıdı miras alan bir fatura
Bir fatura onu miras alır
Antetli kâğıdı miras alan ve iletişim bloğunu kaldıran bir irsaliye
Bir irsaliye de öyle

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.

İrsaliyenin açık olduğu, miras alınan bantların işaretlendiği ve geçersiz kılınan başlığın kalın gösterildiği VCL rapor tasarımcısı
Miras alınan bantlar işaretlenir, geçersiz kılınan başlık 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.

Kullanıcılarınızın zaten sahip olduğu önizlemeden bulun, atlayın ve dışa aktarın.
Geçerli eşleşmenin turuncu, diğer eşleşmelerin sarı gösterildiği önizleme bul çubuğu
Bul, her eşleşme vurgulanır
Sayfa küçük resimleri bölmesi açık önizleme
Sayfa küçük resimleri
  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

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.

Grup yer imlerinden gelen bölgeleri ve müşterileri gösteren önizleme anahtar bölmesi
İki grup seviyesinden oluşturulmuş bir anahtar
Her bölgeye atlayan bağlantılar ve bir web sayfası bağlantısı içeren rapor sayfası
Bir web sayfasına ve bağlantı noktalarına bağlantılar

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.

XML, PDF/A-3 faturanın içine girer.
Factur-X ve ZUGFeRD, İspanya Verifactu ve Polonya KSeF için düğmeler içeren ReportEInvoice demosu
ReportEInvoice demosu: PDF/A-3 olarak kaydedilmiş bir Factur-X faturası ve Verifactu (İspanya) ile KSeF (Polonya) için QR kodu şablonları.

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.

PadLeft, Upper, Proper, ToWords, RunningSum ve IIF kullanan bir rapor sayfası
Bir rapor sayfasında PadLeft, Upper, Proper, ToWords ve bir RunningSum sütunu.

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.

Negatif değerlerin kırmızı, 5000'in üzerindeki sonuçların yeşil gösterildiği şube sonuçları
Negatifler kırmızı, iyi aylar yeşil
İki koşul ve stilleri olan rapor tasarımcısının Vurgular düzenleyicisi
Vurgular düzenleyicisi

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.

40.000 kayıtlık bir raporu sayfa ve kayıt sayıları ile bir İptal düğmesiyle hazırlayan önizleme
40.000 kaydın hazırlanması: sayfa ve kayıt sayıları ve bir İptal düğmesi.

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.

.NET WinForms'ta çalışan ReportTables demosu
.NET WinForms'ta ReportTables demosu.

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

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.