Soporte de exportación de TDBGrid
La unidad add-on dbGridHotPDFExport (Lib\addons\DBGrid) escribe las columnas visibles y todos los renglones del dataset de un TDBGrid en una tabla PDF. Crea, llena y guarda su propio documento THotPDF, así que la cuadrícula es la única entrada que necesita
Puntos de entrada
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])escribe el PDF en un archivoDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])lo escribe en un stream, pasando por un archivo temporal en%TEMP%DBGridHotPDFDefaultOptionsdevuelve un recordTDBGridHotPDFExportOptionscon los valores predeterminados: A4 en puntos (595 x 842), márgenes de 36 puntos, renglones de 22 puntos, un renglón de encabezado de 24 puntos, Arial 9 con un título de 14 puntos, encabezadoclBtnFacey renglones alternos$00F5F5F5TDBGridHotPDFExportes la misma exportación como componente de la paleta de páginas HotPDF (registrado pordbGridHotPDFDesign): asigneGridyOutputFileName, y llame aExportToFileoExportToStream. Cada campo de opciones es una propiedad published;ResetOptionsrestaura los valores predeterminados
Qué se exporta
- Las columnas visibles de la cuadrícula que tienen un campo, en el orden de la cuadrícula y con sus títulos, o los campos visibles del dataset cuando la cuadrícula no tiene columnas; los anchos de columna conservan las proporciones de la cuadrícula a lo ancho imprimible
- Todos los records desde
FirsthastaEof, usando elDisplayTextde cada campo; un texto de celda que no cabe se corta y termina en... - Todo el texto usa
FontName, que debe tener glifos para los datos: el Arial predeterminado muestra texto chino, japonés o coreano como cuadros vacíos, así que para esos datos asigne una fuente CJK como Microsoft YaHei - Una página nueva arranca cuando el siguiente renglón cruzaría el margen inferior, y el renglón de encabezado se repite en cada página. El título (
Title, o elNamede la cuadrícula) se dibuja una vez, en la primera página, mientrasIncludeTitlesea True Title,Author,Subject,Keywords,PDFVersion(predeterminado pdf17),PDFACompliance,PDFXComplianceyCompressionse pasan al documento
Estado del dataset
- La exportación llama a
DisableControlsmientras recorre el dataset y aEnableControlsal terminar, de modo que los controles enlazados no se repinten por cada renglón - El record actual se guarda primero como bookmark y se restaura al final, también cuando la exportación falla
- Una cuadrícula nil, un nombre de archivo vacío, una cuadrícula sin dataset, un dataset inactivo o una cuadrícula sin columnas de datos visibles lanza una excepción en lugar de devolver False
Ejemplo
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;