Delphi, C++ Builder & .NET Parte di sgcUI

sgcReports, il motore di report per Delphi, C++ Builder & .NET

Progetta un report una sola volta e consegnalo come PDF accessibile, file Excel, CSV o pagine PNG. Costruiscilo nel codice con una catena fluente o carica una definizione JSON a runtime, con gruppi, subtotali, master detail e codici a barre. Il motore non richiede finestre né DLL esterne, quindi gira in servizi e daemon Linux64.

PDF taggato PDF/UA-1 per impostazione predefinitaPDF, XLSX, CSV e PNGServizi Windows e Linux64Incluso in sgcUI Enterprise
Finestra di anteprima di sgcReports con una pagina di fattura e un codice QR

Tutto ciò che serve a un motore di report

Undici funzionalità, ciascuna con l'API reale e l'argomento della guida che la descrive.

Progetta il report

Descrivi un report nel codice o in JSON, con vere bande, gruppi ed espressioni.

Scrivi un report completo in poche righe leggibili

Progetta il report

Scrivi un report completo in poche righe leggibili

I designer di report vanno benissimo finché il layout non deve vivere nel controllo di versione, essere rivisto in una pull request o essere generato dai tuoi metadati. TsgcReportBuilder descrive stili, pagine, bande ed elementi come un'unica catena fluente, quindi un report è semplice codice che si compila, si confronta e si rifattorizza insieme al resto del progetto. La stessa catena prepara il report e lo salva in ogni formato di output. I report costruiti così si possono generare in un ciclo, condividere come funzioni e coprire con unit test come qualsiasi altro codice.

  • Style, Page, GroupHeader, MasterData, GroupFooter e PageFooter si leggono come il layout
  • SaveToPDF, SaveToXLSX, SaveToCSV e SaveToPNG direttamente dal builder
  • Varianti stream come SaveToPDFStream per le risposte web
  • Il builder riempie un normale modello TsgcReport che puoi ancora modificare nel codice
  • Da destra a sinistra per arabo ed ebraico: RightToLeft sul report e BiDiMode su bande ed elementi specchiano il layout, con testo arabo ed ebraico modellato nelle uscite PDF, XLSX e HTML
Leggi l'argomento della guida
Gruppi, subtotali e numeri di pagina che funzionano e basta

Progetta il report

Gruppi, subtotali e numeri di pagina che funzionano e basta

I report aziendali raramente sono un elenco piatto: vendite per regione, fatture per cliente, giacenze per magazzino. sgcReports ha un vero layout a bande con titolo del report, intestazione di pagina, intestazione di gruppo, dati, piè di gruppo, piè di pagina e bande di riepilogo. Un gruppo si interrompe quando cambia la sua espressione, stampa i propri totali e può iniziare una nuova pagina o ripetere la sua intestazione su ogni pagina, così i report lunghi restano leggibili. I sottoreport permettono a una pagina di includere il layout di un'altra, per riepiloghi e appendici.

  • GroupExpression su una banda di intestazione di gruppo, gruppi annidati per due o più livelli
  • StartNewPage, RepeatOnEveryPage e KeepTogether controllano il flusso delle pagine
  • Tipi di banda da rbtReportTitle a rbtReportSummary, più intestazioni e piè di colonna
  • TotalPages nelle espressioni per i piè di pagina "Pagina 2 di 7"
  • PrintOnFirstPage e PrintOnLastPage decidono dove compaiono le bande di pagina; SubreportPageName incorpora un'altra pagina
Leggi l'argomento della guida
Fatture direttamente dal tuo database

Progetta il report

Fatture direttamente dal tuo database

