Delphi, C++ Builder & .NET Fait partie de sgcUI

sgcReports, le moteur de rapports pour Delphi, C++ Builder & .NET

Conçois un rapport une fois et livre-le sous forme de PDF accessible, de fichier Excel, de CSV ou de pages PNG. Construis-le en code avec une chaîne fluent ou charge une définition JSON à l'exécution, avec groupes, sous-totaux, maître-détail et codes-barres. Le moteur n'a besoin ni de fenêtre ni de DLL externe, donc il fonctionne dans les services et les démons Linux64.

PDF balisé PDF/UA-1 par défautPDF, XLSX, CSV et PNGServices Windows et Linux64Inclus dans sgcUI Enterprise
Fenêtre d'aperçu de sgcReports avec une page de facture et un code QR

Tout ce dont un moteur de rapports a besoin

Onze fonctionnalités, chacune avec l'API réelle et la rubrique d'aide correspondante.

Concevoir le rapport

Décris un rapport en code ou en JSON, avec de vraies bandes, des groupes et des expressions.

Écris un rapport complet en quelques lignes lisibles

Concevoir le rapport

Écris un rapport complet en quelques lignes lisibles

Les concepteurs de rapports sont formidables, jusqu'à ce que la mise en page doive vivre dans le contrôle de version, être relue dans une pull request ou être générée à partir de tes propres métadonnées. TsgcReportBuilder décrit les styles, les pages, les bandes et les éléments sous forme d'une seule chaîne fluent, donc un rapport est du code ordinaire qui se compile, se compare et se refactorise avec le reste de ton projet. La même chaîne prépare le rapport et l'enregistre dans tous les formats de sortie. Les rapports construits ainsi peuvent être générés dans une boucle, partagés sous forme de fonctions et couverts par des tests unitaires comme n'importe quel autre code.

  • Style, Page, GroupHeader, MasterData, GroupFooter et PageFooter se lisent comme la mise en page
  • SaveToPDF, SaveToXLSX, SaveToCSV et SaveToPNG directement depuis le constructeur
  • Des variantes de flux comme SaveToPDFStream pour les réponses web
  • Le constructeur remplit un modèle TsgcReport ordinaire que tu peux encore ajuster en code
  • De droite à gauche pour l'arabe et l'hébreu : RightToLeft sur l'état et BiDiMode sur les bandes et les éléments mettent la disposition en miroir, avec un texte arabe et hébreu mis en forme dans les sorties PDF, XLSX et HTML
Lire la rubrique d'aide
Des groupes, des sous-totaux et des numéros de page qui fonctionnent tout simplement

Concevoir le rapport

Des groupes, des sous-totaux et des numéros de page qui fonctionnent tout simplement

Les rapports de gestion sont rarement une liste à plat : ventes par région, factures par client, stock par entrepôt. sgcReports offre une vraie mise en page par bandes avec titre du rapport, en-tête de page, en-tête de groupe, données, pied de groupe, pied de page et bandes de synthèse. Un groupe se rompt quand son expression change, imprime ses propres totaux et peut commencer une nouvelle page ou répéter son en-tête sur chaque page, pour que les longs rapports restent lisibles. Les sous-rapports permettent à une page d'inclure la mise en page d'une autre, pour des synthèses et des annexes.

  • GroupExpression sur une bande d'en-tête de groupe, groupes imbriqués sur deux niveaux ou plus
  • StartNewPage, RepeatOnEveryPage et KeepTogether contrôlent le flux des pages
  • Types de bandes de rbtReportTitle à rbtReportSummary, plus les en-têtes et pieds de colonnes
  • TotalPages dans les expressions pour des pieds de page « Page 2 sur 7 »
  • PrintOnFirstPage et PrintOnLastPage décident où apparaissent les bandes de page ; SubreportPageName intègre une autre page
Lire la rubrique d'aide
Des factures directement depuis ta base de données

Concevoir le rapport

Des factures directement depuis ta base de données

