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

أمر طباعة تقارير معينة

مغلق
بدأه الشاعر 815 في 1 نوفمبر 2006 · 8 رد · 6,238 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخواني أخواتي الكرام

السلام عليكم ورحمة الله وبركاته

لقد قمت بتصميم برنامج خاص يقوم بطباعة كافة التقارير ، إلا أن بعضا من هذه التقارير لا تُستخدم ، وليس من العثل أن أقوم بإتلافها ومعاودة طباعتها ثانية ( كرامة لعيون البرنامج ) ولكن الصواب في رأيي هو تطويع البرنامج لخدمة الهدف .

بعد هذه المقدمة التي أرى أنه لا بد منها أدخل الآن في المهم :

تجدون في الملف المرفق مثالا بسيطا لما أود أن أحصل عليه ، وهو :

وجود نموذج يقوم بعرض كافة السجلات الموجودة ، بطريقة عرض ( مجدول ) ، ولكل سجل خانة ( نعم ، لا )

وعندما يأتيني الفائض من النماذج أقوم بالتدقيق على النماذج الموجودة لدي ( الغير مستخدمة ) وأضع إشارة ( صح ) عليها في النموذج

وقد عملت زرا أريده أن يقوم بطباعة جميع السجلات ( الموجودة في التقارير كل تقرير أو كل سجل في ورقة مستقلة ) الغير مُؤَشر عليها بعلامة ( صح )

علما بأنني بحاجة إلى زر يقوم بتفريغ جميع العلامات ( صح ) من النموذج بعد الطباعة

آمل أن أجد عندكم الإجابة الوافية

تقبلوا تحياتي

( الشاعر )

____.rar

#2

اخي الفاضل الشاعر

السلام عليكم ورحمة الله وبركاته

الموضوع بسيط ان شاء الله تعالى

كل ما عليك هو انشاء استعلام مبني على الجدول

نضع في خانة معايير امر الطباعة عبارة FALSE وتعني السجلات الغير مختاره .

نجعل مصدر التقرير هو الاستعلام بدلا من الجدول .

الان انظر النتيجة سواء في المعاينة او الطباعة من خلال النموذج

ننتقل الان الى مسح جميع الخانات اذا لا بد من انشاء استعلام تحديث بالكود لتحديث خانة الاختيار وجعلها تساوي False حسب العبارة التالية

DoCmd.RunSQL "UPDATE TAB01 SET TAB01.PRINT = False;"

وتوضع هذه العبارة في زر امر الطباعة بعد كود الطباعة مباشره بحيث يتم اولا ارسال امر الطباعة الى الطابعة حسب ما قمنا بإختياره من علامات صح وبعد الانتهاء من الطباعة سيتم ازالة جميع علامات الصح المختاره قد تلاحظ بعض من ازرار الاختيار لازالت عليها علامة صح وهذا يدل انه يتم ارسال امر طباعة السجل الى الطابعة ويمجرد تخزينها في الطابعة سيتم ازالتها فورا . فلا تخشى من هذه النقطه

PReport.rar

#3

أرتجل هذه الأبيات عربون شكرٍ لهذه المنارة العالية ( زهرة )

أيا من أضأتِ العقولَ هنا *** جزاك الإلهُ أعالي الرتبْ

فتحتِ العقولَ بأفكاركِ *** ففكركِ نوٌ وأنتِ الذهبْ

وأنتِ التي لمْ تزل ههنا *** لهذا ( الفريق ) برغم العتب

أختي الفاضلة ( زهرة )

السلام عليكِ وعلى الجميع

أثابك الله تعالى ، فلقد أزحتِ عني هماً كبيرا

نسيت شيئا واحدا لو تتكرمين عليَّ بهِ

وهو :

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

سواء كانت في الكود نفسه

أو أن يكون هناك مربع مخصص لتحديد عدد النسخ

تقبلي تحياتي الكبيرة

( الشاعر )

#4

بارك الله فيك اخي الشاعر على هذه الكلمات

اذا اردنا طباعة التقرير لعدد محدد من الصفحات مثل صفحتين او ثلاث او غير ذلك من الصفحات التي نحددها فسنقوم بتغيير الكود السابق الذي في زر امر الطباعة الى هذا الكود الجديد

Private Sub RPRINT_Click()
DoCmd.SelectObject acReport, "TAB01", True
DoCmd.PrintOut , , , , 2
DoCmd.RunSQL "UPDATE TAB01 SET TAB01.PRINT = False;"
End Sub

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

PReport_UP.rar

تم تعديل هذه المشاركة بواسطة zahrah في 2 نوفمبر 2006 في 00:43

#5

السلام عليكم

أختي الفاضلة

