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

التقارير لدي تظهر عمودية رغم تنسيقي لها كأفقية

مغلق
بدأه حارث في 28 أغسطس 2001 · 22 رد · 1,871 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أتوقع أن حل هذا الإشكال غير عسير ، لكني لم أجده ، لذا أرجو المساعدة .

وجزى الله الجميع كل خير

#2

1- من قائمة ابدأ ,اعدادات اختار طابعات واذا الويندوز لديك نازل ena اليك :-

1- Strat,setting,printer

2-اضغط على رمز الطابعة التى تستخدمها بالزر اليمين واختار خصائص ومن ثم من الورق (paper) اختار اختار افقى ومن ثم تطبيق موافق

#3

سلمك الله وعافاك ، الطريقة جيدة ، لكن هل لهذه الطريقة سلبيات كأن تؤثر على طباعة التقارير الأخرى أو على طباعة ملفات word .

ثم ألا يوجد طريقة أخرى عن طريق كود أضمنه التقرير .

أرجو الإفادة .

#4

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

=DoSave()

وفي الوحدة النمطية العامة :

Public Function DoSave()

On Error Resume Next

DoCmd.RunCommand acCmdSave

End Function

والقصد منها حفظ الإعدادات عند فتح التقرير .

#5

أخي أبو حمود : جزاك الله كل خير على هذا الجواب ، وسأحاول تطبيق ما ذكرته ، لكن لدي إشكال هو :

عندي وحدة نمطية واحدة سابقة اسمها : "برنامج عمومي" ، كتبت الكود الذي ذكرته في نفس الوحدة النمطية : "برنامج عمومي" فهل هذا يؤدي الغرض، أم لا بد أن أكتبه في وحدة نمطية جديدة ، وماذا أسميها ؟

واعذر أخاك على قلة معرفته .

#6

اكتبها في نفس الوحدة ولا يؤثر ذلك في شيء .

ولك تحياتي .

#7

الأخ أبو حمود ، الإخوة الأفاضل :

آسف على تأخري في الرد ، حيث فضلت أن يكون ذلك بعد تأكدي من جدوى هذه الطريقة في التقارير الموجودة لدي .

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

ملاحظة : دائما عندما أعدل إعدادات الصفحة للتقرير إلى الوضع الأفقي لا يعود إلى الوضع العمودي في الحال، بل بعد فترة .

سؤال : ألا يوجد كود يقوم بإعداد الصفحة على الوضع الأفقي ، ولا يكتفي فقط بحفظ الإعدادات السابقة ؟؟

#8

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

DoCmd.OpenReport "اسم تقرير", acViewPreview

'Screen.ActiveReport.Printer.Orientation = acPRORLandscape ' صفحة أفقية

Screen.ActiveReport.Printer.Orientation = acPRORPortrait ' صفحة عمودية

علماً أنني جربته على الأكسس 2002

ولك تحياتي

#9

أخي أبو حمود :

لقد جربت الكود الذي وضعته بعدة طرق :

1- في نموذج في زر أمر كنت أعددته في السابق لفتح التقرير ، استبدلت الكود السابق بالكود الذي كتبتَه والخاص بالصفحة الأفقية . وقد نتج عن هذه الطريقة الرسالة التالية عند فتح التقرير :

Application-defined or object-defined error

مع استمرار التقرير على الوضع العمودي .

2- في الوحدة النمطية العامة كتبت ما يلي :

Public Function ofoqy()

On Error Resume Next

DoCmd.OpenReport "bayan", acViewPreview

Screen.ActiveReport.Printer.Orientation = acPRORLandscape ' صفحة أفقية

End Function

ثم جعلت في حدث عند نقر الزر السابق الإشارة إليه : =ofoqy()

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

3- في التقرير نفسه في حدث عند الفتح كتبت الكود (السطر الخاص بالفتح على الوضع الأفقي فقط) ، ونتج عن هذا الرسالة التالية :

( Run time error 2476

لقد أدخلت تعبيرا يتطلب أن يكون التقرير هو الإطار النشط ) ولم يفتح التقرير .

4- في التقرير نفسه في حدث عند التنشيط كتبت الكود ، ونتج عنه نفس الرسالة وفتح التقرير على الوضع العمودي..

ملاحظة : حذفت ما سبق وأن أعددناه من الأمر DoSave() والذي جعلناه في التقرير في حدث عند التنشيط .

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

#10

أولاً أخبرني هل هي تقارير في الآكسس أو في الفيجول بيسك

والحل عندي في الحالتين إن شاء الله .

#11

تقارير في الأكسس

والشكر لكم مسبقا

#12

الأخ حارث

السلام عليكم

أذهب إلى الوحدة النمطية ثم اكتب

Screen.ActiveReport.Printer.Orientation = acPRORLandscape

