Delphi, C++ Builder & .NET Onderdeel van sgcUI

sgcReports, de rapportengine voor Delphi, C++ Builder & .NET

Ontwerp een rapport één keer en lever het als toegankelijke PDF, Excel-bestand, CSV of PNG-pagina's. Bouw het in code met een fluent keten of laad tijdens runtime een JSON-definitie, met groepen, subtotalen, master-detail en barcodes. De engine heeft geen venster en geen externe DLL nodig, dus draait in services en Linux64-daemons.

PDF/UA-1 getagde PDF als standaardPDF, XLSX, CSV en PNGWindows-services en Linux64Inbegrepen in sgcUI Enterprise
sgcReports-voorbeeldvenster met een factuurpagina en een QR-code

Alles wat een rapportengine nodig heeft

Elf functies, elk met de echte API en het helponderwerp erachter.

Het rapport ontwerpen

Beschrijf een rapport in code of in JSON, met echte banden, groepen en expressies.

Schrijf een compleet rapport in een paar leesbare regels

Het rapport ontwerpen

Schrijf een compleet rapport in een paar leesbare regels

Rapportontwerpers zijn prima tot de lay-out in versiebeheer moet staan, in een pull request moet worden beoordeeld of uit je eigen metagegevens moet worden gegenereerd. TsgcReportBuilder beschrijft stijlen, pagina's, banden en items als één fluent keten, dus een rapport is gewone code die compileert, diff't en refactort samen met de rest van je project. Dezelfde keten bereidt het rapport voor en slaat het op in elk uitvoerformaat. Zo gebouwde rapporten kun je in een lus genereren, als functies delen en met unittests dekken zoals elke andere code.

  • Style, Page, GroupHeader, MasterData, GroupFooter en PageFooter lezen als de lay-out
  • SaveToPDF, SaveToXLSX, SaveToCSV en SaveToPNG rechtstreeks vanuit de builder
  • Streamvarianten zoals SaveToPDFStream voor webresponses
  • De builder vult een gewoon TsgcReport-model dat je in code nog kunt aanpassen
  • Rechts naar links voor Arabisch en Hebreeuws: RightToLeft op het rapport en BiDiMode op banden en items spiegelen de indeling, met geshapete Arabische en Hebreeuwse tekst in de uitvoer naar PDF, XLSX en HTML
Het helponderwerp lezen
Groepen, subtotalen en paginanummers die gewoon werken

Het rapport ontwerpen

Groepen, subtotalen en paginanummers die gewoon werken

Zakelijke rapporten zijn zelden een platte lijst: verkoop per regio, facturen per klant, voorraad per magazijn. sgcReports heeft een echte bandenindeling met rapporttitel, paginakop, groepskop, gegevens, groepsvoet, paginavoet en samenvattingsbanden. Een groep breekt af wanneer zijn expressie verandert, drukt zijn eigen totalen af en kan een nieuwe pagina beginnen of zijn kop op elke pagina herhalen, zodat lange rapporten leesbaar blijven. Subrapporten laten een pagina de lay-out van een andere opnemen, voor samenvattingen en bijlagen.

  • GroupExpression op een groepskopband, geneste groepen voor twee of meer niveaus
  • StartNewPage, RepeatOnEveryPage en KeepTogether regelen de paginastroom
  • Bandtypen van rbtReportTitle tot rbtReportSummary, plus kolomkoppen en -voeten
  • TotalPages in expressies voor voeten als "Pagina 2 van 7"
  • PrintOnFirstPage en PrintOnLastPage bepalen waar paginabanden verschijnen; SubreportPageName sluit een andere pagina in
Het helponderwerp lezen
Facturen rechtstreeks uit je database

Het rapport ontwerpen

Facturen rechtstreeks uit je database

