الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في طباعة الفورم

مغلق
بدأه abudawoodd في 24 يوليو 2007 · 7 رد · 2,020 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

شباب إني استخدم أمر طباعة الفورم في بعض مشاريعي

لكن مشكلتي في أني عندما تكون الصفحات أكثر من واحدة تطبع الصفحات صفحة واحدة كل مرة فتتوقف الطابعة فترة بسيطة ثم تتابع طباعة الصفحة التالية وعند فتح برنامج الطابعة أجد أن ملفات من الطباعة بالانتظار للطباعة

سؤالي هو هل أستطيع تأخير طباعة الفورمات إلى أن تتم جميع الصفحات وأجمعها كملف واحد ثم يتم توجيهها إلى الطابعة دفعة واحدة لتطبع مرة واحدة دون النتظار بين الصفحة والأخرى

وشكراً

#2

مافي رد

#3

ما فهمت قصدك اخي

اتمنى توضح

startingprogremmer.jpg
#4
مبرمج مبتدا كتب:
ما فهمت قصدك اخي

اتمنى توضح

أخي أقصد أنه لدي كم من البيانات مثلا 100 معلومة أريد طباعتها والفورم فيه عشرة حقول (label)

فأضطر إلى تحويل العشرة الأولى ثم طباعة الفرم ثم مسح البينات وتحويل العشرة الثانية وطباعة الفورم وهكذا

كل هذا يتم بضغطة زر واحدة بسرعة وعند فتح البرنامج الخاص بالطابعة ستجد عشرة ملفات بانتظار الطباعة

لكن الطباعة ستعامل كل صفحة على أنها ملف مستقل ستطبع أول صفحة وبعد الانتهاء من الصفحة سوف تنتظر تقريباً خمس ثواني لتبدأ طباعة التالية

أما في الورد مثلاً إن كان هناك 10 صفحات في نفس الملف سوف تقوم الطابعة بطباعتها بدون الفاصل الزمني بين الصفحات

فهل استطيع أن أجعل البرنامج لا يطبع الفورم مباشرة ويقوم بجمع الصفحات المراد طباعتها كأنها ملف واحد ومن ثم إرسالها إلى الطابعة دفعة واحدة

أقصد أني لا أريد فترة الانتظار عند طباعة كل صفحة

مثال الأمر المستخدم Form1.PrintForm

#5

هذا درس عن الطباعة فى الفيزوال بيزك

تعلم كل شيء عن الطباعة في الفيجوال بيسك 6.0

نظرا لاهمية الطباعة في الفيجوال بيسك سوف أقوم بشرح كل ما يأتي

1.طباعة المشروع من فيجوال بيسك

2.طباعة النافذة

3.استخدام كائن الطباعة printer object لطباعة الخطوط والدوائر

4.معرفة رقم الصفحة الحالية

يمكن للبرنامج أن يستقبل البيانات ويتعامل معهالا ويعرضها على الشاشة ولكن هذا ليس كل شيء فحتما سيحتاج البرنامج الى طباعة بعض المعلومات على الطابعة ويتيح لك الفيجوال بيسك طريقيتين مختلفتين لطباعة المعلومات من داخل البرنامج:

1.عرض البيانات على النافذة form ثم طباعتها

2.ارسال البيانات مباشرة الى الطابعة بأستخادم كائن الطابعة printer object

اولا: طباعة النافذة

ان طباعة النافذة هي أبسط اسلوب لطباعة المعلوامت لكي تطبع نافذة الاستاخدم قم بكتابة الامر التالي:

me.printform

وهذا الامر سوف يرسل أمر لطباعة لكي تطبع الفورم وما يحتويه من أداوت والوان

من الممكن ان تطبع أي نافذة في البرنامج بما في ذلك النوافذ الظاهرة على الشاشة او النوافذ المصغرة ولكن العيب الوحيد في هذه النقطة هو ان وجود الطباعة ودرجة وضوحها قد لا تكون عالية

