Delphi, C++ Builder i .NET Część sgcUI

sgcReports, silnik raportów dla Delphi, C++ Builder i .NET

Zaprojektuj raport raz i dostarcz go jako dostępny PDF, plik Excel, CSV lub strony PNG. Zbuduj go w kodzie płynnym łańcuchem albo wczytaj definicję JSON w czasie działania, z grupami, podsumowaniami, master detail i kodami kreskowymi. Silnik nie potrzebuje okna ani zewnętrznej biblioteki DLL, więc działa w usługach i demonach Linux64.

Domyślnie oznaczony PDF/UA-1PDF, XLSX, CSV i PNGUsługi Windows i Linux64W sgcUI Enterprise
Okno podglądu sgcReports ze stroną faktury i kodem QR

Wszystko, czego potrzebuje silnik raportów

Jedenaście funkcji, każda z prawdziwym API i tematem pomocy.

Zaprojektuj raport

Opisz raport w kodzie lub w JSON, z prawdziwymi pasmami, grupami i wyrażeniami.

Napisz kompletny raport w kilku czytelnych liniach

Zaprojektuj raport

Napisz kompletny raport w kilku czytelnych liniach

Projektanci raportów są świetni, dopóki układ nie musi żyć w kontroli wersji, być recenzowany w pull requeście lub generowany z twoich własnych metadanych. TsgcReportBuilder opisuje style, strony, pasma i elementy jako jeden płynny łańcuch, więc raport to zwykły kod, który się kompiluje, porównuje i refaktoryzuje razem z resztą twojego projektu. Ten sam łańcuch przygotowuje raport i zapisuje go do każdego formatu wyjściowego. Tak zbudowane raporty można generować w pętli, współdzielić jako funkcje i pokrywać testami jednostkowymi jak każdy inny kod.

  • Style, Page, GroupHeader, MasterData, GroupFooter i PageFooter czyta się jak układ
  • SaveToPDF, SaveToXLSX, SaveToCSV i SaveToPNG prosto z buildera
  • Warianty strumieniowe, takie jak SaveToPDFStream, dla odpowiedzi webowych
  • Builder wypełnia zwykły model TsgcReport, który nadal możesz dostosować w kodzie
  • Od prawej do lewej dla arabskiego i hebrajskiego: RightToLeft na raporcie i BiDiMode na pasmach i elementach odbijają układ lustrzanie, a tekst arabski i hebrajski jest kształtowany w wyjściach PDF, XLSX i HTML
Przeczytaj temat pomocy
Grupy, podsumowania i numery stron, które po prostu działają

Zaprojektuj raport

Grupy, podsumowania i numery stron, które po prostu działają

Raporty biznesowe rzadko są płaską listą: sprzedaż według regionu, faktury według klienta, stany według magazynu. sgcReports ma prawdziwy układ pasmowy z pasmami tytułu raportu, nagłówka strony, nagłówka grupy, danych, stopki grupy, stopki strony i podsumowania. Grupa łamie się, gdy zmienia się jej wyrażenie, drukuje własne sumy i może zaczynać nową stronę lub powtarzać nagłówek na każdej stronie, więc długie raporty pozostają czytelne. Podraporty pozwalają jednej stronie włączyć układ innej, dla podsumowań i załączników.

  • GroupExpression w paśmie nagłówka grupy, zagnieżdżone grupy dla dwóch lub więcej poziomów
  • StartNewPage, RepeatOnEveryPage i KeepTogether sterują przepływem stron
  • Typy pasm od rbtReportTitle do rbtReportSummary, a także nagłówki i stopki kolumn
  • TotalPages w wyrażeniach dla stopek "Strona 2 z 7"
  • PrintOnFirstPage i PrintOnLastPage decydują, gdzie pojawiają się pasma strony; SubreportPageName osadza inną stronę
Przeczytaj temat pomocy
Faktury prosto z twojej bazy danych

Zaprojektuj raport

Faktury prosto z twojej bazy danych

