TsgcHTMLReport
Relatórios em bandas para PDF
O motor por trás do visualizador é um componente não visual por si só. Ele escreve o PDF com TsgcHTMLExportPDF, o motor de PDF do sgcHTML, e o mesmo relatório também pode ser escrito como uma planilha do Excel.
Bandas
Um cabeçalho de relatório, cabeçalhos de página, grupos aninhados com cabeçalhos e rodapés, linhas de detalhe, rodapés de página e um rodapé de relatório. Os cabeçalhos de grupo podem se repetir em cada nova página, KeepTogether mantém um grupo em uma só página, NewPageBefore e NewPageAfter quebram páginas, e um cabeçalho de relatório com NewPageAfter é uma capa.
Itens
As bandas contêm texto, imagens, linhas, retângulos, gráficos, texto rico, códigos de barras, códigos QR e subrelatórios. O texto é cortado na sua caixa, e os itens com AutoHeight aumentam a banda para caber o texto com quebra de linha.
Expressões e PrintIf
Os textos contêm expressões entre [ ]: campos com uma máscara como [Amount:#,##0.00], [Sum(Field)], [Count], [Avg(Field)], [Min(Field)], [Max(Field)], [RunningSum(Field)], [Page] de [Pages], [Param.Name] e [GroupValue]. As bandas e os itens só são impressos quando a sua condição PrintIf é verdadeira, como Amount > 1000.
Fontes de dados
As linhas vêm de um DataSet, de uma Grid, de um array JSON em RowsJSON ou do evento OnGetRow. LoadFromGrid constrói um relatório em tabela a partir das colunas de uma TsgcHTMLComponent_Grid, com as legendas em todas as páginas, linhas zebradas, os totais das colunas numéricas e números de página.
Gráficos, códigos de barras e códigos QR
Um item de gráfico desenha as linhas da sua banda como gráficos vetoriais: barras, barras horizontais, barras empilhadas, linhas, áreas, pizza ou rosca, um gráfico por grupo em uma banda de grupo. ChartSource imprime um TsgcHTMLComponent_Chart como a página web o mostra. Os itens de código de barras desenham Code 128, e os itens de código QR usam o nível de correção de erros M.
Subrelatórios e texto rico
Um item de subrelatório imprime outro relatório dentro da sua banda, como as linhas de um pedido, vinculado à linha mestre por LinkFields, até 5 níveis de profundidade, e continua nas páginas seguintes. Um item de texto rico imprime HTML, e com AutoHeight ele flui por várias páginas depois dos cabeçalhos de página.
Fontes e idiomas
Os itens são impressos por padrão com as fontes Base-14, que contêm os caracteres do Windows-1252. Registre fontes TrueType em Fonts para imprimir cirílico, grego, árabe, hebraico, chinês, japonês, coreano ou símbolos. Apenas os glifos impressos são embutidos, e FallbackFonts e AutoFallback cobrem os caracteres que uma fonte não tem.
Mesma saída em qualquer lugar
Números e datas são impressos com DecimalSeparator, ThousandSeparator, DateFormat e TimeFormat do relatório, nunca com as configurações regionais da máquina, de modo que um relatório é impresso igual em todos os computadores e no .NET. Com um CreationDate fixo a mesma entrada gera os mesmos bytes de PDF.
Definição como JSON
SaveToJSON escreve a configuração de página, as fontes, as bandas, os itens e os parâmetros, e LoadFromJSON os lê de volta depois de validar toda a definição, com o caminho JSON de qualquer erro. Os usuários projetam relatórios no navegador com o Report Designer, e um clique duplo no relatório abre o mesmo designer na IDE do Delphi.
Um relatório, muitas requisições
Generate, SaveToFile, SaveToStream, GetPDFBytes, ExportToXLSX e HasData constroem cada um a sua própria cópia das linhas e do layout. Um relatório atende várias requisições de um servidor web ao mesmo tempo, cada uma filtrada com os seus próprios parâmetros, sem bloqueio seu.