فمعظم الشاشات تعرض 96 نقطة في البوصة في حين ان معظم طابعات لليزر تطبع بدرجة وضوح 300 نقطة في البوصة او اعلى فاذا كانت تريد طباعة الملعومات في برنامجك بسرعة فان امر printform سيعمل بصورة مرضية واذا كنت تريد وضوح أعلى عند الطباعة أستخدم الكائن الطابعة printerobject

ثانيا: الطباعة بأستخدام كائن الطابعة

ان كائن الطابعة هو مساحة مؤقتة على ذاكرة الحاسب وقبل ان تطبع اي شيسء على كائن الطابعة يجب ان تحددهوامش الصفحة العلوية والسفلية واليمنى واليسرى ولكي تحدد هامش الصفحة العلوي تستخدم الامر التالي

printer.scaletop=value

حيث value هي قيمة الهامش العلوي

اما لتحديد الهامش السفلي فانك تحتاج الى الامر اتالي

printer.scalebottom=value

واما الهامش الايسر تحتاج الى الامر التالي

printer.scaleleft=value

واما الهامش الايمن تحتناج الى الامر التالي

printer.scaleright=value

طباعة النص على كائن الطابعة

قبل ان تطبع النص على كائن الطابعة يجب ان تحدد الموقع الافقي والراسي للمكان الذي تريد ان يظهر فيه النص ولكي تحدد يجب استخدام الامر التالي

printer.currentx=xvalue

printer.curreny=yvalue

هذان الامران يقولان لفيجوال بيسك ابدأ الطباعة النص في المكان الذي تحدده خاصيتا

xvalue,yvalue

فمثلا اذا اردت ان تبدأ الطباعة في أعلى يسار الصفحة أستخدم الامر التالي

color=red]printer.currentx=0

color=red]printer.currenty=0

وبعد ان تحدد المكان الذي ستبدأ الطباعة فيه يمكنك ان تبدأ بالفعل بالطباعة بعض النصوص ولعمل ذلك أكتب الامر التالي

color=red]printer.currentx=0

color=red]printer.currenty=x0

color=red]printer.print "arab team2000"

ولكن طباعة النصوص العربية تختلف قليلا فيجب ان تحدد خاصية ريت تو ليفت فيصبح الكود هكذا

color=red]printer.righttoleft=true

color=red]printer.currentx=0

color=red]printer.currenty=0

printer.print "الفريق العربي للبرمجة"

color=red]printer.enddoc

ثالثا: طباعة الخطوط والدوائر بأستخدام كائن الطابعة

يجب اولا تحديد سمك الخطوط والامر التالي

printer.drawwidth=1

ولكي ترسم خطوط بأستخدام كائن الطباعة يجب عليك كتابة الامر التالي

printer.line(x1,y1)-(x2,y2)

حيث x1,y1 هي النقطة التي منها سوف يرسم الخط وx2,y2 هي النقة التي سينتهي عندها

رسم الدائرة بأستخدام كائن الطابعة

أستخدم الامر التالي

printer.circle(x,y),radius

حيث x,y هما مركز الدائرة و radius هو مركز الدائرة

تحديد جودة الطباعة

يتيح لك فيجوال بيسك ان تحدد جودة الطباعة وبالطبع يختلف هذا بحسب أمكانية الطابعة التي تستخدمها والامر التالي سوف يحدد الجودة

printer.printquality=x

حيث x يمثل قيمة سالبة بين -1 -4 او قيمة موجبة تحدد درجة الوضوح

التي تريد ان تستخدمها بأستخدام مقياس النقطة في البوصة واليك الجدول التالي يحدد نسبة الوضوح في سالب

-1 مشودة

-2 منخفضة

-3 متوسطة

-4 عالية

معرفة رقم الصفحة الحالية

وذلك بأستخدام الكود اتالي

printer.page

انهاء الطباعة

وذلك بأستخدام الامر التنالي

printer.end doc

طباعة المشروع الحالي في وقت التصميم

ويتيح لك الفيجوال بيسك ثلاث طرق لطباعة المشرؤع وهم

form image ويقوم بطباعة فقط الصور