Una fattura è un record master con le sue righe, e ogni riga ha bisogno del prodotto, della quantità e del prezzo giusti. Una sorgente dataset collega qualsiasi TDataSet, FireDAC incluso, e collega una sorgente di dettaglio al suo master tramite campi chiave, così ogni fattura stampa le proprie righe e i propri totali. Gli array JSON e le tue sorgenti guidate da eventi funzionano allo stesso modo quando i dati non vivono in un database. La banda di dettaglio si ripete per ogni riga del record master corrente, e il piè di pagina stampa il totale della fattura con un'espressione di aggregazione sulle righe.

  • TsgcReportDataSetSource con MasterSource, MasterFields e DetailFields
  • TsgcReportJSONSource legge una stringa o un file JSON, RecordsPath sceglie l'array
  • TsgcReportEventSource preleva righe dal tuo codice tramite OnFirst, OnNext e OnGetValue
  • Le sorgenti si registrano sul motore con AddDataSource
Leggi l'argomento della guida
Cambia un report senza ricompilare

Progetta il report

Cambia un report senza ricompilare

Una nuova colonna nell'estratto conto mensile non dovrebbe richiedere una nuova versione della tua applicazione. Le definizioni dei report si possono salvare e caricare da JSON, quindi i layout possono vivere in un database, in una cartella di configurazione o in una directory specifica per cliente. L'applicazione carica la definizione a runtime, collega i dati e la renderizza, e lo stesso file alimenta il designer web. Le definizioni sono testo semplice, quindi si confrontano bene nel controllo di versione e si possono generare con i tuoi strumenti o migrare con uno script.

  • sgcReportLoadFromJSON e sgcReportSaveToJSON, più le varianti per file e stream
  • sgcReportGenerateSchema scrive uno schema JSON per editor e validazione
  • Gli errori indicano il percorso JSON del membro errato
  • La demo ReportJSONDefinition modifica una definizione e i suoi dati affiancati
Leggi l'argomento della guida
Espressioni e codici a barre in qualsiasi banda

Progetta il report

Espressioni e codici a barre in qualsiasi banda

Totali, date formattate, testo condizionale ed etichette di spedizione si riducono a espressioni e codici a barre. Qualsiasi elemento di testo può contenere espressioni tra parentesi, come una somma formattata di un campo, con funzioni su stringhe, numeri e date già incluse. Anche i codici a barre sono elementi, disegnati come vettori dal motore sgcPDF, così etichette e bolle di consegna si stampano nitide a qualsiasi dimensione. Le espressioni sono valutate dal motore per ogni riga, quindi il totale nel piè di pagina corrisponde sempre alle righe stampate sopra.

  • Aggregati e funzioni: Sum, FormatFloat, FormatDateTime, Upper, Round, IsNull
  • OnGetVariable fornisce le tue variabili a runtime
  • Barcode nel builder con rbsCode128, rbsEAN13, rbsQRCode, rbsDataMatrix, rbsPDF417 e altri
  • GS1-128, ITF, Codabar, UPC-A e Code 39 per le etichette logistiche
Leggi l'argomento della guida

Consegnalo ovunque

Prepara una volta, poi esporta nei formati richiesti dai tuoi utenti e dagli enti di regolamentazione.

PDF accessibile per impostazione predefinita, PDF/A su richiesta

Consegnalo ovunque

PDF accessibile per impostazione predefinita, PDF/A su richiesta

Gli enti pubblici e molte aziende oggi devono pubblicare documenti che gli screen reader riescono a seguire, e gli archivi hanno bisogno di file che si aprano ancora fra vent'anni. L'esportazione PDF scrive per impostazione predefinita PDF/UA-1 taggato, con un ordine di lettura logico, testo alternativo per le immagini e titoli marcati. Attiva PDF/A-3 quando il documento va in un archivio a lungo termine. In Delphi e .NET, l’esportazione scrive anche PDF/A-4 e PDF/UA-2. I font sono incorporati tramite lo stesso gestore di font usato dall'anteprima, e la guida spiega come convalidare un file con lo strumento gratuito veraPDF.

  • PDFUA è True per impostazione predefinita su TsgcReportPDFExport
  • AltText e TagRole sugli elementi descrivono immagini e titoli
  • PDFA impostato su rpaA3b o rpaA3a per l'output di archivio
  • FixedDocumentID e FixedCreationDate rendono l'output riproducibile byte per byte per i test