Une facture est un enregistrement maître avec ses lignes, et chaque ligne a besoin du bon produit, de la bonne quantité et du bon prix. Une source de jeu de données lie n'importe quel TDataSet, FireDAC compris, et relie une source de détail à son maître par des champs clés, donc chaque facture imprime ses propres lignes et ses totaux. Les tableaux JSON et tes propres sources pilotées par événements fonctionnent de la même façon quand les données ne sont pas dans une base. La bande de détail se répète pour chaque ligne de l'enregistrement maître courant, et le pied imprime le total de la facture avec une expression d'agrégat sur les lignes.

  • TsgcReportDataSetSource avec MasterSource, MasterFields et DetailFields
  • TsgcReportJSONSource lit une chaîne ou un fichier JSON, RecordsPath choisit le tableau
  • TsgcReportEventSource récupère des lignes depuis ton code via OnFirst, OnNext et OnGetValue
  • Les sources sont enregistrées sur le moteur avec AddDataSource
Lire la rubrique d'aide
Change un rapport sans recompiler

Concevoir le rapport

Change un rapport sans recompiler

Une nouvelle colonne sur le relevé mensuel ne devrait pas exiger une nouvelle version de ton application. Les définitions de rapports peuvent être enregistrées et chargées en JSON, donc les mises en page peuvent vivre dans une base de données, un dossier de configuration ou un répertoire propre à un client. L'application charge la définition à l'exécution, lie les données et la restitue, et le même fichier alimente le concepteur web. Les définitions sont du texte brut, donc elles se comparent proprement dans le contrôle de version et peuvent être générées par tes propres outils ou migrées avec un script.

  • sgcReportLoadFromJSON et sgcReportSaveToJSON, plus des variantes fichier et flux
  • sgcReportGenerateSchema écrit un schéma JSON pour les éditeurs et la validation
  • Les erreurs nomment le chemin JSON du membre fautif
  • La démo ReportJSONDefinition modifie une définition et ses données côte à côte
Lire la rubrique d'aide
Expressions et codes-barres dans n'importe quelle bande

Concevoir le rapport

Expressions et codes-barres dans n'importe quelle bande

Les totaux, les dates formatées, le texte conditionnel et les étiquettes d'expédition se résument à des expressions et des codes-barres. Tout élément texte peut contenir des expressions entre crochets, comme une somme formatée d'un champ, avec des fonctions de chaînes, de nombres et de dates intégrées. Les codes-barres sont aussi des éléments, dessinés en vectoriel par le moteur sgcPDF, donc les étiquettes et les bons de livraison s'impriment nets à toutes les tailles. Les expressions sont évaluées par le moteur pour chaque ligne, donc un total de pied de page correspond toujours aux lignes imprimées au-dessus.

  • Agrégats et fonctions : Sum, FormatFloat, FormatDateTime, Upper, Round, IsNull
  • OnGetVariable fournit tes propres variables à l'exécution
  • Barcode dans le constructeur avec rbsCode128, rbsEAN13, rbsQRCode, rbsDataMatrix, rbsPDF417 et plus
  • GS1-128, ITF, Codabar, UPC-A et Code 39 pour les étiquettes logistiques
Lire la rubrique d'aide

Livre-le partout

Prépare une fois, puis exporte vers les formats que demandent tes utilisateurs et les autorités.

PDF accessible par défaut, PDF/A sur demande

Livre-le partout

PDF accessible par défaut, PDF/A sur demande

Les organismes publics et de nombreuses entreprises doivent désormais publier des documents que les lecteurs d'écran savent suivre, et les archives ont besoin de fichiers qui s'ouvrent encore dans vingt ans. L'export PDF écrit du PDF/UA-1 balisé par défaut, avec un ordre de lecture logique, un texte alternatif pour les images et des titres balisés. Active PDF/A-3 quand le document part vers une archive à long terme. Dans Delphi et .NET, l’export écrit aussi du PDF/A-4 et du PDF/UA-2. Les polices sont incorporées via le même gestionnaire de polices que l'aperçu, et l'aide explique comment valider un fichier avec l'outil gratuit veraPDF.

  • PDFUA vaut True par défaut sur TsgcReportPDFExport
  • AltText et TagRole sur les éléments décrivent les images et les titres
  • PDFA défini sur rpaA3b ou rpaA3a pour une sortie d'archivage
  • FixedDocumentID et FixedCreationDate rendent la sortie reproductible octet par octet pour les tests