كلمة كلمة يعني اكتب Screen ثم نقطه ثم ابحث عن ActiveReport ثم نقطه ثم ابحث عن Printer ثم نقطه ثم ابحث عن Orientation ثم إذا كتبت = تظهر لك الكلمة الأخيرة acPRORLandscape وإذا لم تظهر أو لم تجد أحد الكلمات في القائمة فهذا معناه أن الإصدار الذي لديك لا يدعم هذا الإجراء للعلم أنا أعمل على أكسس 2002 .

جرب التالي (إما أفقيه أو عمودية)

Screen.ActiveReport.Printer.Orientation = 2 ' صفحة أفقية

Screen.ActiveReport.Printer.Orientation = 1 ' صفحة عمودية

وإذا لم يعمل فجرب :

Dim prt As Printer

Dim strNamePrinter As String

strNamePrinter = Application.Printer.DeviceName

Set prt = Application.Printers(strNamePrinter)

prt.Orientation = 2

DoCmd.OpenReport "اسم التقرير", acViewPreview

Reports("اسم التقرير").Printer = prt

وللعلم فكل هذه الطرق تعمل عندي جيداً .

نسيت أن أقول لك أعجبني ردك كثيراً ومحاولاتك وكتاباتك للرسائل التي ظهرت لك جواب مكتمل حقيقة ، وأما عدم ظهور رسالة الخطأ عند جعلك الكود في دالة فبسبب العبارة On Error Resume Next ولو أزلتها لظهرت لك أيضا .

في الغد إن شاء الله سأركب الأوفس 2000 لأن الكثير من الأخوة يعملون عليه وسأجرب الكود عليه وأخبرك بالنتيجة .

ولك تحياتي

#13

الأخ أبوحمود ، الإخوة جميعا :

بعد التحية والشكر :

أولا : في الطريقة الأولى : لم أجد الكلمة Printer كما لم تظهر لي كلمة acPRORLandscape

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

Compile rrror:

User-defined type not defined

ثم فتح الوحدة النمطية وتظليل العبارة prt As Printer (من السطر الأول من الكود الثاني الذي أوردته) .

ملاحظة : بتطبيق الطريقة التي ذكرتها أولا (الكتابة كلمة كلمة) على الكود الثاني لم أجد الكلمة Printer

سؤال : أنا أعمل على أكسس 2000 ، فهل أثبت أكسس 2002 ؟ وهل سيؤثر هذا سلبيا على قاعدة البيانات التي أعمل عليها؟

وجزاكم الله كل خير .

#14

غريبة جداً

أنا نفسي أعمل تقارير في الآكسس ولم أعاني من هذه المشكلة

والتقرير أتصرف فيه بدون كود لجعله أفقياً أو عموديا

مثلا في الآكسس 97 ولا أدري بصراحة هل يختلف عن 2000 لكن :

من الضروري فتح التقرير في وضع التصميم ثم اختر من قائمة ملف ـ إعداد الصفحة وغير ما يلزم ، وتستطيع التحكم في طريقة عرض الصفحة والهوامش وغيرها.

إلا إذا كنت تريد إظهار التقرير عن طريق الكود

أو تكون عندك مشكلة في الآكسس ـ تراها تحصل .

#15

الأخ أبو زياد :

أنا أيضا سبق أن صممت قاعدة بيانات على أكسس 97 ولم أواجه هذه المشكلة .

وقد جربت الطريقة التي ذكرتها(إعداد الصفحة حال عرض التصميم) ولم تنجح معي .

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

ربما المشكلة في قاعدة البيانات لدي ، أو في تصميمي للتقارير في البداية ، لا أدري .

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

وأعانكم الله علينا.

#16

أخوي حارث

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

في الأكسس 2002 قد لا تحتاج الى أكواد أو أي شيء آخر .

ولك تحياتي

#17

اليوم فقط ركبت أكسس 2002 .

وجربت الأكواد جميعها ، وأدت جميعها الغرض بأفضل ما يكون .

ملاحظة : ربما كانت هذه الأكواد تعمل على أكسس 2000 أيضا ، لأني اكتشفت مؤخرا أني كان عندي في الوحدة النمطية (الفيجوال بيسك) في Refrence في tools بعض الخيارات لم تمكن ، مما أدى إلى عدم قبول بعض العبارات في الأكواد لدي في أكسس 2000 ، مع أني سبق أن استعملتها في قواعد بيانات أخرى على أكسس 2000 وكانت تعمل بشكل ممتاز، وبعد اختياري خيارات Refrence المناسبة عملت معي .

لعلي فيما بعد أعيد تثبيت أكسس 2000 وأخبركم بالنتيجة ، وإن تفضل بعض الإخوة بتجريب ذلك فلهم الشكر .

الأخ أبو حمود : لا يسعني سوى الدعاء لك بالأجر ، وبالتوفيق في أمور دينك ودنياك .

وفق الله الجميع .

#18

أخي حارث