Leggi l'argomento della guida
Un report, ogni formato richiesto dai tuoi utenti

Consegnalo ovunque

Un report, ogni formato richiesto dai tuoi utenti

L'amministrazione vuole l'estratto conto in Excel, il cliente vuole un PDF, l'integrazione vuole un CSV e la pagina web vuole una miniatura. Il motore prepara le pagine una volta sola e ogni esportazione lavora dallo stesso risultato preparato, quindi i numeri sono identici in ogni file. L'output XLSX mantiene i numeri come numeri, così il foglio di calcolo può sommarli senza pulizie. Ogni esportazione può anche scrivere su uno stream, che è ciò che serve a una risposta web o a un allegato di posta, e SaveToFiles scrive più formati con una sola chiamata.

  • TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport
  • TsgcReportPreparedPages con LoadPrepared alimenta più esportazioni da una sola esecuzione
  • DetectNumbers, SheetName e ExcludePageBands modellano il foglio di calcolo
  • Pagine PNG al DPI che passi a SaveToPNG
Leggi l'argomento della guida
Una finestra di anteprima per le applicazioni desktop

Consegnalo ovunque

Una finestra di anteprima per le applicazioni desktop

Gli utenti vogliono sfogliare un report prima di stamparlo o salvarlo. Il controllo di anteprima mostra le pagine preparate con lo stesso rendering del PDF, con navigazione tra le pagine, modalità di zoom e adattamento e una toolbar che puoi nascondere quando costruisci la tua. L'anteprima VCL funziona su Windows; l'anteprima FireMonkey funziona su Windows. L'anteprima disegna tramite il controllo viewer di sgcPDF, quindi ciò che gli utenti vedono a schermo è ciò che scrive l'esportazione PDF, e SaveToPDF sull'anteprima salva le pagine che stanno guardando.

  • TsgcReportPreviewVCL con FirstPage, NextPage, PriorPage e LastPage
  • ZoomIn, ZoomOut, FitWidth e FitPage
  • ShowToolbar, CurrentPage e OnPageChange per la tua navigazione
  • TsgcReportPreviewFMX: anteprima FireMonkey su Windows
Leggi l'argomento della guida

Consegnalo ovunque

Gira headless in servizi e daemon Linux

Oggi la maggior parte dei report viene generata su un server: estratti conto notturni, fatture dopo il checkout, esportazioni dietro un'API. Il core di sgcReports non ha dipendenze da VCL o FireMonkey e non richiede DLL esterne né driver di stampa, quindi lo stesso codice gira in un servizio Windows o in un daemon Linux64. La guida documenta un pattern a pool di worker in cui ogni thread possiede il proprio motore. Lavori, dati e definizioni dei report possono arrivare come file JSON, quindi un daemon può essere alimentato da qualsiasi sistema in grado di scrivere un file.

  • TsgcReportEngine prepara i report senza finestra
  • La demo ReportLinuxDaemon controlla una cartella di lavori e genera PDF, XLSX, CSV o PNG con 4 thread worker
  • sgcReportsConfigureForServer ottimizza il gestore della memoria per molti thread su Windows
  • Un TsgcReportFontManager condiviso e in sola lettura serve ogni thread
Leggi l'argomento della guida

Report sul web

Il ponte sgcReportsHTML serve i report via HTTP e permette agli utenti di modificare i layout nel browser.

Report sul web Solo Registered

Servi i report via HTTP