Een factuur is een hoofdrecord met zijn regels, en elke regel heeft het juiste product, de juiste hoeveelheid en prijs nodig. Een dataset-bron bindt elke TDataSet, FireDAC inbegrepen, en koppelt een detailbron via sleutelvelden aan zijn hoofdbron, zodat elke factuur zijn eigen regels en totalen afdrukt. JSON-arrays en je eigen eventgestuurde bronnen werken op dezelfde manier als de gegevens niet in een database staan. De detailband herhaalt zich voor elke regel van het huidige hoofdrecord, en de voet drukt het factuurtotaal af met een aggregatie-expressie over de regels.

  • TsgcReportDataSetSource met MasterSource, MasterFields en DetailFields
  • TsgcReportJSONSource leest een JSON-string of -bestand, RecordsPath kiest de array
  • TsgcReportEventSource haalt rijen uit je code via OnFirst, OnNext en OnGetValue
  • Bronnen worden op de engine geregistreerd met AddDataSource
Het helponderwerp lezen
Wijzig een rapport zonder opnieuw te compileren

Het rapport ontwerpen

Wijzig een rapport zonder opnieuw te compileren

Een nieuwe kolom op het maandoverzicht mag geen nieuwe release van je toepassing vereisen. Rapportdefinities kunnen als JSON worden opgeslagen en geladen, dus lay-outs kunnen in een database, een configuratiemap of een klantspecifieke map staan. De toepassing laadt de definitie tijdens runtime, bindt de gegevens en rendert ze, en hetzelfde bestand voedt de webontwerper. Definities zijn gewone tekst, dus ze diff'en netjes in versiebeheer en kunnen door je eigen tools worden gegenereerd of met een script worden gemigreerd.

  • sgcReportLoadFromJSON en sgcReportSaveToJSON, plus bestands- en streamvarianten
  • sgcReportGenerateSchema schrijft een JSON-schema voor editors en validatie
  • Fouten noemen het JSON-pad van het foute lid
  • De ReportJSONDefinition-demo bewerkt een definitie en de bijbehorende gegevens naast elkaar
Het helponderwerp lezen
Expressies en barcodes in elke band

Het rapport ontwerpen

Expressies en barcodes in elke band

Totalen, opgemaakte datums, voorwaardelijke tekst en verzendetiketten komen allemaal neer op expressies en barcodes. Elk tekstitem kan expressies tussen haakjes bevatten, zoals een opgemaakte som van een veld, met ingebouwde functies voor tekst, getallen en datums. Barcodes zijn ook items, als vectoren getekend door de sgcPDF-engine, zodat etiketten en afleverbonnen op elk formaat scherp afdrukken. Expressies worden door de engine voor elke rij geëvalueerd, dus een voettotaal komt altijd overeen met de regels erboven.

  • Aggregaties en functies: Sum, FormatFloat, FormatDateTime, Upper, Round, IsNull
  • OnGetVariable levert je eigen variabelen tijdens runtime
  • Barcode in de builder met rbsCode128, rbsEAN13, rbsQRCode, rbsDataMatrix, rbsPDF417 en meer
  • GS1-128, ITF, Codabar, UPC-A en Code 39 voor logistieke etiketten
Het helponderwerp lezen

Lever het overal

Bereid één keer voor en exporteer dan naar de formaten waar je gebruikers en toezichthouders om vragen.

Standaard toegankelijke PDF, PDF/A op verzoek

Lever het overal

Standaard toegankelijke PDF, PDF/A op verzoek

Overheden en veel bedrijven moeten nu documenten publiceren die schermlezers kunnen volgen, en archieven hebben bestanden nodig die over twintig jaar nog openen. De PDF-export schrijft standaard getagde PDF/UA-1, met een logische leesvolgorde, alternatieve tekst voor afbeeldingen en gemarkeerde koppen. Zet PDF/A-3 aan als het document naar een langetermijnarchief gaat. In Delphi en .NET schrijft de export ook PDF/A-4 en PDF/UA-2. Lettertypen worden ingesloten via dezelfde fontmanager als die het voorbeeld gebruikt, en de help loopt door het valideren van een bestand met de gratis veraPDF-tool.

  • PDFUA is standaard True op TsgcReportPDFExport
  • AltText en TagRole op items beschrijven afbeeldingen en koppen
  • PDFA ingesteld op rpaA3b of rpaA3a voor archiefuitvoer
  • FixedDocumentID en FixedCreationDate maken de uitvoer byte voor byte reproduceerbaar voor tests