Lire la rubrique d'aide
Un rapport, tous les formats que tes utilisateurs demandent

Livre-le partout

Un rapport, tous les formats que tes utilisateurs demandent

La finance veut le relevé dans Excel, le client veut un PDF, l'intégration veut un CSV et la page web veut une vignette. Le moteur prépare les pages une fois et chaque export travaille à partir du même résultat préparé, donc les chiffres sont identiques dans chaque fichier. La sortie XLSX garde les nombres comme des nombres, pour que le tableur puisse les additionner sans nettoyage. Chaque export peut aussi écrire dans un flux, ce dont une réponse web ou une pièce jointe a besoin, et SaveToFiles écrit plusieurs formats en un seul appel.

  • TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport
  • TsgcReportPreparedPages avec LoadPrepared alimente plusieurs exports à partir d'une seule exécution
  • DetectNumbers, SheetName et ExcludePageBands façonnent le tableur
  • Pages PNG au DPI que tu passes à SaveToPNG
Lire la rubrique d'aide
Une fenêtre d'aperçu pour les applications de bureau

Livre-le partout

Une fenêtre d'aperçu pour les applications de bureau

Les utilisateurs veulent feuilleter un rapport avant de l'imprimer ou de l'enregistrer. Le contrôle d'aperçu affiche les pages préparées avec le même rendu que le PDF, avec navigation entre les pages, zoom et modes d'ajustement, et une barre d'outils que tu peux masquer quand tu construis la tienne. L'aperçu VCL fonctionne sous Windows ; l'aperçu FireMonkey fonctionne sous Windows. L'aperçu dessine via le contrôle visionneuse sgcPDF, donc ce que les utilisateurs voient à l'écran est ce que l'export PDF écrit, et SaveToPDF sur l'aperçu enregistre les pages qu'ils regardent.

  • TsgcReportPreviewVCL avec FirstPage, NextPage, PriorPage et LastPage
  • ZoomIn, ZoomOut, FitWidth et FitPage
  • ShowToolbar, CurrentPage et OnPageChange pour ta propre navigation
  • TsgcReportPreviewFMX : aperçu FireMonkey sous Windows
Lire la rubrique d'aide

Livre-le partout

Fonctionne sans interface dans les services et les démons Linux

La plupart des rapports sont aujourd'hui générés sur un serveur : relevés de nuit, factures après paiement, exports derrière une API. Le noyau de sgcReports n'a aucune dépendance envers VCL ou FireMonkey et n'a besoin d'aucune DLL externe ni pilote d'imprimante, donc le même code s'exécute dans un service Windows ou un démon Linux64. L'aide documente un modèle de pool de threads où chaque thread possède son propre moteur. Les tâches, les données et les définitions de rapports peuvent arriver sous forme de fichiers JSON, donc un démon peut être alimenté par n'importe quel système capable d'écrire un fichier.

  • TsgcReportEngine prépare les rapports sans fenêtre
  • La démo ReportLinuxDaemon surveille un dossier de tâches et génère du PDF, XLSX, CSV ou PNG avec 4 threads de travail
  • sgcReportsConfigureForServer règle le gestionnaire de mémoire pour de nombreux threads sous Windows
  • Un TsgcReportFontManager partagé en lecture seule sert tous les threads
Lire la rubrique d'aide

Des rapports sur le web

La passerelle sgcReportsHTML sert les rapports en HTTP et permet aux utilisateurs de modifier les mises en page dans le navigateur.

Des rapports sur le web Enregistrée uniquement

Sers des rapports en HTTP