Un portale web, una intranet o un'app mobile spesso hanno bisogno solo di un URL che restituisca il report. L'endpoint HTTP registra i report per nome su un server HTTP sgcWebSockets e li serve come PDF, XLSX, CSV o PNG, con un visualizzatore HTML che chiede i parametri, scorre il risultato e offre i download. Il tuo codice riempie i dati in un evento prima di ogni esecuzione. L'endpoint usa le stesse definizioni di report e le stesse sorgenti dati del tuo codice desktop, quindi un report scritto una volta serve sia l'applicazione sia il browser.

  • TsgcReportHTTPEndpoint con RegisterReport e BasePath
  • OnBeforePrepare imposta parametri e dati per ogni richiesta
  • TsgcReportHTMLViewer con ShowParameters per un modulo di parametri
  • Gira su TsgcWebSocketHTTPServer; la demo ReportHTTPServer è un server completo

Delphi e C++ Builder: richiede sgcWebSockets Professional o superiore e sgcHTML. .NET: i pacchetti esegece.sgcReports.HTML e AspNetCore ospitano le stesse route.

Leggi l'argomento della guida

Report sul web Solo Registered

Un designer di report web per i tuoi utenti

Gli utenti esperti vogliono sempre una colonna in più o un raggruppamento diverso, e ogni modifica era un ticket per gli sviluppatori. Il designer nel browser modifica la definizione JSON di un report con una tela a bande, un ispettore delle proprietà e un'anteprima live, servito dallo stesso endpoint del report finito. Decidi tu chi può modificare, e le definizioni salvate si caricano in ogni altra parte di sgcReports. Un pulsante Download JSON consegna la definizione a chi vuole conservarla.

  • TsgcReportHTMLDesigner su un endpoint con DesignerEnabled
  • Albero di pagine, bande ed elementi, trascinamento, ridimensionamento e aggancio in millimetri, annulla e ripeti
  • Ispettore delle proprietà generato dallo schema JSON del report; la validazione lato server indica il campo
  • Le definizioni salvate si caricano con sgcReportLoadFromJSON ovunque, compreso il daemon Linux

Lascia DesignerEnabled disattivato sugli endpoint di produzione e mettilo dietro la tua autenticazione.

Leggi l'argomento della guida

Guarda sgcReports all'opera

sgcReports nelle demo della suite sgcUI: applicazioni complete che funzionano offline con dati simulati integrati.

Chi sviluppa con sgcReports

Fatture, bolle di consegna ed estratti conto

Le applicazioni gestionali stampano ogni giorno documenti dal loro database. Una sorgente dataset con master detail collega ogni fattura alle sue righe, i gruppi e i piè di pagina stampano i totali, un codice QR o un codice a barre GS1-128 va sull'etichetta e l'esportazione PDF scrive un file accessibile pronto da inviare per email. Lo stesso report si salva in XLSX per il team di contabilità.

  • Master detail
  • Gruppi e subtotali
  • Codici a barre
  • PDF accessibile
Esegui la demo ReportInvoice

Report lato server per portali web

I portali clienti e le API interne hanno bisogno di report su richiesta. Registra i report sull'endpoint HTTP e il browser riceve un visualizzatore con parametri e download, oppure esegui il motore in un daemon Linux64 che genera i lavori in coda con un pool di worker. Non servono driver di stampa, finestre né DLL esterne. Le stesse definizioni JSON servono il visualizzatore e il daemon.

  • Servi i report via HTTP
  • Daemon Linux
  • Definizioni JSON
Esegui la demo ReportHTTPServer

Obblighi di accessibilità e archiviazione

I fornitori del settore pubblico e le aziende regolamentate devono pubblicare documenti che gli screen reader riescono a seguire e archiviarli per anni. L'output PDF/UA-1 taggato è quello predefinito, il testo alternativo e i ruoli dei titoli vivono sugli elementi del report, e PDF/A-3 è a una proprietà di distanza. La guida mostra come verificare il risultato con il validatore gratuito veraPDF. L'output riproducibile aiuta i test automatici a confrontare i file.

  • PDF accessibile
  • PDF/A-3
  • Output riproducibile
Esegui la demo ReportPDFUA

Un report vendite raggruppato in poche righe

