TsgcHTMLReport
Report a bande in PDF
Il motore dietro il viewer è un componente non visuale a sé stante. Scrive il PDF con TsgcHTMLExportPDF, il motore PDF di sgcHTML, e lo stesso report può essere scritto anche come foglio Excel.
Bande
Un'intestazione del report, intestazioni di pagina, gruppi annidati con intestazioni e piè di gruppo, righe di dettaglio, piè di pagina e un piè del report. Le intestazioni di gruppo possono ripetersi a ogni nuova pagina, KeepTogether mantiene un gruppo su una pagina, NewPageBefore e NewPageAfter inseriscono interruzioni di pagina, e un'intestazione del report con NewPageAfter è una copertina.
Elementi
Le bande contengono testo, immagini, linee, rettangoli, grafici, testo formattato, codici a barre, codici QR e sottoreport. Il testo viene ritagliato al suo riquadro, e gli elementi con AutoHeight fanno crescere la banda per adattarsi al testo a capo.
Espressioni e PrintIf
I testi contengono espressioni tra [ ]: campi con una maschera come [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] di [Pages], [Param.Name] e [GroupValue]. Le bande e gli elementi vengono stampati solo quando la loro condizione PrintIf è vera, come Amount > 1000.
Origini dati
Le righe provengono da un DataSet, un Grid, un array JSON in RowsJSON o dall'evento OnGetRow. LoadFromGrid costruisce un report a tabella con le colonne di un TsgcHTMLComponent_Grid, con le intestazioni su ogni pagina, righe zebrate, i totali delle colonne numeriche e i numeri di pagina.
Grafici, codici a barre e codici QR
Un elemento grafico disegna le righe della sua banda come grafica vettoriale: barre, barre orizzontali, barre impilate, linee, aree, torta o ciambella, un grafico per gruppo in una banda di gruppo. ChartSource stampa un TsgcHTMLComponent_Chart così come lo mostra la pagina web. Gli elementi codice a barre disegnano Code 128, e gli elementi codice QR usano il livello di correzione degli errori M.
Un elemento sottoreport stampa un altro report dentro la sua banda, come le righe di un ordine, collegato alla riga principale tramite LinkFields, fino a 5 livelli di profondità, e continua nelle pagine successive. Un elemento di testo formattato stampa HTML e, con AutoHeight, scorre sulle pagine dopo le intestazioni di pagina.
Font e lingue
Gli elementi vengono stampati di default con i font Base-14, che contengono i caratteri di Windows-1252. Registra font TrueType in Fonts per stampare cirillico, greco, arabo, ebraico, cinese, giapponese, coreano o simboli. Vengono incorporati solo i glifi stampati, e FallbackFonts e AutoFallback coprono i caratteri che un font non ha.
Stesso output ovunque
Numeri e date vengono stampati con DecimalSeparator, ThousandSeparator, DateFormat e TimeFormat del report, mai con le impostazioni regionali della macchina, quindi un report si stampa allo stesso modo su ogni computer e su .NET. Con un CreationDate fisso lo stesso input dà gli stessi byte del PDF.
Definizione come JSON
SaveToJSON scrive l'impostazione della pagina, i font, le bande, gli elementi e i parametri, e LoadFromJSON li rilegge dopo aver validato l'intera definizione, con il percorso JSON di ogni errore. Gli utenti progettano i report nel browser con il Report Designer, e un doppio clic sul report apre lo stesso designer nell'IDE di Delphi.
Un report, molte richieste
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX e HasData costruiscono ciascuno la propria copia delle righe e del layout. Un solo report serve più richieste di un server web contemporaneamente, ciascuna filtrata con i propri parametri, senza alcun lock proprio.