Het helponderwerp lezen
Eén rapport, elk formaat waar je gebruikers om vragen

Lever het overal

Eén rapport, elk formaat waar je gebruikers om vragen

Financiën wil het overzicht in Excel, de klant wil een PDF, de integratie wil een CSV en de webpagina wil een miniatuur. De engine bereidt de pagina's één keer voor en elke export werkt vanuit hetzelfde voorbereide resultaat, dus de cijfers zijn in elk bestand identiek. XLSX-uitvoer houdt getallen als getallen, zodat het spreadsheet ze zonder opschoning kan optellen. Elke export kan ook naar een stream schrijven, wat een webresponse of een mailbijlage nodig heeft, en SaveToFiles schrijft meerdere formaten in één aanroep.

  • TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport
  • TsgcReportPreparedPages met LoadPrepared voedt meerdere exports uit één run
  • DetectNumbers, SheetName en ExcludePageBands bepalen het spreadsheet
  • PNG-pagina's met de DPI die je aan SaveToPNG meegeeft
Het helponderwerp lezen
Een voorbeeldvenster voor desktoptoepassingen

Lever het overal

Een voorbeeldvenster voor desktoptoepassingen

Gebruikers willen door een rapport bladeren voordat ze het afdrukken of opslaan. De voorbeeldcontrol toont de voorbereide pagina's met dezelfde rendering als de PDF, met paginanavigatie, zoom- en aanpasmodi en een werkbalk die je kunt verbergen als je je eigen bouwt. Het VCL-voorbeeld draait op Windows; het FireMonkey-voorbeeld draait op Windows. Het voorbeeld tekent via de sgcPDF-viewercontrol, dus wat gebruikers op het scherm zien is wat de PDF-export schrijft, en SaveToPDF op het voorbeeld slaat de pagina's op die ze bekijken.

  • TsgcReportPreviewVCL met FirstPage, NextPage, PriorPage en LastPage
  • ZoomIn, ZoomOut, FitWidth en FitPage
  • ShowToolbar, CurrentPage en OnPageChange voor je eigen navigatie
  • TsgcReportPreviewFMX: FireMonkey-voorbeeld op Windows
Het helponderwerp lezen

Lever het overal

Draait headless in services en Linux-daemons

De meeste rapporten worden tegenwoordig op een server gegenereerd: nachtelijke overzichten, facturen na het afrekenen, exports achter een API. De sgcReports-kern heeft geen VCL- of FireMonkey-afhankelijkheid en heeft geen externe DLL of printerdriver nodig, dus dezelfde code draait in een Windows-service of een Linux64-daemon. De help beschrijft een workerpoolpatroon waarin elke thread zijn eigen engine bezit. Opdrachten, gegevens en rapportdefinities kunnen als JSON-bestanden binnenkomen, dus een daemon kan worden gevoed door elk systeem dat een bestand kan schrijven.

  • TsgcReportEngine bereidt rapporten voor zonder venster
  • De ReportLinuxDaemon-demo bewaakt een opdrachtenmap en rendert PDF, XLSX, CSV of PNG met 4 workerthreads
  • sgcReportsConfigureForServer stemt de geheugenmanager af op veel threads op Windows
  • Een gedeelde, alleen-lezen TsgcReportFontManager bedient elke thread
Het helponderwerp lezen

Rapporten op het web

De sgcReportsHTML-bridge serveert rapporten via HTTP en laat gebruikers lay-outs in de browser bewerken.

Rapporten op het web Alleen geregistreerd

Serveer rapporten via HTTP