Un portail web, un intranet ou une application mobile a souvent simplement besoin d'une URL qui renvoie le rapport. Le point de terminaison HTTP enregistre les rapports par nom sur un serveur HTTP sgcWebSockets et les sert en PDF, XLSX, CSV ou PNG, avec une visionneuse HTML qui demande les paramètres, feuillette le résultat et propose les téléchargements. Ton code remplit les données dans un événement avant chaque exécution. Le point de terminaison utilise les mêmes définitions de rapports et sources de données que ton code de bureau, donc un rapport écrit une fois sert l'application et le navigateur.

  • TsgcReportHTTPEndpoint avec RegisterReport et BasePath
  • OnBeforePrepare définit les paramètres et les données pour chaque requête
  • TsgcReportHTMLViewer avec ShowParameters pour un formulaire de paramètres
  • Fonctionne sur TsgcWebSocketHTTPServer ; la démo ReportHTTPServer est un serveur complet

Delphi et C++ Builder : exige sgcWebSockets Professional ou supérieur et sgcHTML. .NET : les paquets esegece.sgcReports.HTML et AspNetCore hébergent les mêmes routes.

Lire la rubrique d'aide

Des rapports sur le web Enregistrée uniquement

Un concepteur de rapports web pour tes utilisateurs

Les utilisateurs avancés veulent toujours une colonne de plus ou un autre regroupement, et chaque changement était un ticket pour les développeurs. Le concepteur du navigateur modifie la définition JSON d'un rapport avec un canevas de bandes, un inspecteur de propriétés et un aperçu en direct, servi par le même point de terminaison que le rapport terminé. Tu décides qui peut modifier, et les définitions enregistrées se chargent dans toutes les autres parties de sgcReports. Un bouton Télécharger JSON remet la définition à quiconque veut la conserver.

  • TsgcReportHTMLDesigner sur un point de terminaison avec DesignerEnabled
  • Arborescence des pages, bandes et éléments, glisser, redimensionner et aimanter en millimètres, annuler et rétablir
  • Inspecteur de propriétés généré à partir du schéma JSON du rapport ; la validation côté serveur désigne le champ
  • Les définitions enregistrées se chargent avec sgcReportLoadFromJSON partout, y compris dans le démon Linux

Laisse DesignerEnabled désactivé sur les points de terminaison de production et place-le derrière ta propre authentification.

Lire la rubrique d'aide

Découvre sgcReports en action

sgcReports dans les démos de la suite sgcUI : des applications complètes qui fonctionnent hors ligne avec des données simulées intégrées.

Qui construit avec sgcReports

Factures, bons de livraison et relevés

Les applications métier impriment tous les jours des documents à partir de leur base de données. Une source de jeu de données avec maître-détail relie chaque facture à ses lignes, les groupes et les pieds impriment les totaux, un code QR ou un code-barres GS1-128 va sur l'étiquette, et l'export PDF écrit un fichier accessible prêt à être envoyé par e-mail. Le même rapport s'enregistre en XLSX pour l'équipe comptable.

  • Maître-détail
  • Groupes et sous-totaux
  • Codes-barres
  • PDF accessible
Lance la démo ReportInvoice

Rapports côté serveur pour les portails web

Les portails clients et les API internes ont besoin de rapports à la demande. Enregistre les rapports sur le point de terminaison HTTP et le navigateur reçoit une visionneuse avec paramètres et téléchargements, ou exécute le moteur dans un démon Linux64 qui traite des tâches en file avec un pool de threads. Ni pilote d'imprimante, ni fenêtre, ni DLL externe ne sont impliqués. Les mêmes définitions JSON servent la visionneuse et le démon.

  • Servir des rapports en HTTP
  • Démon Linux
  • Définitions JSON
Lance la démo ReportHTTPServer

Obligations d'accessibilité et d'archivage

Les fournisseurs du secteur public et les entreprises réglementées doivent publier des documents que les lecteurs d'écran savent suivre et les archiver pendant des années. La sortie PDF/UA-1 balisée est la valeur par défaut, le texte alternatif et les rôles de titres vivent sur les éléments du rapport, et PDF/A-3 n'est qu'à une propriété de là. L'aide montre comment vérifier le résultat avec le validateur gratuit veraPDF. Une sortie reproductible aide les tests automatisés à comparer les fichiers.

  • PDF accessible
  • PDF/A-3
  • Sortie reproductible
