Export des TDBGrid
L’unité d’extension dbGridHotPDFExport (Lib\addons\DBGrid) écrit les colonnes visibles et toutes les lignes du dataset d’une TDBGrid dans une table PDF. Elle crée, remplit et enregistre son propre document THotPDF : la grille est sa seule entrée
Points d’entrée
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])écrit le PDF dans un fichierDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])l’écrit dans un stream, via un fichier temporaire dans%TEMP%DBGridHotPDFDefaultOptionsrenvoie un recordTDBGridHotPDFExportOptionsavec les défauts : A4 en points (595 x 842), marges de 36 points, lignes de 22 points, ligne d’en-tête de 24 points, Arial 9 avec un titre de 14 points, en-têteclBtnFaceet lignes alternées$00F5F5F5TDBGridHotPDFExportest le même export sous forme de composant de la page de palette HotPDF (enregistré pardbGridHotPDFDesign) : réglezGridetOutputFileName, puis appelezExportToFileouExportToStream. Chaque champ d’option est une propriété published ;ResetOptionsrestaure les défauts
Ce qui est exporté
- Les colonnes visibles de la grille qui ont un champ, dans l’ordre de la grille, avec leurs titres, ou les champs visibles du dataset quand la grille n’a pas de colonnes ; les largeurs de colonnes conservent les proportions de la grille sur la largeur imprimable
- Chaque enregistrement de
FirstàEof, avec leDisplayTextde chaque champ ; un texte de cellule qui ne tient pas est coupé et se termine par... - Tout le texte utilise
FontName, qui doit posséder les glyphes des données : l’Arial par défaut affiche les textes chinois, japonais ou coréen en carrés vides ; réglez une police CJK comme Microsoft YaHei pour de telles données - Une nouvelle page commence quand la ligne suivante franchirait la marge basse, et la ligne d’en-tête se répète sur chaque page. Le titre (
Title, sinon leNamede la grille) est dessiné une seule fois, sur la première page, tant queIncludeTitlevaut True Title,Author,Subject,Keywords,PDFVersion(pdf17 par défaut),PDFACompliance,PDFXComplianceetCompressionsont transmis au document
État du dataset
- L’export appelle
DisableControlspendant le parcours du dataset puisEnableControls, si bien que les contrôles liés ne se repeignent pas pour chaque ligne - L’enregistrement courant est d’abord sauvegardé comme bookmark et restauré à la fin, y compris quand l’export échoue
- Une grille nil, un nom de fichier vide, une grille sans dataset, un dataset inactif ou une grille sans colonnes de données visibles lèvent une exception au lieu de renvoyer False
Exemple
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;