Een webportaal, een intranet of een mobiele app heeft vaak alleen een URL nodig die het rapport teruggeeft. Het HTTP-endpoint registreert rapporten op naam op een sgcWebSockets HTTP-server en serveert ze als PDF, XLSX, CSV of PNG, met een HTML-viewer die om de parameters vraagt, door het resultaat bladert en de downloads aanbiedt. Je code vult de gegevens in een event vóór elke run. Het endpoint gebruikt dezelfde rapportdefinities en gegevensbronnen als je desktopcode, dus een rapport dat je één keer schrijft, bedient zowel de toepassing als de browser.

  • TsgcReportHTTPEndpoint met RegisterReport en BasePath
  • OnBeforePrepare stelt parameters en gegevens per verzoek in
  • TsgcReportHTMLViewer met ShowParameters voor een parameterformulier
  • Draait op TsgcWebSocketHTTPServer; de ReportHTTPServer-demo is een complete server

Delphi en C++ Builder: vereist sgcWebSockets Professional of hoger en sgcHTML. .NET: de pakketten esegece.sgcReports.HTML en AspNetCore hosten dezelfde routes.

Het helponderwerp lezen

Rapporten op het web Alleen geregistreerd

Een webrapportontwerper voor je gebruikers

Power users willen altijd nog één kolom extra of een andere groepering, en elke wijziging was vroeger een ticket voor de ontwikkelaars. De browserontwerper bewerkt de JSON-definitie van een rapport met een bandencanvas, een eigenschappeninspecteur en een live voorbeeld, geserveerd door hetzelfde endpoint als het afgewerkte rapport. Jij bepaalt wie mag bewerken, en opgeslagen definities laden in elk ander onderdeel van sgcReports. Een knop Download JSON geeft de definitie aan iedereen die haar wil bewaren.

  • TsgcReportHTMLDesigner op een endpoint met DesignerEnabled
  • Boom van pagina's, banden en items, slepen, formaat wijzigen en uitlijnen in millimeters, ongedaan maken en opnieuw
  • Eigenschappeninspecteur gegenereerd uit het JSON-schema van het rapport; validatie op de server wijst het veld aan
  • Opgeslagen definities laden met sgcReportLoadFromJSON overal, ook in de Linux-daemon

Laat DesignerEnabled uit op productie-endpoints en zet het achter je eigen authenticatie.

Het helponderwerp lezen

Zie sgcReports in actie

sgcReports in de sgcUI suite-demo's: complete applicaties die offline draaien met ingebouwde gesimuleerde gegevens.

Wie bouwt er met sgcReports

Facturen, afleverbonnen en overzichten

Bedrijfstoepassingen drukken elke dag documenten af uit hun database. Een dataset-bron met master-detail koppelt elke factuur aan zijn regels, groepen en voeten drukken de totalen af, een QR-code of GS1-128-barcode komt op het etiket, en de PDF-export schrijft een toegankelijk bestand dat klaar is om te mailen. Hetzelfde rapport wordt voor het boekhoudteam als XLSX opgeslagen.

  • Master-detail
  • Groepen en subtotalen
  • Barcodes
  • Toegankelijke PDF
Start de ReportInvoice-demo

Serverrapporten voor webportalen

Klantportalen en interne API's hebben rapporten op aanvraag nodig. Registreer de rapporten op het HTTP-endpoint en de browser krijgt een viewer met parameters en downloads, of laat de engine draaien in een Linux64-daemon die wachtrijopdrachten rendert met een workerpool. Er komen geen printerdriver, geen venster en geen externe DLL aan te pas. Dezelfde JSON-definities bedienen de viewer en de daemon.

  • Rapporten serveren via HTTP
  • Linux-daemon
  • JSON-definities
Start de ReportHTTPServer-demo

Verplichtingen voor toegankelijkheid en archivering

Leveranciers van de publieke sector en gereguleerde bedrijven moeten documenten publiceren die schermlezers kunnen volgen en ze jarenlang archiveren. Getagde PDF/UA-1-uitvoer is de standaard, alternatieve tekst en koprollen staan op de rapportitems, en PDF/A-3 is één eigenschap verderop. De help laat zien hoe je het resultaat controleert met de gratis veraPDF-validator. Reproduceerbare uitvoer helpt geautomatiseerde tests bestanden te vergelijken.

  • Toegankelijke PDF
  • PDF/A-3
  • Reproduceerbare uitvoer
