TsgcHTMLReport
Bandrapporten naar PDF
De engine achter de viewer is een eigen niet-visueel component. Hij schrijft de PDF met TsgcHTMLExportPDF, de PDF-engine van sgcHTML, en hetzelfde rapport kan ook als Excel-blad worden geschreven.
Banden
Een rapportkop, paginakoppen, geneste groepen met koppen en voetteksten, detailrijen, paginavoeten en een rapportvoet. Groepskoppen kunnen op elke nieuwe pagina worden herhaald, KeepTogether houdt een groep op één pagina, NewPageBefore en NewPageAfter forceren pagina-einden, en een rapportkop met NewPageAfter is een voorblad.
Items
Banden bevatten tekst, afbeeldingen, lijnen, rechthoeken, grafieken, rich text, barcodes, QR-codes en subrapporten. Tekst wordt bij zijn kader afgekapt, en items met AutoHeight laten de band meegroeien met de afgebroken tekst.
Expressies en PrintIf
Teksten bevatten expressies tussen [ ]: velden met een masker zoals [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] van [Pages], [Param.Name] en [GroupValue]. Banden en items worden alleen afgedrukt wanneer hun PrintIf-voorwaarde waar is, zoals Amount > 1000.
Gegevensbronnen
De rijen komen uit een DataSet, een Grid, een JSON-array in RowsJSON of het event OnGetRow. LoadFromGrid bouwt een tabelrapport van de kolommen van een TsgcHTMLComponent_Grid, met de kopteksten op elke pagina, zebrarijen, de totalen van de numerieke kolommen en paginanummers.
Grafieken, barcodes en QR-codes
Een grafiekitem tekent de rijen van zijn band als vectorafbeelding: staaf, horizontale staaf, gestapelde staaf, lijn, vlak, taart of donut, één grafiek per groep in een groepsband. ChartSource drukt een TsgcHTMLComponent_Chart af zoals de webpagina hem toont. Barcode-items tekenen Code 128 en QR-code-items gebruiken foutcorrectieniveau M.
Subrapporten en rich text
Een subrapportitem drukt een ander rapport af binnen zijn band, zoals de regels van een order, via LinkFields gekoppeld aan de hoofdrij, tot 5 niveaus diep, en gaat door op de volgende pagina's. Een rich-textitem drukt HTML af en loopt met AutoHeight over pagina's na de paginakoppen.
Lettertypen en talen
Items worden standaard afgedrukt met de Base-14-lettertypen, die de tekens van Windows-1252 bevatten. Registreer TrueType-lettertypen in Fonts om Cyrillisch, Grieks, Arabisch, Hebreeuws, Chinees, Japans, Koreaans of symbolen af te drukken. Alleen de afgedrukte glyphs worden ingebed, en FallbackFonts en AutoFallback dekken de tekens die een lettertype mist.
Overal dezelfde uitvoer
Getallen en datums worden afgedrukt met DecimalSeparator, ThousandSeparator, DateFormat en TimeFormat van het rapport, nooit met de regionale instellingen van de machine, zodat een rapport op elke computer en onder .NET hetzelfde wordt afgedrukt. Met een vaste CreationDate geeft dezelfde invoer dezelfde PDF-bytes.
Definitie als JSON
SaveToJSON schrijft de pagina-instelling, lettertypen, banden, items en parameters, en LoadFromJSON leest ze terug nadat het de hele definitie heeft gevalideerd, met het JSON-pad van elke fout. Gebruikers ontwerpen rapporten in de browser met de Report Designer, en een dubbelklik op het rapport opent dezelfde designer in de Delphi-IDE.
Eén rapport, veel verzoeken
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX en HasData bouwen elk hun eigen kopie van de rijen en de opmaak. Eén rapport bedient meerdere verzoeken van een webserver tegelijk, elk gefilterd met eigen parameters, zonder eigen lock.