ماهي الأكواد التي ترغب في تجربتها على الأكسس 2000 فبعضها قد جربته ولا يعمل اكتبها لأخبرك بالنتيجة .

ولك تحياتي

#19

الأخ أبو حمود :

أقصد الأكواد التي سبق أن أوردتها في هذا الموضوع ، وقد حملت منذ قليل أكسس 2000 وألغيث تثبيبت أكسس XP ، فأصبحت الأكواد لا تعمل. ومع محاولاتي للقيام ببعض التغييرات في الـ REFERFNCES إلا أنه هذا لم يثمر شيئا، حيث لم أستطع استخدام كلمة Printer التي هي غير موجودة في أكسس 2000 ، والتي بسببها لا يتقبل الأكواد المشار إليها.

وهنا سؤال / ما هي المراجع (REFERFNCES) الواجب اختيارها ، لأني اليوم كله أحاول إيجاد كلمة DATABASE دون جدوى ، وبسبب ذلك لم أستطع استخدام أحد الأكواد ، حتى اكتشفت أنه في المراجع (REFERFNCES) لم يتم اختيار MICROSOFT DAO 3.6 وبعد اختيارها وجدت الكلمة.

#20

الأخ حارث

التعديل بواسطة العبارة التي ذكرتها وفي أولها كلمة Printer لاتعمل إلا في الأوفس اكس بي وقد جربت ذلك .

ولك تحياتي

#21

لقد اطلعت على ما كتبتماه في الوصلة المذكروة ففتبين لي ما يلي:

1- إصراركما ومواصلتكما في الحلول مما أعجبني فيكما حتى أنني تتبعت كلامكما نقطة نقطة.

2 - يبدو لي أنكما تعانون أنتم والكثير منالإخوة من قضية اختلاف إصدارات الأوفس ومثلكم ينبغي أن تكون عنده الإصدارت الثلاثة على الجهاز لأجل المقارنة وكذلك فتح جميع الأمثلة التي تطرح في المنتدى هذا أو غيره من منتديات قواعد البيانات ((يعني تدلع بين الاصدارات)). وهذه الإصدرات الثلاثة تعمل عندي على ويندز واحد دون أي مشاكل.

3- بالنسبة لما ذكره أبو حمود من الكود التالي:

Screen.ActiveReport.Printer.Orientation = 2 ' صفحة أفقية

Screen.ActiveReport.Printer.Orientation = 1 ' صفحة عمودية

فمن خلال تجاربي على هذا الكود اتضح لي أنه لا يعمل في إلا على الأوفيس 2002xp ومع ذلك لم يعمل عندي بصفة جيدة إلا إذا صغرت النموذج ثم نشطته

لأنه كما يظهر في الرسالة التي ذكرها الأخ / حارث أنه يتطلب أن يكون التقرير نشطاً وهذا ما حدث بالفعل عندي فإني أصغر التقرير ثم أنشطه حتى يعمل أما إذا وضعته في الحدث عند الفتح فإنه تبادرني الرسالة التالية:

run-time error '2476'

لقد أدخلت تعبيراً يتطلب أن يكون التقرير هو الإطار النشط.

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

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

حقاً إنكما لتستحقان الشكر الجزيل والدعاء الصادق.

ويبقى سؤالي الأخير هل بالامكان عمل مثل ذلك في الإصدارين الأولين من أكسس من أن ذلك مستحيل ؟؟؟؟؟؟؟؟

أرجو أن تكون الصورة اتضحت لك من يعاني هذه المشكلة.

#22

بالنسبة للتحكم بطريقة عرض التقارير

سواء كانت عموديا او افقيا ومثل ما قال

الاخ (ابوزياد) في الصفحة الاولى من هذا الموضوع

وعلى الاكسس 2000 و 97 .الطريقة هي وبكل سهولة

فتح التقرير في وضع التصميم ثم اختر من قائمة

ملف ـ إعداد الصفحة وغير ما يلزم ، وتستطيع

التحكم في طريقة عرض الصفحة والهوامش وغيرها.

إلا إذا كنت تريد إظهار التقرير عن طريق الكود

====================

اعتقد اني متاخر في الرد؟؟؟؟

وللجميع التحية

#23

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

Screen.ActiveReport.Printer.Orientation = 2 ' صفحة أفقية

Screen.ActiveReport.Printer.Orientation = 1 ' صفحة عمودية

فيمكنك تلافيه بوضع اسم التقرير وليس التقرير النشط

Report![اسم التقرير].Printer.Orientation = 2 ' صفحة أفقية

Report![اسم التقرير].Printer.Orientation = 1 ' صفحة عمودية

مع العلم أنه لم تظهر هذه الرسالة عندي لأنني وضعت الكود السابق بعد أمر فتح التقرير مباشرة وليس في مكان آخر .

ولكم تحياتي

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

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

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

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

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

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