Faktura to rekord główny z liniami, a każda linia potrzebuje właściwego produktu, ilości i ceny. Źródło zbioru danych wiąże dowolny TDataSet, w tym FireDAC, i łączy źródło szczegółów z głównym przez pola klucza, więc każda faktura drukuje własne linie i sumy. Tablice JSON i twoje własne źródła zdarzeniowe działają tak samo, gdy dane nie są w bazie danych. Pasmo szczegółów powtarza się dla każdej linii bieżącego rekordu głównego, a stopka drukuje sumę faktury wyrażeniem agregującym po liniach.

  • TsgcReportDataSetSource z MasterSource, MasterFields i DetailFields
  • TsgcReportJSONSource czyta ciąg JSON lub plik, RecordsPath wybiera tablicę
  • TsgcReportEventSource pobiera wiersze z twojego kodu przez OnFirst, OnNext i OnGetValue
  • Źródła rejestruje się w silniku przez AddDataSource
Przeczytaj temat pomocy
Zmieniaj raport bez ponownej kompilacji

Zaprojektuj raport

Zmieniaj raport bez ponownej kompilacji

Nowa kolumna w wyciągu miesięcznym nie powinna wymagać nowego wydania twojej aplikacji. Definicje raportów można zapisywać i wczytywać z JSON, więc układy mogą żyć w bazie danych, folderze konfiguracji lub katalogu specyficznym dla klienta. Aplikacja wczytuje definicję w czasie działania, wiąże dane i renderuje je, a ten sam plik zasila projektanta webowego. Definicje to zwykły tekst, więc czysto się porównują w kontroli wersji i mogą być generowane twoimi narzędziami lub migrowane skryptem.

  • sgcReportLoadFromJSON i sgcReportSaveToJSON, a także warianty plikowe i strumieniowe
  • sgcReportGenerateSchema zapisuje schemat JSON dla edytorów i walidacji
  • Błędy wskazują ścieżkę JSON wadliwego elementu
  • Demo ReportJSONDefinition edytuje definicję i jej dane obok siebie
Przeczytaj temat pomocy
Wyrażenia i kody kreskowe w każdym paśmie

Zaprojektuj raport

Wyrażenia i kody kreskowe w każdym paśmie

Sumy, sformatowane daty, tekst warunkowy i etykiety wysyłkowe sprowadzają się do wyrażeń i kodów kreskowych. Każdy element tekstowy może zawierać wyrażenia w nawiasach, na przykład sformatowaną sumę pola, z wbudowanymi funkcjami tekstowymi, liczbowymi i datowymi. Kody kreskowe to też elementy, rysowane wektorowo przez silnik sgcPDF, więc etykiety i dokumenty dostawy drukują się ostro w każdym rozmiarze. Wyrażenia są obliczane przez silnik dla każdego wiersza, więc suma w stopce zawsze zgadza się z liniami wydrukowanymi powyżej.

  • Agregaty i funkcje: Sum, FormatFloat, FormatDateTime, Upper, Round, IsNull
  • OnGetVariable dostarcza twoje własne zmienne w czasie działania
  • Barcode w builderze z rbsCode128, rbsEAN13, rbsQRCode, rbsDataMatrix, rbsPDF417 i innymi
  • GS1-128, ITF, Codabar, UPC-A i Code 39 dla etykiet logistycznych
Przeczytaj temat pomocy

Dostarcz go gdziekolwiek

Przygotuj raz, a potem eksportuj do formatów, o które proszą użytkownicy i regulatorzy.

Domyślnie dostępny PDF, PDF/A na żądanie

Dostarcz go gdziekolwiek

Domyślnie dostępny PDF, PDF/A na żądanie

Organy publiczne i wiele firm musi dziś publikować dokumenty, za którymi mogą podążać czytniki ekranu, a archiwa potrzebują plików, które otworzą się jeszcze za dwadzieścia lat. Eksport PDF domyślnie zapisuje oznaczony PDF/UA-1, z logiczną kolejnością czytania, tekstem alternatywnym dla obrazów i oznaczonymi nagłówkami. Włącz PDF/A-3, gdy dokument trafia do archiwum długoterminowego. W Delphi i .NET eksport zapisuje także PDF/A-4 i PDF/UA-2. Czcionki są osadzane przez ten sam menedżer czcionek, którego używa podgląd, a pomoc przeprowadza przez walidację pliku bezpłatnym narzędziem veraPDF.

  • PDFUA jest domyślnie True w TsgcReportPDFExport
  • AltText i TagRole w elementach opisują obrazy i nagłówki
  • PDFA ustawione na rpaA3b lub rpaA3a dla wyjścia archiwalnego
  • FixedDocumentID i FixedCreationDate czynią wynik powtarzalnym bajt po bajcie na potrzeby testów
