دعم تصدير TDBGrid
وحدة الإضافة dbGridHotPDFExport (Lib\addons\DBGrid) تكتب أعمدة TDBGrid المرئية وكل صفوف مجموعة بياناتها في جدول PDF. وهي تنشئ مستند THotPDF خاصًا بها وتملؤه وتحفظه، فالشبكة هي المدخل الوحيد الذي تحتاجه
نقاط الدخول
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])تكتب الـ PDF في ملفDBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])تكتبه في تدفق، عبر ملف مؤقت في%TEMP%DBGridHotPDFDefaultOptionsتعيد سجلTDBGridHotPDFExportOptionsبالقيم الافتراضية: A4 بالنقطة (595 × 842)، وهوامش 36 نقطة، وصفوف 22 نقطة، وصف رأس 24 نقطة، وخط Arial 9 مع عنوان 14 نقطة، ورأس بلونclBtnFaceوصفوف متناوبة بلون$00F5F5F5TDBGridHotPDFExportهو التصدير نفسه كمكوّن على لوحة HotPDF (يسجّلهdbGridHotPDFDesign): اضبطGridوOutputFileNameثم استدعِExportToFileأوExportToStream. كل حقل خيارات خاصية منشورة، وResetOptionsيستعيد الافتراضيات
ما الذي يُصدَّر
- الأعمدة المرئية للشبكة التي لها حقل، بترتيب الشبكة وبعناوين أعمدتها، أو الحقول المرئية لمجموعة البيانات عندما لا تكون للشبكة أعمدة؛ وتحافظ عروض الأعمدة على نسب الشبكة عبر عرض الطباعة
- كل سجل من
FirstإلىEof، باستخدامDisplayTextالخاص بكل حقل؛ ونص الخلية الذي لا يتسع يُقتطع وينتهي بـ... - كل النصوص تستخدم
FontNameالذي يجب أن يملك رموز البيانات: خط Arial الافتراضي يُظهر النصوص الصينية أو اليابانية أو الكورية مربعات فارغة، فاضبط خط CJK مثل Microsoft YaHei لمثل هذه البيانات - تبدأ صفحة جديدة عندما يتجاوز الصف التالي الهامش السفلي، ويتكرر صف الرأس في كل صفحة. يُرسم العنوان (
TitleوإلاNameالخاص بالشبكة) مرة واحدة في الصفحة الأولى ما دامتIncludeTitleتساوي True - القيم
TitleوAuthorوSubjectوKeywordsوPDFVersion(افتراضيًا pdf17) وPDFAComplianceوPDFXComplianceوCompressionتُمرَّر إلى المستند
حالة مجموعة البيانات
- يستدعي التصدير
DisableControlsأثناء تنقله في مجموعة البيانات وEnableControlsبعده، فلا تعيد عناصر التحكم المرتبطة الرسم لكل صف - يُحفظ السجل الحالي بعلامة مرجعية أولًا ويُستعاد في النهاية، ويُستعاد كذلك عندما يفشل التصدير
- شبكة nil أو اسم ملف فارغ أو شبكة بلا مجموعة بيانات أو مجموعة بيانات غير نشطة أو شبكة بلا أعمدة بيانات مرئية تثير استثناء بدلًا من إعادة False
مثال
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;