Start de ReportPDFUA-demo

Een gegroepeerd verkooprapport in een paar regels

Dezelfde API in Delphi, C++ Builder en C#: een kop per regio, een regel per verkoop en een subtotaal per regio, opgeslagen als PDF, XLSX en CSV.

Een fluent rapport over een JSON-bron: één groep per regio met een subtotaal, opgeslagen als PDF, XLSX en CSV.

uses
  Classes, SysUtils,
  sgcReports_Types, sgcReports_Model, sgcReports_Data, sgcReports_Fluent;

const
  CS_SALES = '[' +
    '{"Region":"East","Customer":"Acme Corp","Amount":1450.00},' +
    '{"Region":"East","Customer":"Blue Harbor","Amount":600.00},' +
    '{"Region":"North","Customer":"Nordic Labs","Amount":2100.75},' +
    '{"Region":"North","Customer":"Fjord Ltd","Amount":880.20}]';
  CS_TOTAL = '[FormatFloat(''#,0.00'', Sum(Sales.Amount))]';

procedure ExportSalesReport(const aFolder: string);
var
  oSales: TsgcReportJSONSource;
  oBuilder: TsgcReportBuilder;
begin
  oSales := TsgcReportJSONSource.Create(nil);
  oBuilder := TsgcReportBuilder.Create;
  try
    oSales.SourceName := 'Sales';
    oSales.JSON := CS_SALES;
    oBuilder.Title('Sales by region').Author('eSeGeCe').Units(ruMillimeters)
      .Style('Base').Font('Arial', 10).EndStyle
      .Style('Group').Font('Arial', 11).Bold.BackColor($EEEEEE).EndStyle
      .Page.Paper(rpsA4).Margins(15)
      // one header per region, one line per sale, a subtotal per region
      .GroupHeader('Sales.Region', 9).Style('Group')
      .Text('Region: [Sales.Region]', 0, 1, 180, 7).TagRole(rtrHeading2).EndBand
      .MasterData('Sales', 6).Style('Base')
      .Text('[Sales.Customer]', 2, 0, 120, 6)
      .Text('[Sales.Amount]', 130, 0, 50, 6).AlignRight.Format('#,0.00').EndBand
      .GroupFooter(9).Style('Base')
      .Text('Region total ' + CS_TOTAL, 80, 1, 100, 6).AlignRight.Bold.EndBand
      .PageFooter(8).Style('Base')
      .Text('Page [Page] of [TotalPages]', 0, 1, 180, 6).AlignCenter.EndBand
      .EndPage.Data(oSales);
    // accessible PDF (PDF/UA is on by default), plus the same data as Excel
    oBuilder.SaveToPDF(IncludeTrailingPathDelimiter(aFolder) + 'sales.pdf');
    oBuilder.SaveToXLSX(IncludeTrailingPathDelimiter(aFolder) + 'sales.xlsx');
    oBuilder.SaveToCSV(IncludeTrailingPathDelimiter(aFolder) + 'sales.csv');
  finally
    oBuilder.Free;
    oSales.Free;
  end;
end;

Het helponderwerp lezen →

Hetzelfde rapport in C++ Builder met de gegenereerde sgcReports-headers.

#include <vcl.h>
#include "sgcReports_Types.hpp"
#include "sgcReports_Model.hpp"
#include "sgcReports_Data.hpp"
#include "sgcReports_Fluent.hpp"