زهرة

لقد قمت بتحميل الملف ، وقمت بالتعديل عليه ، حيث وضعتُ زرا مستقلا لعملية حذف العلامات في زر الطباعة ( بفصل الأمر )

اقتباس
DoCmd.RunSQL "UPDATE TAB01 SET TAB01.PRINT = False;"

وانتهينا من عملية الحذف

ولا نريد الرجوع لها

ولكن عملية الطباعة ، التي تمت عن طريق ( تحويل ماكرو إلى وحدة نمطية) وطلب طباعة نسختين ، لم تسلك معي

فالأمر دائما يعطيني طباعة 8 أوراق دون الرجوع إلى عدد السجلات الغير محددة ( في البرنامج الخاص بي ، وليس في المثال )

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

اقتباس
Private Sub RPRINT_Click()

DoCmd.SelectObject acReport, "TAB01", True

DoCmd.PrintOut , , , , 2

End Sub

والأمر الجديد يطبع حتى السجل الفارغ ( الذي لا يوجد فيه أية بيانات ) أيضا

فهل من الممكن أن تقومي بإفادتي سواء بالشرح أو التعديل

علما بأنني أفضل أنه لو كان هناك مربع معين في النموذج نقوم بتحديد عدد النسخ منه فسيكون ذلك أفضل من الكود ، لأنني في حالة إقفال البرنامج عن المستخدم ، ورغب المستخدم في زيادة عدد النسخ فإنه لن يستطيع

تحياتي

( الشاعر )

تم تعديل هذه المشاركة بواسطة الشاعر 815 في 3 نوفمبر 2006 في 10:54

#6

اخي الفاضل الشاعر

السلام عليكم ورحمة الله وبركاته

من الخطأ ان تقوم بفصل عبارة الـ SQL الخاصة بتحديث السجلات عن الكود في زر امر مستقل لانها مرتبطه اساسا بما قبلها ولم اضعها عبثا .

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

حسنا سنقوم بالتغيير لما تريد ان يكون ولكن اتمنى عدم تغيير اي شيء في الكود لانه يعمل بشكل سليم وتمت تجربته اكثر من مره ولا يوجد به اي خلل

هذا الكود يوضع في حدث النموذج الحالي

وضعت لك في النموذج مربع نص غير منضم يدعى NCopy وهو الذي تضع به عدد النسخ .

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

Private Sub Form_Current()
Me.NCopy.SetFocus
If Not IsNull(Me.NCopy) Then
Me.RPRINT.Enabled = True
Else
Me.RPRINT.Enabled = False
End If
Me.Refresh
End Sub

هذا الكود يوضع في حدث عند التغيير في مربع النص الغير منضم NCopy ليقوم بعملية التحديث للنموذج

Private Sub NCopy_Change()
Me.Requery
End Sub

هذا الكود يوضع في حدث عند النقر على زر امر الطباعه عندما يكون متاح

Private Sub RPRINT_Click()
DoCmd.SelectObject acReport, "TAB01", True
DoCmd.PrintOut , , , , Me.NCopy.Value
DoCmd.RunSQL "UPDATE TAB01 SET TAB01.PRINT = False;"
End Sub

آلية عمل الكود

عند النقر على زر امر الطباعة فإنه يقوم بإرسال امر اختيار التقرير المطلوب وهو TAB01

ثم يتم ارسال امر الطباعة مضافا اليه عدد النسخ المحدده في مربع النص NCopy سواء نسخه او نسختين او ثلاث مع ملاحظة انه سيتم طباعة فقط السجلات الغير محدد عليها علامة الصح لان التقرير مبني على الاستعلام QPRINT والذي به معيار اظهار السجلات الغير محدد عليها علامة صح .

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

DoCmd.RunSQL "UPDATE TAB01 SET TAB01.PRINT = False;"

تذكر : انه يتم طباعة السجلات الغير محدد عليها علامة الصح

للتجربه : ضع علامة صح على جميع السجلات عدى واحد منها ثم ضع عدد النسخ 3 مثلا ثم اضغط زر امر الطباعة وانظر النتيجه

سيتم طباعة هذا السجل الغير محدد فقط 3 مرات

*. لا نحتاج الى الماكرو او الوحدة النمطية فقد تم ازالتها وتم معالجة هذا الامر بالكود كم داخل النموذج فقط

وهذا ملفك بعد التعديل

PReport_UP2.rar

#7

السلام عليكم

الأخت

زهرة

الله يعطيكِ العافية

إن شاء الله المثال واضح

تحياتي الكبيرة لتعاونكِ

( الشاعر )

#8

الاستاذه زهرة

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

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

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

#9

up

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

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