Przeczytaj temat pomocy
Jeden raport, każdy format, o który proszą użytkownicy

Dostarcz go gdziekolwiek

Jeden raport, każdy format, o który proszą użytkownicy

Dział finansów chce wyciąg w Excelu, klient PDF, integracja CSV, a strona webowa miniaturę. Silnik przygotowuje strony raz, a każdy eksport działa na tym samym przygotowanym wyniku, więc liczby są identyczne w każdym pliku. Wyjście XLSX zachowuje liczby jako liczby, więc arkusz może je sumować bez czyszczenia. Każdy eksport może też zapisywać do strumienia, czego potrzebuje odpowiedź webowa lub załącznik poczty, a SaveToFiles zapisuje kilka formatów jednym wywołaniem.

  • TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport
  • TsgcReportPreparedPages z LoadPrepared zasila kilka eksportów z jednego przebiegu
  • DetectNumbers, SheetName i ExcludePageBands kształtują arkusz
  • Strony PNG w DPI, które przekażesz do SaveToPNG
Przeczytaj temat pomocy
Okno podglądu dla aplikacji desktopowych

Dostarcz go gdziekolwiek

Okno podglądu dla aplikacji desktopowych

Użytkownicy chcą przekartkować raport, zanim go wydrukują lub zapiszą. Kontrolka podglądu pokazuje przygotowane strony tym samym renderowaniem co PDF, z nawigacją po stronach, powiększaniem i trybami dopasowania oraz paskiem narzędzi, który możesz ukryć, gdy budujesz własny. Podgląd VCL działa w systemie Windows; podgląd FireMonkey działa w systemie Windows. Podgląd rysuje przez kontrolkę przeglądarki sgcPDF, więc to, co użytkownicy widzą na ekranie, jest tym, co zapisuje eksport PDF, a SaveToPDF w podglądzie zapisuje strony, które oglądają.

  • TsgcReportPreviewVCL z FirstPage, NextPage, PriorPage i LastPage
  • ZoomIn, ZoomOut, FitWidth i FitPage
  • ShowToolbar, CurrentPage i OnPageChange dla własnej nawigacji
  • TsgcReportPreviewFMX: podgląd FireMonkey w systemie Windows
Przeczytaj temat pomocy

Dostarcz go gdziekolwiek

Działa bez interfejsu w usługach i demonach Linux

Większość raportów jest dziś generowana na serwerze: nocne wyciągi, faktury po zakupie, eksporty za API. Rdzeń sgcReports nie zależy od VCL ani FireMonkey i nie potrzebuje zewnętrznej biblioteki DLL ani sterownika drukarki, więc ten sam kod działa w usłudze Windows lub demonie Linux64. Pomoc opisuje wzorzec puli wątków roboczych, w którym każdy wątek ma własny silnik. Zadania, dane i definicje raportów mogą przychodzić jako pliki JSON, więc demona może zasilać każdy system, który potrafi zapisać plik.

  • TsgcReportEngine przygotowuje raporty bez okna
  • Demo ReportLinuxDaemon obserwuje folder zadań i renderuje PDF, XLSX, CSV lub PNG z 4 wątkami roboczymi
  • sgcReportsConfigureForServer dostraja menedżer pamięci dla wielu wątków w systemie Windows
  • Wspólny, tylko do odczytu TsgcReportFontManager obsługuje każdy wątek
Przeczytaj temat pomocy

Raporty w sieci

Most sgcReportsHTML udostępnia raporty przez HTTP i pozwala użytkownikom edytować układy w przeglądarce.

Raporty w sieci Tylko zarejestrowana

Udostępniaj raporty przez HTTP