void ExportSalesReport(const String Folder)
{
  const String Total = "[FormatFloat('#,0.00', Sum(Sales.Amount))]";
  TsgcReportJSONSource *Sales = new TsgcReportJSONSource(NULL);
  TsgcReportBuilder *Builder = new TsgcReportBuilder();
  try
  {
    Sales->SourceName = "Sales";
    Sales->JSON = "[{\"Region\":\"East\",\"Customer\":\"Acme Corp\",\"Amount\":1450.00},"
                  "{\"Region\":\"East\",\"Customer\":\"Blue Harbor\",\"Amount\":600.00},"
                  "{\"Region\":\"North\",\"Customer\":\"Nordic Labs\",\"Amount\":2100.75}]";
    Builder->Title("Sales by region")->Author("eSeGeCe")->Units(ruMillimeters)
      ->Style("Base")->Font("Arial", 10)->EndStyle()
      ->Style("Group")->Font("Arial", 11)->Bold()->BackColor(0xEEEEEE)->EndStyle()
      ->Page("")->Paper(rpsA4, roPortrait)->Margins(15)
      // one header per region, one line per sale, a subtotal per region
      ->GroupHeader("Sales.Region", 9)->Style("Group")
      ->Text("Region: [Sales.Region]", 0, 1, 180, 7)->TagRole(rtrHeading2)->EndBand()
      ->MasterData("Sales", 6)->Style("Base")
      ->Text("[Sales.Customer]", 2, 0, 120, 6)
      ->Text("[Sales.Amount]", 130, 0, 50, 6)->AlignRight()->Format("#,0.00")->EndBand()
      ->GroupFooter(9)->Style("Base")
      ->Text("Region total " + Total, 80, 1, 100, 6)->AlignRight()->Bold()->EndBand()
      ->EndPage()->Data(Sales);
    // accessible PDF (PDF/UA is on by default), plus the same data as Excel
    Builder->SaveToPDF(IncludeTrailingPathDelimiter(Folder) + "sales.pdf");
    Builder->SaveToXLSX(IncludeTrailingPathDelimiter(Folder) + "sales.xlsx");
    Builder->SaveToCSV(IncludeTrailingPathDelimiter(Folder) + "sales.csv");
  }
  __finally
  {
    delete Builder;
    delete Sales;
  }
}

Het helponderwerp lezen →

Dezelfde builderketen in C#, met dezelfde klassenamen als Delphi.

using System.IO;
using esegece.sgcReports;

public static class SalesReport
{
    const string Sales = "[" +
        "{\"Region\":\"East\",\"Customer\":\"Acme Corp\",\"Amount\":1450.00}," +
        "{\"Region\":\"East\",\"Customer\":\"Blue Harbor\",\"Amount\":600.00}," +
        "{\"Region\":\"North\",\"Customer\":\"Nordic Labs\",\"Amount\":2100.75}," +
        "{\"Region\":\"North\",\"Customer\":\"Fjord Ltd\",\"Amount\":880.20}]";
    const string Total = "[FormatFloat('#,0.00', Sum(Sales.Amount))]";

    public static void Export(string aFolder)
    {
        using (TsgcReportJSONSource oSales = new TsgcReportJSONSource())
        using (TsgcReportBuilder oBuilder = new TsgcReportBuilder())
        {
            oSales.SourceName = "Sales";
            oSales.JSON = Sales;
            oBuilder.Title("Sales by region").Author("eSeGeCe").Units(TsgcReportUnits.ruMillimeters)
                .Style("Base").Font("Arial", 10).EndStyle()
                .Style("Group").Font("Arial", 11).Bold().BackColor(0xEEEEEE).EndStyle()
                .Page().Paper(TsgcReportPaperSize.rpsA4).Margins(15)
                // one header per region, one line per sale, a subtotal per region
                .GroupHeader("Sales.Region", 9).Style("Group")
                .Text("Region: [Sales.Region]", 0, 1, 180, 7)
                .TagRole(TsgcReportTagRole.rtrHeading2).EndBand()
                .MasterData("Sales", 6).Style("Base")
                .Text("[Sales.Customer]", 2, 0, 120, 6)
                .Text("[Sales.Amount]", 130, 0, 50, 6).AlignRight().Format("#,0.00").EndBand()
                .GroupFooter(9).Style("Base")
                .Text("Region total " + Total, 80, 1, 100, 6).AlignRight().Bold().EndBand()
                .EndPage().Data(oSales);
            // accessible PDF (PDF/UA is on by default), plus the same data as Excel
            oBuilder.SaveToPDF(Path.Combine(aFolder, "sales.pdf"));
            oBuilder.SaveToXLSX(Path.Combine(aFolder, "sales.xlsx"));
            oBuilder.SaveToCSV(Path.Combine(aFolder, "sales.csv"));
        }
    }
}
dotnet add package esegece.sgcReports