Lance la démo ReportPDFUA

A Grouped Sales Report in a Few Lines

The same API in Delphi, C++ Builder and C#: a header per region, a line per sale and a subtotal per region, saved as PDF, XLSX and CSV.

A fluent report over a JSON source: one group per region with a subtotal, saved as PDF, XLSX and 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;

Lire la rubrique d'aide →

The same report in C++ Builder with the generated 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;
  }
}

Lire la rubrique d'aide →

The same builder chain in C#, with the same class names as 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

Lire la rubrique d'aide →

Lance les démos de sgcReports

Dix démos Delphi, huit démos C++ Builder et dix démos .NET sont livrées avec sgcReports. Les cartes ci-dessous sont les projets Delphi ; la plupart ont un équivalent C++ Builder et .NET du même nom.

ReportInvoice

ReportInvoice

Une facture maître-détail à partir de jeux de données : en-tête, lignes, totaux et code QR, dans l'aperçu et en PDF.

ReportGroups

ReportGroups

Ventes groupées par région avec en-têtes de groupe, sous-totaux et un total général dans la bande de synthèse.

ReportFluent

ReportFluent

Un rapport complet écrit avec le constructeur fluent, puis exporté dans tous les formats.

ReportJSONDefinition

ReportJSONDefinition

Modifie une définition JSON et ses données dans deux mémos et restitue-la, avec des erreurs qui désignent le chemin JSON.

ReportPDFUA

ReportPDFUA

Sortie PDF/UA-1 balisée avec texte alternatif et rôles de titres, prête pour une vérification veraPDF.

ReportExports

ReportExports

Un seul rapport préparé écrit en fichiers PDF, XLSX, CSV et PNG.

ReportDatabaseSQL

ReportDatabaseSQL

Un rapport alimenté par des requêtes SQL via des sources de jeux de données.

ReportMobileFMX

L'aperçu FireMonkey avec navigation entre les pages. L'aperçu FireMonkey fonctionne sous Windows.

ReportLinuxDaemon

Un démon console pour Windows et Linux64 qui traite des tâches JSON en file avec un pool de threads de travail.

Enregistrée uniquement ReportHTTPServer

Des rapports servis en HTTP avec la visionneuse du navigateur, les paramètres et les téléchargements. Exige sgcWebSockets et sgcHTML.

Démos compilées

Des exécutables prêts à lancer pour chaque produit sgcUI, rien à installer.

Télécharger sgcUI_bin.zip →

Où sgcReports est inclus

sgcReports fait partie de sgcUI Enterprise, et il est aussi vendu séparément. Il utilise le moteur sgcPDF pour la sortie PDF et les codes-barres, donc sgcPDF est requis dans toutes les configurations. sgcReports est aussi inclus dans le pack All-Access.

sgcReports, package seul

€199 / développeur, code source complet, 1 an de mises à jour.

Acheter sgcReports → Voir les tarifs →

sgcUI Enterprise

Les 14 produits sgcUI, à partir de €699.

Voir Enterprise →

Les paquets .NET Community gratuits (esegece.sgcReports.Community, .WinForms.Community, .HTML.Community, .AspNetCore.Community) incluent le moteur, les exports et l'aperçu. Dans Delphi, l'installateur Community ne propose sgcReports que lorsqu'un sgcPDF sous licence est installé. La passerelle sgcReportsHTML pour Delphi et C++ Builder est réservée à l'édition enregistrée.

FonctionnalitéCommunity (gratuite)Enregistrée
Fluent builder, report model and JSON definitions✓✓
Bands, groups, master detail and expressions✓✓
Barcodes✓✓
PDF/UA and PDF/A-3 export✓✓
XLSX, CSV and PNG export✓✓
WinForms preview✓✓
Headless engine for services and Linux✓✓
sgcReportsHTML bridge for Delphi and C++ Builder (HTTP endpoint, viewer, web designer)−✓

Frameworks et plateformes pris en charge

Composants de sgcReports

Moteur et modèle

