Obsługa eksportu TDBGrid
Jednostka dodatkowa dbGridHotPDFExport (Lib\addons\DBGrid) zapisuje widoczne kolumny i wszystkie wiersze datasetu TDBGrid do tabeli PDF. Tworzy, wypełnia i zapisuje własny dokument THotPDF, więc grid to jedyne, czego potrzebuje na wejściu
Punkty wejścia
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])zapisuje PDF do plikuDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])zapisuje go do strumienia, przez plik tymczasowy w%TEMP%DBGridHotPDFDefaultOptionszwraca rekordTDBGridHotPDFExportOptionsz wartościami domyślnymi: A4 w punktach (595 x 842), marginesy 36 punktów, wiersze 22 punkty, wiersz nagłówka 24 punkty, Arial 9 z tytułem 14 punktów, nagłówekclBtnFacei naprzemienne wiersze$00F5F5F5TDBGridHotPDFExportto ten sam eksport jako komponent na palecie HotPDF (rejestrowanym przezdbGridHotPDFDesign): ustawGridiOutputFileName, potem wywołajExportToFilealboExportToStream. Każde pole opcji jest opublikowaną właściwością;ResetOptionsprzywraca wartości domyślne
Co jest eksportowane
- Widoczne kolumny grida z polem, w kolejności grida, z tytułami kolumn, albo widoczne pola datasetu, gdy grid nie ma kolumn; szerokości kolumn zachowują proporcje grida na całej szerokości drukowalnej
- Każdy rekord od
FirstdoEof, z użyciemDisplayTextkażdego pola; tekst komórki, który się nie mieści, jest ucinany i kończy się... - Cały tekst używa
FontName, który musi mieć glyphy dla tych danych: domyślny Arial pokazuje tekst chiński, japoński czy koreański jako puste kwadraty, więc dla takich danych ustaw font CJK, np. Microsoft YaHei - Nowa strona zaczyna się, gdy następny wiersz przekroczyłby dolny margines, a wiersz nagłówka powtarza się na każdej stronie. Tytuł (
Title, inaczejNamegrida) jest rysowany raz, na pierwszej stronie, dopókiIncludeTitlejest True Title,Author,Subject,Keywords,PDFVersion(domyślnie pdf17),PDFACompliance,PDFXComplianceiCompressionsą przekazywane do dokumentu
Stan datasetu
- Eksport woła
DisableControlsna czas przejścia po datasecie iEnableControlspo nim, więc powiązane kontrolki nie przerysowują się przy każdym wierszu - Bieżący rekord jest najpierw zapamiętywany zakładką i odtwarzany na końcu, także gdy eksport zawiedzie
- Grid nilowy, pusta nazwa pliku, grid bez datasetu, nieaktywny dataset albo grid bez widocznych kolumn danych kończy się wyjątkiem zamiast zwrócić False
Przykład
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;