Het helponderwerp lezen →

Probeer de sgcReports-demo's uit

Bij sgcReports worden tien Delphi-demo's, acht C++ Builder-demo's en tien .NET-demo's geleverd. De kaarten hieronder zijn de Delphi-projecten; de meeste hebben een C++ Builder- en een .NET-tegenhanger met dezelfde naam.

ReportInvoice

ReportInvoice

Een master-detailfactuur uit datasets: kop, regels, totalen en een QR-code, in het voorbeeld en als PDF.

ReportGroups

ReportGroups

Verkoop gegroepeerd per regio met groepskoppen, subtotalen en een eindtotaal in de samenvattingsband.

ReportFluent

ReportFluent

Een compleet rapport geschreven met de fluent builder en daarna naar elk formaat geëxporteerd.

ReportJSONDefinition

ReportJSONDefinition

Bewerk een JSON-definitie en de bijbehorende gegevens in twee memo's en render haar, met fouten die naar het JSON-pad wijzen.

ReportPDFUA

ReportPDFUA

Getagde PDF/UA-1-uitvoer met alternatieve tekst en koprollen, klaar voor een veraPDF-controle.

ReportExports

ReportExports

Eén voorbereid rapport geschreven als PDF-, XLSX-, CSV- en PNG-bestanden.

ReportDatabaseSQL

ReportDatabaseSQL

Een rapport gevoed door SQL-query's via dataset-bronnen.

ReportMobileFMX

Het FireMonkey-voorbeeld met paginanavigatie. Het FireMonkey-voorbeeld draait op Windows.

ReportLinuxDaemon

Een consoledaemon voor Windows en Linux64 die JSON-opdrachten uit de wachtrij rendert met een pool van workerthreads.

Alleen geregistreerd ReportHTTPServer

Rapporten geserveerd via HTTP met de browserviewer, parameters en downloads. Vereist sgcWebSockets en sgcHTML.

Gecompileerde demo's

Direct uitvoerbare programma's van elk sgcUI-product, zonder installatie.

sgcUI_bin.zip downloaden →

Waar sgcReports in zit

sgcReports zit in sgcUI Enterprise en wordt ook los verkocht. Het gebruikt de sgcPDF-engine voor PDF-uitvoer en barcodes, dus sgcPDF is in elke configuratie vereist. sgcReports zit ook in de All-Access-bundel.

sgcReports los pakket

€199 / ontwikkelaar, volledige broncode, 1 jaar updates.

sgcReports kopen → Prijzen bekijken →

sgcUI Enterprise

Alle 14 sgcUI-producten, vanaf €699.

Enterprise bekijken →

De gratis .NET Community-pakketten (esegece.sgcReports.Community, .WinForms.Community, .HTML.Community, .AspNetCore.Community) bevatten de engine, de exports en het voorbeeld. In Delphi biedt het Community-installatieprogramma sgcReports alleen aan als een gelicentieerde sgcPDF is geïnstalleerd. De sgcReportsHTML-bridge voor Delphi en C++ Builder is alleen Registered.

FunctieCommunity (gratis)Geregistreerd
Fluent builder, rapportmodel en JSON-definities✓✓
Banden, groepen, master-detail en expressies✓✓
Barcodes✓✓
PDF/UA- en PDF/A-3-export✓✓
XLSX-, CSV- en PNG-export✓✓
WinForms-voorbeeld✓✓
Headless engine voor services en Linux✓✓
sgcReportsHTML-bridge voor Delphi en C++ Builder (HTTP-endpoint, viewer, webontwerper)−✓

Ondersteunde frameworks en platformen

Componenten in sgcReports

Engine en model

TsgcReport, TsgcReportEngine en de fluent TsgcReportBuilder.

Gegevensbronnen

TsgcReportDataSetSource, TsgcReportJSONSource en TsgcReportEventSource.