La stessa API in Delphi, C++ Builder e C#: un'intestazione per regione, una riga per vendita e un subtotale per regione, salvato come PDF, XLSX e CSV.

Un report fluente su una sorgente JSON: un gruppo per regione con un subtotale, salvato come PDF, XLSX e 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;

Leggi l'argomento della guida →

Lo stesso report in C++ Builder con gli header di sgcReports generati.

#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;
  }
}

Leggi l'argomento della guida →

La stessa catena del builder in C#, con gli stessi nomi di classe di 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

Leggi l'argomento della guida →

Esegui le demo di sgcReports

Con sgcReports sono incluse dieci demo Delphi, otto demo C++ Builder e dieci demo .NET. Le card qui sotto sono i progetti Delphi; la maggior parte ha un gemello C++ Builder e uno .NET con lo stesso nome.

ReportInvoice

ReportInvoice

Una fattura master detail da dataset: intestazione, righe, totali e un codice QR, nell'anteprima e come PDF.

ReportGroups

ReportGroups

Vendite raggruppate per regione con intestazioni di gruppo, subtotali e un totale generale nella banda di riepilogo.

ReportFluent

ReportFluent

Un report completo scritto con il builder fluente, poi esportato in ogni formato.

ReportJSONDefinition

ReportJSONDefinition

Modifica una definizione JSON e i suoi dati in due memo e renderizzala, con errori che indicano il percorso JSON.

ReportPDFUA

ReportPDFUA

Output PDF/UA-1 taggato con testo alternativo e ruoli dei titoli, pronto per un controllo veraPDF.

ReportExports

ReportExports

Un report preparato scritto come file PDF, XLSX, CSV e PNG.

ReportDatabaseSQL

ReportDatabaseSQL

Un report alimentato da query SQL tramite sorgenti dataset.

ReportMobileFMX

L'anteprima FireMonkey con navigazione tra le pagine. L'anteprima FireMonkey funziona su Windows.

ReportLinuxDaemon

Un daemon console per Windows e Linux64 che genera lavori JSON in coda con un pool di thread worker.

Solo Registered ReportHTTPServer

Report serviti via HTTP con visualizzatore nel browser, parametri e download. Richiede sgcWebSockets e sgcHTML.

Demo compilate

Eseguibili pronti all'uso di ogni prodotto sgcUI, senza nulla da installare.

Scarica sgcUI_bin.zip →

Dove è incluso sgcReports

sgcReports fa parte di sgcUI Enterprise ed è venduto anche separatamente. Usa il motore sgcPDF per l'output PDF e i codici a barre, quindi sgcPDF è richiesto in ogni configurazione. sgcReports è incluso anche nel bundle All-Access.

sgcReports come pacchetto singolo

€199 / sviluppatore, codice sorgente completo, 1 anno di aggiornamenti.

Acquista sgcReports → Vedi i prezzi →

sgcUI Enterprise

Tutti i 14 prodotti sgcUI, da €699.

Vedi Enterprise →

I pacchetti .NET Community gratuiti (esegece.sgcReports.Community, .WinForms.Community, .HTML.Community, .AspNetCore.Community) includono il motore, le esportazioni e l'anteprima. In Delphi, l'installer Community offre sgcReports solo quando è installato un sgcPDF con licenza. Il ponte sgcReportsHTML per Delphi e C++ Builder è solo Registered.

FunzionalitàCommunity (gratuita)Registered
Builder fluente, modello del report e definizioni JSON✓✓
Bande, gruppi, master detail ed espressioni✓✓
Codici a barre✓✓
Esportazione PDF/UA e PDF/A-3✓✓
Esportazione XLSX, CSV e PNG✓✓
Anteprima WinForms✓✓
Motore headless per servizi e Linux✓✓
Ponte sgcReportsHTML per Delphi e C++ Builder (endpoint HTTP, visualizzatore, designer web)−✓

Framework e piattaforme supportati

Componenti di sgcReports

Motore e modello

