TDBGrid export support
La unidad add-on dbGridHotPDFExport (Lib\addons\DBGrid) escribe las columnas visibles y todas las filas del dataset de una TDBGrid en una tabla PDF. Crea, rellena 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, a través de un archivo temporal en%TEMP%DBGridHotPDFDefaultOptionsdevuelve un recordTDBGridHotPDFExportOptionscon los valores por defecto: A4 en puntos (595 x 842), márgenes de 36 puntos, filas de 22 puntos, fila de cabecera de 24 puntos, Arial 9 con título de 14 puntos, cabeceraclBtnFacey filas alternas$00F5F5F5TDBGridHotPDFExportes la misma exportación como componente de la paleta HotPDF (registrado pordbGridHotPDFDesign): asigneGridyOutputFileName, y llame aExportToFileoExportToStream. Cada campo de opciones es una propiedad published;ResetOptionsrestaura los valores por defecto
Qué se exporta
- Las columnas visibles de la cuadrícula que tienen 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 mantienen las proporciones de la cuadrícula a lo ancho imprimible
- Todos los registros 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: la Arial por defecto muestra el texto chino, japonés o coreano como cuadros vacíos, así que fije una fuente CJK como Microsoft YaHei para esos datos - Una página nueva empieza cuando la siguiente fila cruzaría el margen inferior, y la fila de cabecera 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(pdf17 por defecto),PDFACompliance,PDFXComplianceyCompressionse pasan al documento
Estado del dataset
- La exportación llama a
DisableControlsmientras recorre el dataset y aEnableControlsal terminar, así que los controles enlazados no se repintan por cada fila - El registro 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;