TsgcHTMLReport
Rapports par bandes vers PDF
Le moteur derrière le visualiseur est un composant non visuel à part entière. Il écrit le PDF avec TsgcHTMLExportPDF, le moteur PDF de sgcHTML, et le même rapport peut aussi être écrit sous forme de feuille Excel.
Bandes
Un en-tête de rapport, des en-têtes de page, des groupes imbriqués avec en-têtes et pieds, des lignes de détail, des pieds de page et un pied de rapport. Les en-têtes de groupe peuvent se répéter à chaque nouvelle page, KeepTogether garde un groupe sur une seule page, NewPageBefore et NewPageAfter provoquent des sauts de page, et un en-tête de rapport avec NewPageAfter est une page de garde.
Éléments
Les bandes contiennent du texte, des images, des lignes, des rectangles, des graphiques, du texte enrichi, des codes-barres, des codes QR et des sous-rapports. Le texte est coupé à sa boîte, et les éléments avec AutoHeight agrandissent la bande pour contenir le texte renvoyé à la ligne.
Expressions et PrintIf
Les textes contiennent des expressions entre [ ] : des champs avec un masque comme [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] sur [Pages], [Param.Name] et [GroupValue]. Les bandes et les éléments ne s'impriment que lorsque leur condition PrintIf est vraie, comme Amount > 1000.
Sources de données
Les lignes proviennent d'un DataSet, d'une Grid, d'un tableau JSON dans RowsJSON ou de l'événement OnGetRow. LoadFromGrid construit un rapport de type tableau à partir des colonnes d'une TsgcHTMLComponent_Grid, avec les intitulés sur chaque page, des lignes zébrées, les totaux des colonnes numériques et les numéros de page.
Graphiques, codes-barres et codes QR
Un élément graphique dessine les lignes de sa bande en graphiques vectoriels : barres, barres horizontales, barres empilées, courbes, aires, secteurs ou anneau, un graphique par groupe dans une bande de groupe. ChartSource imprime un TsgcHTMLComponent_Chart tel que la page web l'affiche. Les éléments code-barres dessinent du Code 128, et les éléments code QR utilisent le niveau de correction d'erreur M.
Sous-rapports et texte enrichi
Un élément sous-rapport imprime un autre rapport dans sa bande, comme les lignes d'une commande, lié à la ligne maître par LinkFields, jusqu'à 5 niveaux de profondeur, et se poursuit sur les pages suivantes. Un élément texte enrichi imprime du HTML, et avec AutoHeight il s'étend sur plusieurs pages après les en-têtes de page.
Polices et langues
Les éléments s'impriment par défaut avec les polices Base-14, qui contiennent les caractères de Windows-1252. Enregistrez des polices TrueType dans Fonts pour imprimer le cyrillique, le grec, l'arabe, l'hébreu, le chinois, le japonais, le coréen ou des symboles. Seuls les glyphes imprimés sont intégrés, et FallbackFonts et AutoFallback couvrent les caractères qu'une police ne possède pas.
Même résultat partout
Les nombres et les dates s'impriment avec DecimalSeparator, ThousandSeparator, DateFormat et TimeFormat du rapport, jamais avec les paramètres régionaux de la machine, de sorte qu'un rapport s'imprime de la même façon sur tous les ordinateurs et sous .NET. Avec un CreationDate fixe, la même entrée donne les mêmes octets de PDF.
Définition en JSON
SaveToJSON écrit la mise en page, les polices, les bandes, les éléments et les paramètres, et LoadFromJSON les relit après avoir validé toute la définition, avec le chemin JSON de chaque erreur. Les utilisateurs conçoivent des rapports dans le navigateur avec le Report Designer, et un double-clic sur le rapport ouvre le même concepteur dans l'IDE Delphi.
Un rapport, de nombreuses requêtes
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX et HasData construisent chacun leur propre copie des lignes et de la mise en page. Un seul rapport sert plusieurs requêtes d'un serveur web en même temps, chacune filtrée avec ses propres paramètres, sans verrou de votre part.