TsgcHTMLReport
Bandbasierte Berichte als PDF
Die Engine hinter dem Viewer ist eine eigene nicht visuelle Komponente. Sie schreibt das PDF mit TsgcHTMLExportPDF, der PDF-Engine von sgcHTML, und derselbe Bericht kann auch als Excel-Tabelle geschrieben werden.
Bänder
Ein Berichtskopf, Seitenköpfe, verschachtelte Gruppen mit Kopf- und Fußzeilen, Detailzeilen, Seitenfüße und ein Berichtsfuß. Gruppenköpfe können sich auf jeder neuen Seite wiederholen, KeepTogether hält eine Gruppe auf einer Seite, NewPageBefore und NewPageAfter erzwingen Seitenumbrüche, und ein Berichtskopf mit NewPageAfter ist ein Deckblatt.
Elemente
Bänder enthalten Text, Bilder, Linien, Rechtecke, Diagramme, Rich-Text, Barcodes, QR-Codes und Unterberichte. Text wird an seinem Rahmen abgeschnitten, und Elemente mit AutoHeight vergrößern das Band passend zum umgebrochenen Text.
Ausdrücke und PrintIf
Texte enthalten Ausdrücke in [ ]: Felder mit Maske wie [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] von [Pages], [Param.Name] und [GroupValue]. Bänder und Elemente werden nur gedruckt, wenn ihre PrintIf-Bedingung wahr ist, etwa Amount > 1000.
Datenquellen
Die Zeilen kommen aus einem DataSet, einem Grid, einem JSON-Array in RowsJSON oder dem Ereignis OnGetRow. LoadFromGrid baut einen Tabellenbericht aus den Spalten eines TsgcHTMLComponent_Grid, mit den Überschriften auf jeder Seite, Zebrastreifen, den Summen der numerischen Spalten und Seitenzahlen.
Diagramme, Barcodes und QR-Codes
Ein Diagrammelement zeichnet die Zeilen seines Bands als Vektorgrafik: Balken, horizontale Balken, gestapelte Balken, Linie, Fläche, Kreis oder Ring, ein Diagramm pro Gruppe in einem Gruppenband. ChartSource druckt eine TsgcHTMLComponent_Chart so, wie die Webseite sie zeigt. Barcode-Elemente zeichnen Code 128, und QR-Code-Elemente verwenden die Fehlerkorrekturstufe M.
Unterberichte und Rich-Text
Ein Unterbericht-Element druckt einen anderen Bericht in seinem Band, etwa die Positionen einer Bestellung, über LinkFields mit der Hauptzeile verknüpft, bis zu 5 Ebenen tief, und setzt sich auf den nächsten Seiten fort. Ein Rich-Text-Element druckt HTML und fließt mit AutoHeight nach den Seitenköpfen über Seiten.
Schriften und Sprachen
Elemente werden standardmäßig mit den Base-14-Schriften gedruckt, die die Zeichen von Windows-1252 enthalten. Registrieren Sie TrueType-Schriften in Fonts, um Kyrillisch, Griechisch, Arabisch, Hebräisch, Chinesisch, Japanisch, Koreanisch oder Symbole zu drucken. Nur die gedruckten Glyphen werden eingebettet, und FallbackFonts und AutoFallback decken die Zeichen ab, die einer Schrift fehlen.
Überall dieselbe Ausgabe
Zahlen und Datumsangaben werden mit DecimalSeparator, ThousandSeparator, DateFormat und TimeFormat des Berichts gedruckt, nie mit den Regionaleinstellungen des Rechners, sodass ein Bericht auf jedem Computer und unter .NET gleich gedruckt wird. Mit einem festen CreationDate ergibt dieselbe Eingabe dieselben PDF-Bytes.
Definition als JSON
SaveToJSON schreibt Seiteneinrichtung, Schriften, Bänder, Elemente und Parameter, und LoadFromJSON liest sie wieder ein, nachdem es die gesamte Definition validiert hat, mit dem JSON-Pfad jedes Fehlers. Benutzer entwerfen Berichte im Browser mit dem Report Designer, und ein Doppelklick auf den Bericht öffnet denselben Designer in der Delphi-IDE.
Ein Bericht, viele Anfragen
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX und HasData bauen jeweils ihre eigene Kopie der Zeilen und des Layouts. Ein Bericht bedient mehrere Anfragen eines Webservers gleichzeitig, jede mit eigenen Parametern gefiltert, ohne eigenes Lock.