TDBGrid-Exportunterstützung
Die Add-on-Unit dbGridHotPDFExport (Lib\addons\DBGrid) schreibt die sichtbaren Spalten und alle Zeilen eines TDBGrid-Datasets in eine PDF-Tabelle. Sie erzeugt, füllt und speichert ihr eigenes THotPDF-Dokument, daher ist das Grid die einzige Eingabe, die sie braucht
Einsprungpunkte
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])schreibt das PDF in eine DateiDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])schreibt es in einen Stream, über eine temporäre Datei in%TEMP%DBGridHotPDFDefaultOptionsliefert einenTDBGridHotPDFExportOptions-Record mit den Defaults: A4 in Punkt (595 x 842), 36-Punkt-Ränder, 22-Punkt-Zeilen, eine 24-Punkt-Kopfzeile, Arial 9 mit einem 14-Punkt-Titel, einclBtnFace-Kopf und$00F5F5F5-WechselzeilenTDBGridHotPDFExportist derselbe Export als Komponente auf der Palettenseite HotPDF (registriert vondbGridHotPDFDesign):GridundOutputFileNamesetzen, dannExportToFileoderExportToStreamaufrufen. Jedes Optionsfeld ist eine published-Property;ResetOptionsstellt die Defaults wieder her
Was exportiert wird
- Sichtbare Grid-Spalten mit Feld, in Grid-Reihenfolge, mit ihren Titeln – oder die sichtbaren Felder des Datasets, wenn das Grid keine Spalten hat; die Spaltenbreiten behalten die Proportionen des Grids über die druckbare Breite
- Jeder Datensatz von
FirstbisEof, jeweils mit demDisplayTextdes Felds; ein Zelltext, der nicht passt, wird abgeschnitten und endet in... - Aller Text verwendet
FontName, der Glyphen für die Daten haben muss: das Default-Arial zeigt chinesischen, japanischen oder koreanischen Text als leere Kästchen, also setzen Sie für solche Daten einen CJK-Font wie Microsoft YaHei - Eine neue Seite beginnt, wenn die nächste Zeile den unteren Rand überschreiten würde, und die Kopfzeile wiederholt sich auf jeder Seite. Der Titel (
Title, sonst derNamedes Grids) wird einmalig auf der ersten Seite gezeichnet, solangeIncludeTitleTrue ist Title,Author,Subject,Keywords,PDFVersion(Default pdf17),PDFACompliance,PDFXComplianceundCompressionwerden an das Dokument durchgereicht
Dataset-Zustand
- Der Export ruft beim Durchlauf durch das Dataset
DisableControlsauf und danachEnableControls, sodass gebundene Steuerelemente nicht pro Zeile neu zeichnen - Der aktuelle Datensatz wird zuerst als Bookmark gesichert und am Ende wiederhergestellt, auch wenn der Export fehlschlägt
- Ein nil-Grid, ein leerer Dateiname, ein Grid ohne Dataset, ein inaktives Dataset oder ein Grid ohne sichtbare Datenspalten löst eine Exception aus, statt False zurückzuliefern
Beispiel
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;