code يطبع الاوامر فقط

form as text يطبع خصائص الكائنات

ولكي تطبع المشروع الحالي في وقت التصميم اتبع الخطوات التالية

1. أختر امر برينت من قائمة ملف سيعرض مربع حوار برينت

2. أنقر خيار current module لكي تطبع الملف المحدد في نافذة مستكشف المشروع فقط او خيار current project لكي تطبع المشروع بكامله

3. انقر أحد خيارات form image -- code --- form as text

4. تاكد من ان الطابعة جاهزة وقم بنقر على زر موافق

127gq4.png
#6
hichamchak كتب:
هذا درس عن الطباعة فى الفيزوال بيزك

تعلم كل شيء عن الطباعة في الفيجوال بيسك 6.0

نظرا لاهمية الطباعة في الفيجوال بيسك سوف أقوم بشرح كل ما يأتي

1.طباعة المشروع من فيجوال بيسك

2.طباعة النافذة

3.استخدام كائن الطباعة printer object لطباعة الخطوط والدوائر

4.معرفة رقم الصفحة الحالية

يمكن للبرنامج أن يستقبل البيانات ويتعامل معهالا ويعرضها على الشاشة ولكن هذا ليس كل شيء فحتما سيحتاج البرنامج الى طباعة بعض المعلومات على الطابعة ويتيح لك الفيجوال بيسك طريقيتين مختلفتين لطباعة المعلومات من داخل البرنامج:

1.عرض البيانات على النافذة form ثم طباعتها

2.ارسال البيانات مباشرة الى الطابعة بأستخادم كائن الطابعة printer object

اولا: طباعة النافذة

ان طباعة النافذة هي أبسط اسلوب لطباعة المعلوامت لكي تطبع نافذة الاستاخدم قم بكتابة الامر التالي:

me.printform

وهذا الامر سوف يرسل أمر لطباعة لكي تطبع الفورم وما يحتويه من أداوت والوان

من الممكن ان تطبع أي نافذة في البرنامج بما في ذلك النوافذ الظاهرة على الشاشة او النوافذ المصغرة ولكن العيب الوحيد في هذه النقطة هو ان وجود الطباعة ودرجة وضوحها قد لا تكون عالية

فمعظم الشاشات تعرض 96 نقطة في البوصة في حين ان معظم طابعات لليزر تطبع بدرجة وضوح 300 نقطة في البوصة او اعلى فاذا كانت تريد طباعة الملعومات في برنامجك بسرعة فان امر printform سيعمل بصورة مرضية واذا كنت تريد وضوح أعلى عند الطباعة أستخدم الكائن الطابعة printerobject

ثانيا: الطباعة بأستخدام كائن الطابعة

ان كائن الطابعة هو مساحة مؤقتة على ذاكرة الحاسب وقبل ان تطبع اي شيسء على كائن الطابعة يجب ان تحددهوامش الصفحة العلوية والسفلية واليمنى واليسرى ولكي تحدد هامش الصفحة العلوي تستخدم الامر التالي

printer.scaletop=value

حيث value هي قيمة الهامش العلوي

اما لتحديد الهامش السفلي فانك تحتاج الى الامر اتالي

printer.scalebottom=value

واما الهامش الايسر تحتاج الى الامر التالي

printer.scaleleft=value

واما الهامش الايمن تحتناج الى الامر التالي

printer.scaleright=value

طباعة النص على كائن الطابعة

قبل ان تطبع النص على كائن الطابعة يجب ان تحدد الموقع الافقي والراسي للمكان الذي تريد ان يظهر فيه النص ولكي تحدد يجب استخدام الامر التالي

printer.currentx=xvalue

printer.curreny=yvalue

هذان الامران يقولان لفيجوال بيسك ابدأ الطباعة النص في المكان الذي تحدده خاصيتا

xvalue,yvalue

فمثلا اذا اردت ان تبدأ الطباعة في أعلى يسار الصفحة أستخدم الامر التالي

color=red]printer.currentx=0

color=red]printer.currenty=0