TsgcReport, TsgcReportEngine et le TsgcReportBuilder fluent.

Sources de données

TsgcReportDataSetSource, TsgcReportJSONSource et TsgcReportEventSource.

Exports

TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport et TsgcReportImageExport.

Aperçu

TsgcReportPreviewVCL et TsgcReportPreviewFMX, l'aperçu FireMonkey fonctionnant sous Windows.

Passerelle sgcReportsHTML

TsgcReportHTTPEndpoint, TsgcReportHTMLViewer et TsgcReportHTMLDesigner. Elle exige sgcWebSockets Professional ou supérieur et sgcHTML. Enregistrée

.NET

Les mêmes noms de classes dans l'espace de noms esegece.sgcReports : le constructeur, les sources, le moteur et les exports.

CibleComposantPlateformes
Delphi 7 à 13Modèle, expressions, données, mise en page, moteur et exportsWindows, Linux64, macOS, iOS et Android
C++ Builder 2007 à 13Les mêmes classesEn-têtes .hpp générés et bibliothèques statiques
Aperçu VCLTsgcReportPreviewVCLWindows
Aperçu FireMonkeyTsgcReportPreviewFMXWindows
.NETConstructeur, sources, moteur, exports et l'aperçu WinFormsWindows, plus utilisation sans interface sous Linux

Foire aux questions

Oui, toujours. sgcReports écrit du PDF et dessine des codes-barres avec le moteur sgcPDF. sgcUI Enterprise inclut les deux. Dans l'installateur Delphi Community, sgcReports n'est proposé que lorsqu'un sgcPDF sous licence est installé. Le moteur PDF est aussi ce qui dessine la structure balisée des fichiers PDF accessibles.

Oui, dans le navigateur. TsgcReportHTMLDesigner, de la passerelle sgcReportsHTML, modifie les définitions de rapports JSON avec un canevas de bandes, un inspecteur de propriétés et un aperçu en direct. En code, le constructeur fluent et les définitions JSON couvrent le même modèle. Les définitions enregistrées se chargent aussi bien dans les applications de bureau que dans les services et les démons.

Oui. Le noyau n'a aucune dépendance envers VCL ou FireMonkey ni DLL externe, donc le moteur et les exports fonctionnent dans les applications console et les démons Linux64. La démo ReportLinuxDaemon et la rubrique sur le démon Linux incluent une unité systemd. Le même code fonctionne aussi dans les services Windows.

PDF (PDF/UA-1 balisé par défaut, PDF/A-3 sur demande), XLSX, CSV et pages PNG. Tous travaillent à partir des mêmes pages préparées, donc un rapport est préparé une fois et exporté autant de fois que nécessaire. Chaque export peut écrire dans un fichier ou dans un flux, pour les réponses web et les pièces jointes.

Oui, avec un moteur par thread. Chaque thread de travail crée son propre rapport, son moteur, ses sources de données et ses exports, tandis qu'un gestionnaire de polices et une définition JSON en lecture seule peuvent être partagés. La rubrique Sécurité des threads montre le modèle de pool de travail. Un serveur Windows peut aussi appeler sgcReportsConfigureForServer une fois au démarrage pour de nombreux threads.

Oui. Stocke les définitions de rapports en JSON et charge-les à l'exécution avec sgcReportLoadFromJSON, donc une nouvelle mise en page n'exige aucun nouveau build. Les utilisateurs peuvent les modifier dans le concepteur web, ou ton application peut les générer. Les erreurs de chargement nomment le chemin JSON du membre fautif, ce qui facilite le support des mises en page propres à un client.

Oui. TsgcReportPreviewVCL affiche les pages préparées avec navigation, zoom et modes d'ajustement. TsgcReportPreviewFMX est l'aperçu FireMonkey sous Windows, et .NET dispose d'un aperçu WinForms. L'aperçu dessine via le contrôle visionneuse sgcPDF, donc l'écran correspond à l'export PDF.

Aide de sgcReports

3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Essaie sgcReports dès aujourd'hui

L'essai sgcUI inclut sgcReports, sgcPDF et tous les autres produits sgcUI.