Portal webowy, intranet lub aplikacja mobilna często potrzebuje po prostu adresu URL, który zwraca raport. Punkt końcowy HTTP rejestruje raporty po nazwie na serwerze HTTP sgcWebSockets i udostępnia je jako PDF, XLSX, CSV lub PNG, z przeglądarką HTML, która pyta o parametry, przegląda stronami wynik i oferuje pobieranie. Twój kod wypełnia dane w zdarzeniu przed każdym uruchomieniem. Punkt końcowy używa tych samych definicji raportów i źródeł danych co twój kod desktopowy, więc raport napisany raz obsługuje i aplikację, i przeglądarkę.

  • TsgcReportHTTPEndpoint z RegisterReport i BasePath
  • OnBeforePrepare ustawia parametry i dane dla każdego żądania
  • TsgcReportHTMLViewer z ShowParameters dla formularza parametrów
  • Działa na TsgcWebSocketHTTPServer; demo ReportHTTPServer to kompletny serwer

Delphi i C++ Builder: wymaga sgcWebSockets Professional lub wyższego oraz sgcHTML. .NET: pakiety esegece.sgcReports.HTML i AspNetCore hostują te same trasy.

Przeczytaj temat pomocy

Raporty w sieci Tylko zarejestrowana

Webowy projektant raportów dla twoich użytkowników

Zaawansowani użytkownicy zawsze chcą jeszcze jednej kolumny lub innego grupowania, a każda zmiana była zgłoszeniem dla programistów. Projektant w przeglądarce edytuje definicję JSON raportu z płótnem pasm, inspektorem właściwości i podglądem na żywo, serwowany przez ten sam punkt końcowy co gotowy raport. Ty decydujesz, kto może edytować, a zapisane definicje wczytują się w każdej innej części sgcReports. Przycisk Download JSON przekazuje definicję każdemu, kto chce ją zachować.

  • TsgcReportHTMLDesigner w punkcie końcowym z DesignerEnabled
  • Drzewo stron, pasm i elementów, przeciąganie, zmiana rozmiaru i przyciąganie w milimetrach, cofanie i ponawianie
  • Inspektor właściwości generowany ze schematu JSON raportu; walidacja po stronie serwera wskazuje pole
  • Zapisane definicje wczytują się przez sgcReportLoadFromJSON wszędzie, także w demonie Linux

Pozostaw DesignerEnabled wyłączone w punktach końcowych produkcyjnych i umieść go za własnym uwierzytelnianiem.

Przeczytaj temat pomocy

Zobacz sgcReports w akcji

sgcReports w demach pakietu sgcUI: kompletne aplikacje działające offline na wbudowanych danych symulowanych.

Kto buduje z sgcReports

Faktury, dokumenty dostawy i wyciągi

Aplikacje branżowe drukują dokumenty ze swojej bazy danych codziennie. Źródło zbioru danych z master detail łączy każdą fakturę z jej liniami, grupy i stopki drukują sumy, kod QR lub kod kreskowy GS1-128 trafia na etykietę, a eksport PDF zapisuje dostępny plik gotowy do wysłania e-mailem. Ten sam raport zapisuje się do XLSX dla działu księgowości.

  • Master detail
  • Grupy i podsumowania
  • Kody kreskowe
  • Dostępny PDF
Uruchom demo ReportInvoice

Raporty po stronie serwera dla portali webowych

Portale klientów i wewnętrzne API potrzebują raportów na żądanie. Zarejestruj raporty w punkcie końcowym HTTP, a przeglądarka dostaje przeglądarkę z parametrami i pobieraniem, albo uruchom silnik w demonie Linux64, który renderuje zadania z kolejki pulą wątków roboczych. Nie ma w tym sterownika drukarki, okna ani zewnętrznej biblioteki DLL. Te same definicje JSON obsługują przeglądarkę i demona.

  • Udostępniaj raporty przez HTTP
  • Demon Linux
  • Definicje JSON
Uruchom demo ReportHTTPServer

Obowiązki dostępności i archiwizacji

Dostawcy sektora publicznego i firmy regulowane muszą publikować dokumenty, za którymi mogą podążać czytniki ekranu, i archiwizować je przez lata. Oznaczony PDF/UA-1 jest domyślnym wyjściem, tekst alternatywny i role nagłówków są w elementach raportu, a PDF/A-3 jest o jedną właściwość dalej. Pomoc pokazuje, jak sprawdzić wynik bezpłatnym walidatorem veraPDF. Powtarzalne wyniki pomagają testom automatycznym porównywać pliki.

  • Dostępny PDF
  • PDF/A-3
  • Powtarzalne wyniki
Uruchom demo ReportPDFUA

Raport sprzedaży z grupowaniem w kilku linijkach

