TsgcHTMLReport
El motor detrás del visor es un componente no visual propio. Escribe el PDF con TsgcHTMLExportPDF, el motor PDF de sgcHTML, y el mismo informe también puede escribirse como una hoja de Excel.
Bandas
Un encabezado de informe, encabezados de página, grupos anidados con encabezados y pies, filas de detalle, pies de página y un pie de informe. Los encabezados de grupo pueden repetirse en cada página nueva, KeepTogether mantiene un grupo en una página, NewPageBefore y NewPageAfter insertan saltos de página, y un encabezado de informe con NewPageAfter es una portada.
Elementos
Las bandas contienen texto, imágenes, líneas, rectángulos, gráficos, texto enriquecido, códigos de barras, códigos QR y subinformes. El texto se recorta a su caja, y los elementos con AutoHeight hacen crecer la banda para ajustarse al texto ajustado.
Expresiones y PrintIf
Los textos contienen expresiones entre [ ]: campos con una máscara como [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] de [Pages], [Param.Name] y [GroupValue]. Las bandas y los elementos se imprimen solo cuando su condición PrintIf es verdadera, como Amount > 1000.
Orígenes de datos
Las filas proceden de un DataSet, un Grid, una matriz JSON en RowsJSON o el evento OnGetRow. LoadFromGrid construye un informe de tabla con las columnas de un TsgcHTMLComponent_Grid, con los títulos en cada página, filas cebra, los totales de las columnas numéricas y números de página.
Gráficos, códigos de barras y códigos QR
Un elemento de gráfico dibuja las filas de su banda como gráficos vectoriales: barras, barras horizontales, barras apiladas, líneas, áreas, circular o anillo, un gráfico por grupo en una banda de grupo. ChartSource imprime un TsgcHTMLComponent_Chart tal como lo muestra la página web. Los elementos de código de barras dibujan Code 128, y los elementos de código QR usan el nivel de corrección de errores M.
Subinformes y texto enriquecido
Un elemento de subinforme imprime otro informe dentro de su banda, como las líneas de un pedido, enlazado a la fila maestra mediante LinkFields, hasta 5 niveles de profundidad, y continúa en las páginas siguientes. Un elemento de texto enriquecido imprime HTML y, con AutoHeight, fluye entre páginas después de los encabezados de página.
Fuentes e idiomas
Los elementos se imprimen por defecto con las fuentes Base-14, que contienen los caracteres de Windows-1252. Registra fuentes TrueType en Fonts para imprimir cirílico, griego, árabe, hebreo, chino, japonés, coreano o símbolos. Solo se incrustan los glifos impresos, y FallbackFonts y AutoFallback cubren los caracteres que le faltan a una fuente.
Mismo resultado en todas partes
Los números y las fechas se imprimen con DecimalSeparator, ThousandSeparator, DateFormat y TimeFormat del informe, nunca con la configuración regional de la máquina, así que un informe se imprime igual en cualquier equipo y en .NET. Con un CreationDate fijo, la misma entrada da los mismos bytes de PDF.
Definición como JSON
SaveToJSON escribe la configuración de página, las fuentes, las bandas, los elementos y los parámetros, y LoadFromJSON los lee de vuelta tras validar toda la definición, con la ruta JSON de cualquier error. Los usuarios diseñan informes en el navegador con el Report Designer, y un doble clic en el informe abre el mismo diseñador en el IDE de Delphi.
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX y HasData construyen cada uno su propia copia de las filas y del diseño. Un informe atiende varias peticiones de un servidor web a la vez, cada una filtrada con sus propios parámetros, sin bloqueo propio.