Suporte de exportação TDBGrid
A unidade add-on dbGridHotPDFExport (Lib\addons\DBGrid) escreve as colunas visíveis e todas as linhas de um dataset de uma TDBGrid numa tabela PDF. Cria, preenche e grava o seu próprio documento THotPDF, por isso a grelha é a única entrada de que precisa
Pontos de entrada
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])escreve o PDF num ficheiroDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])escreve-o para uma stream, através de um ficheiro temporário em%TEMP%DBGridHotPDFDefaultOptionsdevolve um registoTDBGridHotPDFExportOptionscom os valores predefinidos: A4 em pontos (595 x 842), margens de 36 pontos, linhas de 22 pontos, uma linha de cabeçalho de 24 pontos, Arial 9 com um título de 14 pontos, um cabeçalhoclBtnFacee linhas alternadas$00F5F5F5TDBGridHotPDFExporté a mesma exportação como componente na página de palete HotPDF (registado pordbGridHotPDFDesign): definaGrideOutputFileNamee chameExportToFileouExportToStream. Cada campo de opção é uma propriedade published;ResetOptionsrestaura os valores predefinidos
O que é exportado
- Colunas visíveis da grelha com um campo, pela ordem da grelha, com as legendas dos títulos, ou os campos visíveis do dataset quando a grelha não tem colunas; as larguras das colunas mantêm as proporções da grelha na largura imprimível
- Todos os registos de
FirstaEof, usando oDisplayTextde cada campo; um texto de célula que não caiba é cortado e termina em... - Todo o texto usa
FontName, que tem de ter glifos para os dados: a Arial predefinida mostra texto chinês, japonês ou coreano como caixas vazias, por isso defina uma fonte CJK como Microsoft YaHei para esses dados - Uma nova página começa quando a linha seguinte ultrapassaria a margem inferior, e a linha de cabeçalho repete-se em todas as páginas. O título (
Title, ou oNameda grelha) é desenhado uma vez, na primeira página, enquantoIncludeTitlefor True Title,Author,Subject,Keywords,PDFVersion(predefinido pdf17),PDFACompliance,PDFXComplianceeCompressionsão passados ao documento
Estado do dataset
- A exportação chama
DisableControlsenquanto percorre o dataset eEnableControlsno fim, para que os controlos associados não se repintem a cada linha - O registo atual é primeiro guardado como bookmark e restaurado no fim, também quando a exportação falha
- Uma grelha nil, um nome de ficheiro vazio, uma grelha sem dataset, um dataset inativo ou uma grelha sem colunas de dados visíveis levantam uma exceção em vez de devolver False
Exemplo
uses
dbGridHotPDFExport;
var
Options: TDBGridHotPDFExportOptions;
begin
Options:= DBGridHotPDFDefaultOptions;
Options.Title:= 'Customers';
Options.PageWidth:= 842; // A4 landscape
Options.PageHeight:= 595;
DBGridHotPDFExportToFile(DBGrid1, 'Customers.pdf', Options);
end;