To samo API w Delphi, C++ Builder i C#: nagłówek dla każdego regionu, linia dla każdej sprzedaży i podsumowanie regionu, zapisane jako PDF, XLSX i CSV.

Płynny raport na źródle JSON: jedna grupa na region z podsumowaniem, zapisany jako PDF, XLSX i 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;

Przeczytaj temat pomocy →

Ten sam raport w C++ Builder z wygenerowanymi nagłówkami sgcReports.

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

Przeczytaj temat pomocy →

Ten sam łańcuch buildera w C#, z tymi samymi nazwami klas co w 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

Przeczytaj temat pomocy →

Uruchom dema sgcReports

Z sgcReports dostarczanych jest dziesięć dem Delphi, osiem dem C++ Builder i dziesięć dem .NET. Poniższe karty to projekty Delphi; większość ma odpowiednik w C++ Builder i .NET o tej samej nazwie.

ReportInvoice

ReportInvoice

Faktura master detail ze zbiorów danych: nagłówek, linie, sumy i kod QR, w podglądzie i jako PDF.

ReportGroups

ReportGroups

Sprzedaż pogrupowana według regionu z nagłówkami grup, podsumowaniami i sumą końcową w paśmie podsumowania.

ReportFluent

ReportFluent

Kompletny raport napisany płynnym builderem, a potem wyeksportowany do każdego formatu.

ReportJSONDefinition

ReportJSONDefinition

Edytuj definicję JSON i jej dane w dwóch polach memo i wyrenderuj ją, z błędami wskazującymi ścieżkę JSON.

ReportPDFUA

ReportPDFUA

Oznaczone wyjście PDF/UA-1 z tekstem alternatywnym i rolami nagłówków, gotowe do sprawdzenia w veraPDF.

ReportExports

ReportExports

Jeden przygotowany raport zapisany jako pliki PDF, XLSX, CSV i PNG.

ReportDatabaseSQL

ReportDatabaseSQL

Raport zasilany zapytaniami SQL przez źródła zbiorów danych.

ReportMobileFMX

Podgląd FireMonkey z nawigacją po stronach. Podgląd FireMonkey działa w systemie Windows.

ReportLinuxDaemon

Demon konsolowy dla Windows i Linux64, który renderuje zadania JSON z kolejki pulą wątków roboczych.

Tylko zarejestrowana ReportHTTPServer

Raporty udostępniane przez HTTP z przeglądarką, parametrami i pobieraniem. Wymaga sgcWebSockets i sgcHTML.

Skompilowane dema

Gotowe do uruchomienia pliki wykonywalne każdego produktu sgcUI, nic nie trzeba instalować.

Pobierz sgcUI_bin.zip →

Gdzie jest sgcReports

sgcReports jest w sgcUI Enterprise i jest też sprzedawany osobno. Używa silnika sgcPDF do wyjścia PDF i kodów kreskowych, więc sgcPDF jest wymagany w każdej konfiguracji. sgcReports jest też zawarty w pakiecie All-Access.

Pojedynczy pakiet sgcReports

€199 / programista, pełny kod źródłowy, 1 rok aktualizacji.

Kup sgcReports → Zobacz cennik →

sgcUI Enterprise

Wszystkie produkty sgcUI (14), od €699.

Zobacz Enterprise →

Bezpłatne pakiety .NET Community (esegece.sgcReports.Community, .WinForms.Community, .HTML.Community, .AspNetCore.Community) zawierają silnik, eksporty i podgląd. W Delphi instalator Community oferuje sgcReports tylko wtedy, gdy zainstalowany jest licencjonowany sgcPDF. Most sgcReportsHTML dla Delphi i C++ Builder jest tylko w edycji Registered.

FunkcjaCommunity (bezpłatna)Zarejestrowana
Płynny builder, model raportu i definicje JSON✓✓
Pasma, grupy, master detail i wyrażenia✓✓
Kody kreskowe✓✓
Eksport PDF/UA i PDF/A-3✓✓
Eksport XLSX, CSV i PNG✓✓
Podgląd WinForms✓✓
Silnik bez interfejsu dla usług i systemu Linux✓✓
Most sgcReportsHTML dla Delphi i C++ Builder (punkt końcowy HTTP, przeglądarka, projektant webowy)−✓

Obsługiwane frameworki i platformy

