صباح حسين قام بنشر مايو 10, 2012 قام بنشر مايو 10, 2012 السلام عليكم . اخواني الاعزاء احتاج الى طريقة تغير حجم الولاقة من A4 الى A5 عند طباعة التقرير بواسطة زر امر او اي كود وسوف احال ان اشرح المطلوب بالشكل التالي لدي برنامج شؤون الموظفين ولدي عدد من التقارير يطبع بشك دوري كل شهر مرة تخص كل موظف على حدى مثلا( المكافئات . الساعاعت الاضافية . الغياب .....) وعند عرض التقارير يظهر لبعض الموظفين سجلات قليلة مثلا خمسة والاخر اكثر من عشر المطلوب طباعة تقارير الموظفين الذين لديهم اقل من خمسة سجلات على A5 وطباعة تقارير الموظين الذين لديهم اكثر من ذلك على ورقة A4 اتمنى ان اكون وفقت في طرح طلبي ولكم قائق الشكر والتقدير مقدماً
صباح حسين قام بنشر مايو 11, 2012 الكاتب قام بنشر مايو 11, 2012 السلام عليكم .اخواني هل انا لم اوفق بشرح طلبي لاعيد صياغته بشكل اخر . ام اصبر و ساحصل على اجابة لكم مني كل التقدير
أبو آدم قام بنشر مايو 11, 2012 قام بنشر مايو 11, 2012 قيد الإجراء ... وأتمنى ارفاق مثال للتطبيق والتعديل ..........
صباح حسين قام بنشر مايو 12, 2012 الكاتب قام بنشر مايو 12, 2012 السلام عليكم . شكراً لك اخي ابو ادم على تجاوبكم مع الموضوع واعتذر لعدم تمكني من ان ارفق ملف لانه كبير ويحتوي على بيانات . وقد وجدت حل وقتي وهي كالاتي 1-انشاء استعلام يحتوي على حقل(re_count) محسوب يقوم بحساب عدد السجلات لكل موظف 2-انشاء استعلام يحتوي على الحقول المطلوبة بالاضافة الى الحقل (re_count)اعلاه مع وضع شرط معايرة (اصغر او يساي 10) وانشاءت تقرير يعتمد على هذا الاستعلام وخترت حجم الورقة A5 3- نسخت الاستعلام في الفقرة 2 مع تغير شرط المعايرة الى ( اكبر من 10 ) وانشاءت تقرير على هذا الاستعلام واخترت حجم الورقة A4 4- صممت مايكرو يقوم بعرض التقريران في ان واحد وفي الختام اكرر اعتذاري لعدم ارفاق الملف وارجو ان يكون لديكم حل اخر لنني بهذه الطريقة سوف اضطر الى اعادة انشاء اكثر من 10 استعلامات مما يؤدي الى كبر حجم القاعدة
أبو آدم قام بنشر مايو 12, 2012 قام بنشر مايو 12, 2012 قم بإنشاء وحدة نمطية جديدة وإنسخ اليها : Option Compare Database Type str_DEVMODE RGB As String * 94 End Type Type type_DEVMODE strDeviceName As String * 16 intSpecVersion As Integer intDriverVersion As Integer intSize As Integer intDriverExtra As Integer lngFields As Long intOrientation As Integer intPaperSize As Integer intPaperLength As Integer intPaperWidth As Integer intScale As Integer intCopies As Integer intDefaultSource As Integer intPrintQuality As Integer intColor As Integer intDuplex As Integer intResolution As Integer intTTOption As Integer intCollate As Integer strFormName As String * 16 lngPad As Long lngBits As Long lngPW As Long lngPH As Long lngDFI As Long lngDFr As Long End Type Sub SetupReportPage(InputOrientation As Integer, InputPaperSize As Integer, InputPaperSource As Integer, InputReportName As String) Dim strDevModeExtra As String Dim DevString As str_DEVMODE Dim DM As type_DEVMODE DoCmd.OpenReport InputReportName, acViewDesign DoCmd.Minimize strDevModeExtra = Reports(InputReportName).PrtDevMode DevString.RGB = strDevModeExtra LSet DM = DevString DM.intPaperSize = InputPaperSize DM.intDefaultSource = InputPaperSource DM.intOrientation = InputOrientation LSet DevString = DM Reports(InputReportName).PrtDevMode = DevString.RGB DoCmd.Close acReport, InputReportName, acSaveYes End Sub يكون مصدر التقرير إستعلام (بدون شروط تخص حجم الورقة) ، وفي زر أمر في النموذج ، إنسخ في حدث عند الضغط ، الكود التالي: Private Sub Command1_Click() If RecordCount <= 5 Then SetupReportPage 2, 11, 4, "Rep1" DoCmd.OpenReport "Rep1", acViewPreview Reports!Rep1!Text9 = Printer.PaperSize Else SetupReportPage 2, 9, 4, "Rep1" DoCmd.OpenReport "Rep1", acViewPreview End If End Sub اذا كان عدد القيود يساوي أو أقل من 5 ، سيقوم بإختيار الطباعة على ورق A5 اذا كان عدد القيود غير ذلك ، سيقوم بإختيار الطباعة على ورق A4 جربت الكود لدي وأمورة تمام ... جرب ووافني بالنتيجة ..... .......................
ابو ياسر قام بنشر مايو 13, 2012 قام بنشر مايو 13, 2012 لدي حل مختصر ( تحت الاعداد ) ويمكنه اختيارالكثير من مقاسات وانواع الورق حسب ما يضعه من شروط ننتظر الاخ صباح بعد التجربة ومدى تحقق مطلوبه
صباح حسين قام بنشر مايو 16, 2012 الكاتب قام بنشر مايو 16, 2012 السلام عليكم اخواني . والف شكر لتجاوبكم معي سوف اجرب الطريقة التي ذكرها الاخ ابو ادم واعلمك بالنتيجة واسف لتاخري بتقديم الشكر لكم وذلك لكثرة مشاكل النت عندنا . وامل ان نبقى على التواصل بالموضوع . مع التقدير
صباح حسين قام بنشر مايو 18, 2012 الكاتب قام بنشر مايو 18, 2012 السلام عليكم . في البداية اقدم شكري لجميع الاخوة وبالاخص ل(ابو ادم وابو ياسر ) لاهتمامها بالموضوع . لقد جربت طريقة الاخ ابو ادم وقد نجحت في تغير حجم الورقة حسب عدد السجلات ولكن ظهرت لدي مشكلة عدم ظهور (الحقول) في نفس الاماكن عند اختيار حجم A5 اي ان التقرير يظهر بشكل غير منسق ومرتب كما في A4 . هل من طريقة لتلافي هذه المشكلة بعد اذن اخونا ابو ادم ارجو من الاخ ابو ياسر طرح طريقته
ابو ياسر قام بنشر مايو 19, 2012 قام بنشر مايو 19, 2012 الاختلاف في تنسيق التقريريرجع الى ان الورق سيتغير من مقاس الى آخر بينما ابعاده ثابته في الخصائص وهذا شيء بديهي ، لذا يجب ان يصاحب التغيير في الورق تغييرا في المسافات والهوامش فنحن بحاجة اولا الى معرفة المقاسات الافتراضية المناسبة لكل نوع ثم تضمين الكود هذه المقاسات ، هذا ما اعتقده ومع ذلك لم احاول تطبيقه ، والله اعلم اما ما ذكرته لكم من امكانية اختيار العديد من المقاسات فهذا يمكن تحقيقه في الكود المرفق حيث يمكن انشاء متغير يمثل اسم الطابعة ومصدره مربع قائمة في النموذج Public Function Rline() Dim Lsum As Double Lsum = Reports!R1![zz] Rline = Lsum End Function Private Sub طباعه_Click() On Error GoTo Err_طباعه_Click DoCmd.OpenReport "R1", acViewPreview, "", "", acNormal 'DoCmd.Minimize If Rline <= 10 Then Reports!R1.Printer.PaperSize = acPRPSA5 DoCmd.OpenReport "R1", acNormal Else Reports!R1.Printer.PaperSize = acPRPSA4 DoCmd.OpenReport "R1", acNormal End If DoCmd.Close acReport, "R1" Exit_طباعه_Click: Exit Sub Err_طباعه_Click: MsgBox Err.Description Resume Exit_طباعه_Click End Sub zz هو حقل غير منظم في تذييل التقرير لاستخراج عدد السجلات ويكتب في مصدر عنصر التحكم العبارة التالية : =Count(*)
صباح حسين قام بنشر مايو 23, 2012 الكاتب قام بنشر مايو 23, 2012 شكرا لكم اخواني وصلت الفكرة ان شاء الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.