شرح أداة الطباعة(FormsPrinter) - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : مكتبة أدوات الأعضاء (http://vb4arb.com/vb/forumdisplay.php?fid=115) +--- الموضوع : شرح أداة الطباعة(FormsPrinter) (/showthread.php?tid=8289) |
شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 01-04-13 السلام عليكم كنت قد كتبت موضوع حول إنشاء أداة طباعة تطبع مباشرة من الأدوات دون الحاجة لتعلم أساليب جديدة مختلفة عن تصميم النوافذ ، ودون الحاجة للرجوع لقواعد البيانات للحصول على المعلومات المراد طباعتها http://vb4arb.com/vb/showthread.php?3785-%E3%D4%D1%E6%DA-%C8%E4%C7%C1-%C3%CF%C7%C9-%D8%C8%C7%DA%C9 يرجى مراجعة الموضوع(خصوصا الصفحة الأولى منه) لاستيعاب الفكرة النظرية للاداة هذا الموضوع سيكون بإذن الله مخصص لشرح استخدامها شرح أداة الطباعة(FormsPrinter) - ربيع - 01-04-13 الله يعطيك العافيه شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 29-07-13 السلام عليكم سأبداً خطوة بخطوة ولله الحمد الخطوة الأولى : إضافة الأداة إلى قائمة Items في Visual Studio وذلك كي لا نضطر لعمل هذه الحركة المزعجة 1- قم بتحميل ملف PrintReportVB أو PrintReportC# في المرفقات 2- بدون فك الضغط عن الملف، انقله إلى المسار التالي .....\Documents\Visual Studio 2012\Templates\ItemTemplates\Visual C#
تغير المسار إلى Visual Basic إن كنت مبرمج بيسك 3- الآن قم بتشغيل الفيجوال ستوديو وفتح مشروع Windows Application جديد. 4- قم بإضافة New Item من القائمة Project>Add New Item في نافذة العناصر ستجد عنص باسم PrintReport وهو الذي أضفناه ، أضفه إلى المشروع ستلاحظ ظهور رسالة خطأ تفيد بأن FormsPrinter.dll غير موجود ذلك لأن الأداة تتطلب هذا الملف(وهو ملف الأداة التي قمنا بعملها في هذا مشروع بناء أداة طباعة ) 5 - قم بتحميل الملف FormsPrinter.rar من هذه المشاركة (إن لم تفعل سابقاً) 6- فك الضغط عنه واحتفظ به في مكان ثابت (ليتسنى لك إضافته بسهولة كلما احتجته) 7- قم بإضافة هذا الملف FormsPrinter.dll إلى المصادر وذلك كالتالي قم بإضافة الأداة لـ References كالتالي الآن لنجرب عملية طباعة بسيطة للتقرير وهو فارغ VB PHP كود : Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load C# PHP كود : private void Form1_Load(object sender, EventArgs e) وبهذا نكون قد انتهينا من الخطوة الأساسية الملفات المرفقة PrintReportVB PrintReportC# شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 29-07-13 السلام عليكم تعلمنا كيف نضيف الأداة إلى قائمة Add New Item ، الآن سنتعرف على الأداة يوجد داخل المجمع (ملف FormsPrinter.dll) أربع أدوات وهم: Section وهي عبارة عن حاوية للأدوات التي سنطبعها ووظيفته تقسيم قالب الصفحة والتحكم شيئاً ما بعملية الطباعة. الأدوات القابلة للطباعة Printable Controls (المتوفر حالياً 3 أدوات) PrintLabel PrintListView PrintPicutreBox كيف نضيف هذه الادوات إلى Tool Box ؟ الجواب هنا شرح أداة الطباعة(FormsPrinter) - مالكـ - 30-07-13 [h=2]رسالة إدارية[/h]لقد حددت ملف مرفق خاطئ. إذا إتبعت رابط صحيح, الرجاء راسل الإدارة. شرح أداة الطباعة(FormsPrinter) - مبرمج بلا حدود - 30-07-13 مالكـ كتب :[h=2]رسالة إدارية[/h]لقد حددت ملف مرفق خاطئ. إذا إتبعت رابط صحيح, الرجاء راسل الإدارة. بأمكانك تحميلها الان الرسالة التي ظهرت لديك لان المرفقات كانت بأنتظار موافقة الادارة ربي يحفظك شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 30-07-13 تم تعديل الملفات المرفقة لنتفادى "موافقة الإدارة" من يتابع الشرح، قم بتحميل الملف ونقله كما في الشرح، ثم افتح الفيجوال ستوديو وأضف الملف .dll للأداة وأضف عنصر الأداة من Add New Items ستلاحظ أن الأداة تحتوي بشكل افتراضي على PrintDocument باسم PDoc وPrintPreviewDialog باسم PView وقمت بكتابة إجرائين واحد باسم Print للطباعة المباشرة والآخر باسم PrintPreview وذلك تسهيلا مني للمبتدئين ، متى ما أردت طباعة التقرير تستدعي أحد الإجرائين إما للعرض أو للطباعة المباشرة VB
PHP كود : Public Class PrintReport C#
PHP كود : public partial class PrintReport : FormsPrinter.Page شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 30-07-13 الآن لنتعرف على Page وهي الصفحة التي تمثل القالب لكل صفحات التقرير وهي التي في الصورة التالية الصفحة لها خاصيتين 1- Document وهي من نوع PrintDocument وهي التي يتم الطباعة فيها (لنعتبرها صفحات التقرير وهذا تبسيط مني للمبتدئين الذين لم يتعلموا الطباعة في .Net ) ملاحظة: تذكرون اني قمت بإضافة PDoc لهذه الخاصية بشكل افتراضي وذلك خدمة مني للمبتدئين 2- MarginBounds : تأخذ قيمة True or False وهي تفيد في اعتبار ان قالب الصفحة الذي نصمم عليه يمثل الحدود الداخلية للصفحة أو الحدود الخارجية (جربها بنفسك وستفهم ما أعني) شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 30-07-13 بعد أن تعرفنا على Page سنتعرف على ابنتها الوحيدة والوحيدة فقط وهي Section أحب ان أذكر بان الإضطلاع على الموضوع الأصلي هو أمر أساسي لاستيعاب الشرح من قائمة الأدوات أضف Section إلى الصفحة(يمكنك إضافة مليون Section للصفحة) عزيزي المبرمج اعتبر نفسك تصمم فورم عادي تلاعب بخصائص Dock و الـ Anchor كما تحب فهي واقعية في أداة FromsPrinter السكشن ليس فيه إلا خاصية واحدة وهي Repeat يعني تكرار ، True للتكرار False للمنع(راجع الموضوع الأصلي لمعرفة قصة تكرار الطباعى لقسم معين من الصفحة !) داخل السكشن يمكنك إضافة أي أداة قابلة للطباعة (الأداة تحتوي 3 أدوات لحد الآن وقد ذكرتهم)(معلومة للمحترفين كل أداة تحقق الواجهة IPrintableControl يمكن إضافتها للسكشن، ويتبعها تعريف كلاس Printer أيضاً ) شرح أداة الطباعة(FormsPrinter) - أبو يعقوب - 30-07-13 السلام عليكم بعد ان تعرفنا على كل من الـPage & Section سنتعرف على الأدوات القابلة للطباعة Printable Controls طبعا هناك خصائص مشتركة لهذه الادوات وهي : 1- SourceControl هذه الخاصية لن تراها في نافذة الخصائص ، فقط من الكود وهي تمكنك من طباعة محتوى أداة في مكان ما في المشروع (داخل الفورم مثلاً) ولكن بشرط أن تكون الاداة نفس نوع الأداة القابلة للطباعة يعني لن تتعب في تنسيق ListView مرتين 2- ScaleVertical هذه الخاصية تمنع\تفعل تطبيق مقياس الرسم العمودي (يعني سترسم الأدوات كما هي بالنسبة للطول) 3- ScaleHorizontal كالسابقة ولكنها تطبق على العرض 4- StageIndex هذه خاصية مهمة ، تحدد ترتيب مرحلة الطباعة، أي ان الأداة التي ترتيب مرحلتها 2 لن تطبع إلا إذا طبعت جميع الأدوات(التي تشترك معها في Section ) التي مرحلتها أقل من 2(حتى 0 او -1 !) حتى لو استغرقت مليون صفحة سيتضح الهدف من هذه الخاصية لاحقاً 5- PrintIndex هذه الخاصية تحدد ترتيب طباعة الأدوات خلال المرحلة الواحدة، الفائدة أنك تستطيع طباعة صورة خلفية وتجعل ترتيبها الأول ثم تطبع عليها باقي الأدوات ،،، وفوائد أخرى 7- OnePageOnly هذه الخاصية، إذا كانت true سيتم طباعة الأداة في صفحة واحدة حتى لو احتاجت الأداة إلى صفحات أخرى لتكمل الطباعة |