Komponenty w sgcReports

Silnik i model

TsgcReport, TsgcReportEngine i płynny TsgcReportBuilder.

Źródła danych

TsgcReportDataSetSource, TsgcReportJSONSource i TsgcReportEventSource.

Eksporty

TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport i TsgcReportImageExport.

Podgląd

TsgcReportPreviewVCL i TsgcReportPreviewFMX, podgląd FireMonkey działający w systemie Windows.

Most sgcReportsHTML

TsgcReportHTTPEndpoint, TsgcReportHTMLViewer i TsgcReportHTMLDesigner. Wymaga sgcWebSockets Professional lub wyższego oraz sgcHTML. Registered

.NET

Te same nazwy klas w przestrzeni nazw esegece.sgcReports: builder, źródła, silnik i eksporty.

CelKomponentPlatformy
Delphi 7 do 13Model, wyrażenia, dane, układ, silnik i eksportyWindows, Linux64, macOS, iOS i Android
C++ Builder 2007 do 13Te same klasyWygenerowane nagłówki .hpp i biblioteki statyczne
Podgląd VCLTsgcReportPreviewVCLWindows
Podgląd FireMonkeyTsgcReportPreviewFMXWindows
.NETBuilder, źródła, silnik, eksporty i podgląd WinFormsWindows oraz użycie bez interfejsu w systemie Linux

Najczęściej zadawane pytania

Tak, zawsze. sgcReports zapisuje PDF i rysuje kody kreskowe silnikiem sgcPDF. sgcUI Enterprise zawiera oba. W instalatorze Delphi Community sgcReports jest oferowany tylko wtedy, gdy zainstalowany jest licencjonowany sgcPDF. Silnik PDF rysuje też oznaczoną strukturę dostępnych plików PDF.

Tak, w przeglądarce. TsgcReportHTMLDesigner z mostu sgcReportsHTML edytuje definicje raportów JSON z płótnem pasm, inspektorem właściwości i podglądem na żywo. W kodzie płynny builder i definicje JSON obejmują ten sam model. Zapisane definicje wczytują się w aplikacjach desktopowych, usługach i demonach.

Tak. Rdzeń nie zależy od VCL ani FireMonkey i nie potrzebuje zewnętrznej biblioteki DLL, więc silnik i eksporty działają w aplikacjach konsolowych i demonach Linux64. Demo ReportLinuxDaemon i temat o demonie Linux zawierają jednostkę systemd. Ten sam kod działa też w usługach Windows.

PDF (domyślnie oznaczony PDF/UA-1, PDF/A-3 na żądanie), XLSX, CSV i strony PNG. Wszystkie działają na tych samych przygotowanych stronach, więc raport przygotowuje się raz i eksportuje tyle razy, ile potrzebujesz. Każdy eksport może zapisywać do pliku lub do strumienia, dla odpowiedzi webowych i załączników poczty.

Tak, z jednym silnikiem na wątek. Każdy wątek roboczy tworzy własny raport, silnik, źródła danych i eksporty, a menedżer czcionek i definicję JSON tylko do odczytu można współdzielić. Temat Bezpieczeństwo wątkowe pokazuje wzorzec puli wątków roboczych. Serwer Windows może też raz przy starcie wywołać sgcReportsConfigureForServer dla wielu wątków.

Tak. Przechowuj definicje raportów jako JSON i wczytuj je w czasie działania przez sgcReportLoadFromJSON, więc nowy układ nie wymaga nowej kompilacji. Użytkownicy mogą je edytować w projektancie webowym albo twoja aplikacja może je generować. Błędy podczas wczytywania wskazują ścieżkę JSON wadliwego elementu, co ułatwia obsługę układów specyficznych dla klienta.

Tak. TsgcReportPreviewVCL pokazuje przygotowane strony z nawigacją, powiększaniem i trybami dopasowania. TsgcReportPreviewFMX to podgląd FireMonkey w systemie Windows, a .NET ma podgląd WinForms. Podgląd rysuje przez kontrolkę przeglądarki sgcPDF, więc ekran odpowiada eksportowi PDF.

Pomoc sgcReports

3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wypróbuj sgcReports już dziś

Wersja próbna sgcUI zawiera sgcReports, sgcPDF i każdy inny produkt sgcUI.