Exports

TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport en TsgcReportImageExport.

Voorbeeld

TsgcReportPreviewVCL en TsgcReportPreviewFMX, het FireMonkey-voorbeeld dat op Windows draait.

sgcReportsHTML-bridge

TsgcReportHTTPEndpoint, TsgcReportHTMLViewer en TsgcReportHTMLDesigner. Vereist sgcWebSockets Professional of hoger en sgcHTML. Registered

.NET

Dezelfde klassenamen in de namespace esegece.sgcReports: de builder, de bronnen, de engine en de exports.

DoelComponentPlatformen
Delphi 7 tot 13Model, expressies, gegevens, lay-out, engine en exportsWindows, Linux64, macOS, iOS en Android
C++ Builder 2007 tot 13Dezelfde klassenGegenereerde .hpp-headers en statische bibliotheken
VCL-voorbeeldTsgcReportPreviewVCLWindows
FireMonkey-voorbeeldTsgcReportPreviewFMXWindows
.NETBuilder, bronnen, engine, exports en het WinForms-voorbeeldWindows, plus headless gebruik op Linux

Veelgestelde vragen

Ja, altijd. sgcReports schrijft PDF en tekent barcodes met de sgcPDF-engine. sgcUI Enterprise bevat beide. In het Delphi Community-installatieprogramma wordt sgcReports alleen aangeboden als een gelicentieerde sgcPDF is geïnstalleerd. De PDF-engine tekent ook de getagde structuur van toegankelijke PDF-bestanden.

Ja, in de browser. TsgcReportHTMLDesigner uit de sgcReportsHTML-bridge bewerkt JSON-rapportdefinities met een bandencanvas, een eigenschappeninspecteur en een live voorbeeld. In code dekken de fluent builder en JSON-definities hetzelfde model. Opgeslagen definities laden in desktoptoepassingen, services en daemons.

Ja. De kern heeft geen VCL- of FireMonkey-afhankelijkheid en geen externe DLL, dus de engine en de exports draaien in Linux64-consoletoepassingen en daemons. De ReportLinuxDaemon-demo en het onderwerp Linux-daemon bevatten een systemd-unit. Dezelfde code draait ook in Windows-services.

PDF (standaard getagde PDF/UA-1, PDF/A-3 op verzoek), XLSX, CSV en PNG-pagina's. Ze werken allemaal vanuit dezelfde voorbereide pagina's, dus een rapport wordt één keer voorbereid en zo vaak geëxporteerd als je nodig hebt. Elke export kan naar een bestand of naar een stream schrijven, voor webresponses en mailbijlagen.

Ja, met één engine per thread. Elke worker maakt zijn eigen rapport, engine, gegevensbronnen en exports, terwijl een fontmanager en een alleen-lezen JSON-definitie kunnen worden gedeeld. Het onderwerp Thread Safety toont het workerpoolpatroon. Een Windows-server kan ook bij het opstarten één keer sgcReportsConfigureForServer aanroepen voor veel threads.

Ja. Bewaar de rapportdefinities als JSON en laad ze tijdens runtime met sgcReportLoadFromJSON, zodat een nieuwe lay-out geen nieuwe build vereist. Gebruikers kunnen ze in de webontwerper bewerken, of je toepassing kan ze genereren. Fouten bij het laden noemen het JSON-pad van het foute lid, wat klantspecifieke lay-outs makkelijk te ondersteunen maakt.

Ja. TsgcReportPreviewVCL toont de voorbereide pagina's met navigatie, zoom- en aanpasmodi. TsgcReportPreviewFMX is het FireMonkey-voorbeeld op Windows, en .NET heeft een WinForms-voorbeeld. Het voorbeeld tekent via de sgcPDF-viewercontrol, dus het scherm komt overeen met de PDF-export.

sgcReports help

3,000+Ontwikkelaars
20+Jaar
761+Componenten
30+API-integraties
5Platformen
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Probeer sgcReports vandaag

De sgcUI-proefversie bevat sgcReports, sgcPDF en alle andere sgcUI-producten.