وبعد ان تحدد المكان الذي ستبدأ الطباعة فيه يمكنك ان تبدأ بالفعل بالطباعة بعض النصوص ولعمل ذلك أكتب الامر التالي

color=red]printer.currentx=0

color=red]printer.currenty=x0

color=red]printer.print "arab team2000"

ولكن طباعة النصوص العربية تختلف قليلا فيجب ان تحدد خاصية ريت تو ليفت فيصبح الكود هكذا

color=red]printer.righttoleft=true

color=red]printer.currentx=0

color=red]printer.currenty=0

printer.print "الفريق العربي للبرمجة"

color=red]printer.enddoc

ثالثا: طباعة الخطوط والدوائر بأستخدام كائن الطابعة

يجب اولا تحديد سمك الخطوط والامر التالي

printer.drawwidth=1

ولكي ترسم خطوط بأستخدام كائن الطباعة يجب عليك كتابة الامر التالي

printer.line(x1,y1)-(x2,y2)

حيث x1,y1 هي النقطة التي منها سوف يرسم الخط وx2,y2 هي النقة التي سينتهي عندها

رسم الدائرة بأستخدام كائن الطابعة

أستخدم الامر التالي

printer.circle(x,y),radius

حيث x,y هما مركز الدائرة و radius هو مركز الدائرة

تحديد جودة الطباعة

يتيح لك فيجوال بيسك ان تحدد جودة الطباعة وبالطبع يختلف هذا بحسب أمكانية الطابعة التي تستخدمها والامر التالي سوف يحدد الجودة

printer.printquality=x

حيث x يمثل قيمة سالبة بين -1 -4 او قيمة موجبة تحدد درجة الوضوح

التي تريد ان تستخدمها بأستخدام مقياس النقطة في البوصة واليك الجدول التالي يحدد نسبة الوضوح في سالب

-1 مشودة

-2 منخفضة

-3 متوسطة

-4 عالية

معرفة رقم الصفحة الحالية

وذلك بأستخدام الكود اتالي

printer.page

انهاء الطباعة

وذلك بأستخدام الامر التنالي

printer.end doc

طباعة المشروع الحالي في وقت التصميم

ويتيح لك الفيجوال بيسك ثلاث طرق لطباعة المشرؤع وهم

form image ويقوم بطباعة فقط الصور

code يطبع الاوامر فقط

form as text يطبع خصائص الكائنات

ولكي تطبع المشروع الحالي في وقت التصميم اتبع الخطوات التالية

1. أختر امر برينت من قائمة ملف سيعرض مربع حوار برينت

2. أنقر خيار current module لكي تطبع الملف المحدد في نافذة مستكشف المشروع فقط او خيار current project لكي تطبع المشروع بكامله

3. انقر أحد خيارات form image -- code --- form as text

4. تاكد من ان الطابعة جاهزة وقم بنقر على زر موافق

أشكرك أخي على الشرح الرائع

لكن ليست هذه مشكلتي

إن مشكلتي أني لا أريد من الطابعة أن تبدأ بالطباعة قبل أن ينتهي البرنامج من نقل البيانات إلى الفورم ثم يطبعها دفعة واحدة كأنها ملف واحد

مثلاً جرب هذا الكود ولاحظ

Form1.PrintForm

Form2.PrintForm

ستلاحظ بأن الطابعة ستطبع الفورم الأول ثم تنتظر قليلاً لتبدأ طباعة الفورة الثانية

وأنا أريد أن لا تبدأ الطباعة قبل أن ينتهي الكود ثم طباعة الصفحتين كأنها ملف واحد دون فترة انتظار بين الصفحة الأولى والثانية

لأني أحياناً احتاج إلى طباعة 200 صفحة أو أكثر فإذا توقفت الطباعة خمس ثواني بعد كل طباعة سيكون هناك تقريباً 16 دقيقة مهدورة

أرجو أن تكون قد وضحت الفكرة

وشكراً

#7

ياشباب ؟؟؟؟؟؟؟؟؟؟؟؟؟

#8

اني انتظر

وين الشباب

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…