TsgcReport, TsgcReportEngine e il TsgcReportBuilder fluente.

Sorgenti dati

TsgcReportDataSetSource, TsgcReportJSONSource e TsgcReportEventSource.

Esportazioni

TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport e TsgcReportImageExport.

Anteprima

TsgcReportPreviewVCL e TsgcReportPreviewFMX, l'anteprima FireMonkey che gira su Windows.

Ponte sgcReportsHTML

TsgcReportHTTPEndpoint, TsgcReportHTMLViewer e TsgcReportHTMLDesigner. Richiede sgcWebSockets Professional o superiore e sgcHTML. Registered

.NET

Gli stessi nomi di classe nel namespace esegece.sgcReports: il builder, le sorgenti, il motore e le esportazioni.

DestinazioneComponentePiattaforme
Da Delphi 7 a 13Modello, espressioni, dati, layout, motore ed esportazioniWindows, Linux64, macOS, iOS e Android
C++ Builder da 2007 a 13Le stesse classiHeader .hpp generati e librerie statiche
Anteprima VCLTsgcReportPreviewVCLWindows
Anteprima FireMonkeyTsgcReportPreviewFMXWindows
.NETBuilder, sorgenti, motore, esportazioni e anteprima WinFormsWindows, più uso headless su Linux

Domande frequenti

Sì, sempre. sgcReports scrive PDF e disegna i codici a barre con il motore sgcPDF. sgcUI Enterprise li include entrambi. Nell'installer Delphi Community sgcReports viene offerto solo quando è installato un sgcPDF con licenza. Il motore PDF è anche ciò che disegna la struttura taggata dei file PDF accessibili.

Sì, nel browser. TsgcReportHTMLDesigner del ponte sgcReportsHTML modifica le definizioni JSON dei report con una tela a bande, un ispettore delle proprietà e un'anteprima live. Nel codice, il builder fluente e le definizioni JSON coprono lo stesso modello. Le definizioni salvate si caricano allo stesso modo in applicazioni desktop, servizi e daemon.

Sì. Il core non ha dipendenze da VCL o FireMonkey né DLL esterne, quindi il motore e le esportazioni girano in applicazioni console e daemon Linux64. La demo ReportLinuxDaemon e l'argomento sul daemon Linux includono un'unità systemd. Lo stesso codice gira anche nei servizi Windows.

PDF (PDF/UA-1 taggato per impostazione predefinita, PDF/A-3 su richiesta), XLSX, CSV e pagine PNG. Tutti lavorano dalle stesse pagine preparate, quindi un report si prepara una volta sola e si esporta quante volte serve. Ogni esportazione può scrivere su un file o su uno stream, per risposte web e allegati di posta.

Sì, con un motore per thread. Ogni worker crea il proprio report, motore, sorgenti dati ed esportazioni, mentre un gestore di font e una definizione JSON in sola lettura possono essere condivisi. L'argomento Thread Safety mostra il pattern del pool di worker. Un server Windows può anche chiamare sgcReportsConfigureForServer una volta all'avvio per molti thread.

Sì. Memorizza le definizioni dei report come JSON e caricale a runtime con sgcReportLoadFromJSON, così un nuovo layout non richiede una nuova build. Gli utenti possono modificarle nel designer web, oppure la tua applicazione può generarle. Gli errori durante il caricamento indicano il percorso JSON del membro errato, il che rende facile supportare i layout specifici per cliente.

Sì. TsgcReportPreviewVCL mostra le pagine preparate con navigazione, zoom e modalità di adattamento. TsgcReportPreviewFMX è l'anteprima FireMonkey su Windows, e .NET ha un'anteprima WinForms. L'anteprima disegna tramite il controllo viewer di sgcPDF, quindi lo schermo corrisponde all'esportazione PDF.

Guida di sgcReports

3,000+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Prova sgcReports oggi

Il trial di sgcUI include sgcReports, sgcPDF e ogni altro prodotto sgcUI.