سلمان الشهراني قام بنشر سبتمبر 28, 2017 قام بنشر سبتمبر 28, 2017 (معدل) اسعد الله اوقاتكم اخواني الكرام عندما تكون تقارير البرنامج تطبع على اكثر من طابعة مثلا طابعة خاصة بالفواتير وطابعة خاصة ببطاقات العضويه وطابعة A4 طريقتي كالتالي افتح البرنامج بامتداد ACCDB لكونه يرفض حفظ الاعدادات اذا كان الامتداد ACCDEثم اقوم بضبط اعدادات الفاتوره من خلال اعدادات الصفحه - تبويب الصفحه - اختيار طابعة معينه ثم اقوم بضبط تقرير البطاقات ايضا نفس الطريقه واترك بقية التقارير على الطابعة الافتراضيه A4 ثم اقوم بتغيير امتداد البرنامج الى ACCDE وتنزيله ولكن هذا غير عملي 100% حيث انه لو قام العميل بتغيير فرضا اسم الطابعه او اراد اضافة تقرير الى نفس الطابعة ليطبع مباشره لابد ان يتواصل معي ثم اقوم بالخطوات التي ذكرتها سابقاً المطلوب هل من طريقة او كود يظر مربع اعدادات الصفحه (الصوره بالمرفق ) للتقرير دون الدخول الى تصميم البرنامج ويتم حفظ الاعدادات اذا كان الامتداد ACCDE وشاكر للجميع اعدادات الصفحه.rar تم تعديل سبتمبر 28, 2017 بواسطه سلمان الشهراني
ابوخليل قام بنشر سبتمبر 28, 2017 قام بنشر سبتمبر 28, 2017 التغيير في التصميم لا يمكن بعد الحماية ولكن تستطيع عمل التقارير حسب الطابعة ، فتقرير البطاقة لايمكن طباعته الا من طابعة البطاقات والتقارير الاخرى من الطابعة A4 .. وهكذا ... ويتم تغيير الطابعة من نموذج التقارير بحيث يختار الطابعة الافتراضية قبل امر الطباعة 2
سلمان الشهراني قام بنشر سبتمبر 28, 2017 الكاتب قام بنشر سبتمبر 28, 2017 8 ساعات مضت, ابوخليل said: التغيير في التصميم لا يمكن بعد الحماية ولكن تستطيع عمل التقارير حسب الطابعة ، فتقرير البطاقة لايمكن طباعته الا من طابعة البطاقات والتقارير الاخرى من الطابعة A4 .. وهكذا ... ويتم تغيير الطابعة من نموذج التقارير بحيث يختار الطابعة الافتراضية قبل امر الطباعة حياك الله استاذنا الغالي ابو خليل صحيح انه لايمكن التغيير في التصميم بعد الحمايه ولكن ماكنت اقصده انه عندما ارغب في جعل تقرير معين يطبع مباشره على طابعة معينه فلابد ان يفتح البرنامج في وضع التصميم ثم معاينة للتقرير قبل الطباعة ثم كلك يمين ثم اعدادات الصفحه ثم اختيار تبويب صفحه ثم اختيار طابعة معينه ولابد ان يكون البرنامج امتداد accdb عندما يكون امتداد accde يتم فتح البرنامج وعمل كل ماذكر سابقا ولكن عند اغلاق البرنامج وتشغيله تجد ان التقرير يعود الى الطابعة الافتراضيه المطلوب هل من طريقه جعل التقرير يطبع مباشره على طابعة معينه من خلال مثلا معاينة التقرير ثم كود يظهر مربع اعداد الصفحه وامكانيه تغيير الطابعة ليتم تثبيت التقرير عليها او هل من الممكن حفظ الطابعات في جدول مثلا وتحديد التقرير المطلوب من خلال اسم الطابعه المخزن بالجدول
Shivan Rekany قام بنشر سبتمبر 28, 2017 قام بنشر سبتمبر 28, 2017 لا اعرف هل انا فهمت جيدا ام لا لكن حسب من الاحسن للعملية طباعة ان تعمل كومبوبوكس ليأخذ اسماء كل الطابعات المقترنة و تختار الطابعة المناسبة للطباعة من كومبوبوكس 1
ابو جودي قام بنشر سبتمبر 28, 2017 قام بنشر سبتمبر 28, 2017 11 ساعات مضت, سلمان الشهراني said: اسعد الله اوقاتكم اخواني الكرام عندما تكون تقارير البرنامج تطبع على اكثر من طابعة مثلا طابعة خاصة بالفواتير وطابعة خاصة ببطاقات العضويه وطابعة A4 طريقتي كالتالي افتح البرنامج بامتداد ACCDB لكونه يرفض حفظ الاعدادات اذا كان الامتداد ACCDEثم اقوم بضبط اعدادات الفاتوره من خلال اعدادات الصفحه - تبويب الصفحه - اختيار طابعة معينه ثم اقوم بضبط تقرير البطاقات ايضا نفس الطريقه واترك بقية التقارير على الطابعة الافتراضيه A4 ثم اقوم بتغيير امتداد البرنامج الى ACCDE وتنزيله ولكن هذا غير عملي 100% حيث انه لو قام العميل بتغيير فرضا اسم الطابعه او اراد اضافة تقرير الى نفس الطابعة ليطبع مباشره لابد ان يتواصل معي ثم اقوم بالخطوات التي ذكرتها سابقاً المطلوب هل من طريقة او كود يظر مربع اعدادات الصفحه (الصوره بالمرفق ) للتقرير دون الدخول الى تصميم البرنامج ويتم حفظ الاعدادات اذا كان الامتداد ACCDE وشاكر للجميع اعدادات الصفحه.rar شوف المرفق ده ممكن يعجبك ويفيدك Full Control Of Print Report.rar 1
أيمن عبادي قام بنشر سبتمبر 29, 2017 قام بنشر سبتمبر 29, 2017 أخي أبا جودي المرفق الذي قمت بإرفاقه عبارة عن صور فقط فكيف يمكن تطبيق ذلك عمليا ؟
أبو إبراهيم الغامدي قام بنشر أكتوبر 1, 2017 قام بنشر أكتوبر 1, 2017 السلام عليكم يمكن إعادة ضبط الطابعة الافتراضية لأكسس برمجيا على النحو التالي Function UF_REPORT_PROCESS(Optional REPORT_VIEW As AcView) Dim CUR_PRINTER As Printer '-- GET CURRENT DEFAULT PRINTER Set CUR_PRINTER = Application.Printer '-- SET NEW DEFAULT PRINTER Application.Printer = Application.Printers(Me.CMB_PRINTER_LIST.Value) '-- PRINT REPORT DoCmd.OpenReport Me.LST_REPORT_LIST, REPORT_VIEW '-- RETURN TO SYSTEM DEFAULT PRINTER Application.Printer = CUR_PRINTER End Function وهذا مثال مبسط: SET DEFAULT PRINTER.zip 4
ابو جودي قام بنشر أكتوبر 1, 2017 قام بنشر أكتوبر 1, 2017 في 9/29/2017 at 20:20, أيمن عبادي said: أخي أبا جودي المرفق الذي قمت بإرفاقه عبارة عن صور فقط فكيف يمكن تطبيق ذلك عمليا ؟ صورة فقط ؟ انا مش فاهم يعنى ايه صورة فقط ؟
سلمان الشهراني قام بنشر أبريل 26, 2018 الكاتب قام بنشر أبريل 26, 2018 هل من حل لضبط التقرير على طابعه بعد تحويله الى accde ليتم طباعة مباشره
kaser906 قام بنشر أبريل 26, 2018 قام بنشر أبريل 26, 2018 50 دقائق مضت, سلمان الشهراني said: هل من حل لضبط التقرير على طابعه بعد تحويله الى accde ليتم طباعة مباشره لماذا لا تقوم بفتح التقرير عن طريق ملف pdf ومن هناك يمكنك اخيار الطابعة التي تريد 1
سلمان الشهراني قام بنشر أبريل 26, 2018 الكاتب قام بنشر أبريل 26, 2018 منذ ساعه, kaser906 said: لماذا لا تقوم بفتح التقرير عن طريق ملف pdf ومن هناك يمكنك اخيار الطابعة التي تريد الله يعطيك العافيه وشاكر لتفاعلك بس عندي مثلا برنامج نقاطع بيع وعند اصدار الفاتوره لازم تكون الطباعه مباشرة لان فتح التقرير ثم اختيار الطابعه ياخذ وقت وراح يكون ممل للمستخدم
رمهان قام بنشر أبريل 26, 2018 قام بنشر أبريل 26, 2018 مرحبا اخ سلمان لم تعلق على مشاركة الاخ ابو ابراهيم هنا يمكن لك فائدة وان احسنت الفهم فاعتد عليك تخزين اسم الطابعو في جدول ومن خلال المشاركة اعلاه او مشاركة ابو ابراهيم تحياتي 1
سلمان الشهراني قام بنشر أبريل 28, 2018 الكاتب قام بنشر أبريل 28, 2018 في ٢٧/٤/٢٠١٨ at 02:35, رمهان said: مرحبا اخ سلمان لم تعلق على مشاركة الاخ ابو ابراهيم هنا يمكن لك فائدة وان احسنت الفهم فاعتد عليك تخزين اسم الطابعو في جدول ومن خلال المشاركة اعلاه او مشاركة ابو ابراهيم تحياتي الله يعطيك الف عافيه الله يعطيك العافيه واعتذر من الاستاذ ابراهيم لعدم التعليق ولانقطاعي عن الموضوع وعدم انتباهي بنسبه للمرفق الخاص بالاستاذ ابراهيم جدا ممتاز ولكن يحفظ كل التقارير الموجوده بالبرنامج على الطابعه التي تم اختيارها ولو افترضنا اانه يوجد ثلاث فواتير وارغب ان تطبع كل فاتوره على طابعه معينه فلن تتم حسب مرفق الاخ ابرهيم
سلمان الشهراني قام بنشر أبريل 28, 2018 الكاتب قام بنشر أبريل 28, 2018 بنسبه لموضوع الاستاذ آدم لم يعطي النتيجه المطلوبه
رمهان قام بنشر أبريل 28, 2018 قام بنشر أبريل 28, 2018 13 ساعات مضت, سلمان الشهراني said: بنسبه للمرفق الخاص بالاستاذ ابراهيم جدا ممتاز ولكن يحفظ كل التقارير الموجوده بالبرنامج على الطابعه التي تم اختيارها ولو افترضنا اانه يوجد ثلاث فواتير وارغب ان تطبع كل فاتوره على طابعه معينه فلن تتم حسب مرفق الاخ ابرهيم الله يعافيك اخ سلمان لا حظ ان فكرة ابو ابراهيم عبارة عن دالة تستخدمها باي مكان وهي تقوم بتخزين الطابعة الافتراضية الحالية قبل تغيير الطابعة ومن ثم اختيار الطابعة ثم اعادة الطابعة الافتراضية هنا تستطيع استخدامها لكل تقرير على حدة . اعتقد حاجتك لم تكتمل مع مثال ابو ابراهيم لانه يتم اختيار الطابعة كل مرة يريد ان يطبع التقرير وانت تريد تعريف الطابعة مرة واحدة عند العميل لكل تقرير مختلف هنا عليك بتخزين اسم التقرير بجدول ويبقى عمود اسم الطابعة فارغ يتم تعبئته حسب العميل او حسب كل طابعة عند العميل يتم اعداده مرة واحدة عند تحميل البرنامج لاول مرة . يمكن تضيف ذكاء شوية بان البرنامج يشيك ان كل تقرير طابعنه موجوده فلو فقدت طابعة تظهر رسالة لتعبئة تطابعة هذا التقرير بمعنى فكرة الحل عبارة عن : كود ابو ابراهيم + تخزين بجدول نفس افكرة اعلاه استخدمتها بتوزيع طلب العميل على طابعات نوع الطلب . هنا تقرير واحد على اكثر من طابعة وحسب الاصناف تحياتي 1 1
أبو إبراهيم الغامدي قام بنشر أبريل 28, 2018 قام بنشر أبريل 28, 2018 13 ساعات مضت, سلمان الشهراني said: بنسبه للمرفق الخاص بالاستاذ ابراهيم جدا ممتاز ولكن يحفظ كل التقارير الموجوده بالبرنامج على الطابعه التي تم اختيارها ولو افترضنا اانه يوجد ثلاث فواتير وارغب ان تطبع كل فاتوره على طابعه معينه فلن تتم حسب مرفق الاخ ابرهيم أهلا بك سلمان.. كان المقصود من مشاركتي هو التطبيق العملي لفكرة الاستاذ شيفان فقط.. أما بالنسبة لتثبيت وضعية الطابعة الافتراضية لكل تقرير فسوف يكون حسب المفهوم التالي.. - تحديد أنواع الطابعات التي سوف يستخدمها البرنامج (النفثية، الليزرية، النقطية، الباركود،.. ألخ) - تحديد اسم الطابعة لكل نوع من الانواع السابقة.. - تحديد اسم الطابعة لكل تقرير طالما الطابعة متوفرة؛ يجب الاخذ بعين الاعتبار تغير اسماء الطابعات وبالتالي نحن بحاجة إلى معرفة ما إذا كانت الطابعة لا تزال متوفرة عند إقلاع البرنامج أو عند تحميل التقرير على الأقل.. - إيجاد طريقة لتثبيت القيمة الافتراضية وفحصها في كل مرة وفقا للمفاهيم السابقة.. سوف أقوم بترجمت المفاهيم السابقة عمليا في المشاركة التالية بإذن الله.. 2 1
سلمان الشهراني قام بنشر أبريل 30, 2018 الكاتب قام بنشر أبريل 30, 2018 الله يعطيكم الف عافيه بنسبه لحبيبنا واستاذنا الاخ رمهان جميل جدا وسوف احاول باذن الله الاستاذ ابراهيم الله يعطيك الف عافيه وبإنتظار ابداعك
أبو إبراهيم الغامدي قام بنشر أبريل 30, 2018 قام بنشر أبريل 30, 2018 في ٢٨/٤/٢٠١٨ at 17:23, رمهان said: هنا عليك بتخزين اسم التقرير بجدول ويبقى عمود اسم الطابعة فارغ يتم تعبئته حسب العميل او حسب كل طابعة عند العميل يتم اعداده مرة واحدة عند تحميل البرنامج لاول مرة . يمكن تضيف ذكاء شوية بان البرنامج يشيك ان كل تقرير طابعنه موجوده فلو فقدت طابعة تظهر رسالة لتعبئة تطابعة هذا التقرير أهلا أستاذ رمهان.. أرى أن أفكارنا متطابقة تماماً! 5 ساعات مضت, سلمان الشهراني said: الله يعطيكم الف عافيه بنسبه لحبيبنا واستاذنا الاخ رمهان جميل جدا وسوف احاول باذن الله نعم.. فكرة الأستاذ رمهان سهلة التطبيق ولا تحتاج إلى شفرة معقدة. في ٢٨/٤/٢٠١٨ at 17:23, رمهان said: يمكن تضيف ذكاء شوية بان البرنامج يشيك ان كل تقرير طابعنه موجوده فلو فقدت طابعة تظهر رسالة لتعبئة تطابعة هذا التقرير سيتضمن الجدول عمودين على الأقل عمود يعرف الطابعة والعمود الآخر يحمل اسم الطابعة؛ يستخدم معرف الطابعة كمؤشر لاسم الطابعة عند التعيين.. :: الفكرة الأساسية هي أننا بحاجة إلى متغير يمكن أعادة تغير قيمته برمجيا.. كان بالإمكان استخدام ثوابت عامة تحمل أسماء الطابعات ومن ثم تعيين هذا الثابت كطابعة إفتراضية عند طبعاعة التقرير، ونقوم يتغير قيمة هذا الثابت في كل مرة يتغير فيها اسم الطابعة!.. نعم يكون هذا مقبولا إذا كان المستخدم هو المبرمج. .: هذا الإجراء غير قابل للتطبيق. :: يوفر أكسس ما يسمى بالخصائص المعرفة من قبل المبرمج؛ هذه الخصائص يمكن تعريفها والتحكم بها وإعادة اسناد قيمها برمجيا.. وتظل ثابتة في قاعدة البيانات إلى أن يقوم المبرمج بتغير قيمها أو حذفها نهائياً. سوف أقوم باستخدام هذه الطريقة مقابل جدول البيانات لأني أتوقع من الأستاذ رمهان أن يقوم بتطبيق الفكرة عن طريق جدول البيانات... الشفرة التي تعتني بإضافة وتعديل وحذف الخصائص المعرفة من قبل المستخدم مسردة في التالي.. Sub ADD_PROPERTY(prpName As Variant, prpValue As Variant) On Error GoTo ERR_HANDLER Dim DB As DAO.Database, PRP As DAO.Property Set DB = CurrentDb Set PRP = DB.CreateProperty(prpName, dbText, prpValue) DB.Properties.Append PRP EXIT_SUB: Set DB = Nothing Set PRP = Nothing Exit Sub ERR_HANDLER: If Err.Number = 3367 Then 'MsgBox Err.Number & vbCrLf & Err.Description Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub Sub SET_PROPERTY_VALUE(PRP_NAME, PRP_VALUE) Dim DB As DAO.Database Set DB = CurrentDb DB.Properties(PRP_NAME).Value = PRP_VALUE DB.Properties.Refresh Set DB = Nothing End Sub Sub REMOVE_PROPERTY(PRP_NAME) Dim DB As DAO.Database Set DB = CurrentDb PRP_NAME = DB.Properties(PRP_NAME).Name DB.Properties.Delete PRP_NAME Set DB = Nothing End Sub + لا أحبذ أن تكون صلاحية الإضافة والحذف متوفرة للمستخدم.. أما بالنسبة للمبرمج فيمكنه إنشاء نموذج يقوم بواسطه من إدارة هذه الخصائص، أو عن طريقة نافذة تحرير الشفرة السريعة. + الخصائص التي قمت بإنشاءها بسيطة وغير احترافية، وقمت بكتابتها بالعربي.. كل ذلك من أجل توصيل الفكرة فقط... أسماء الخصائص التي أنشأتها هي: طابعة ليزرية، طابعة نفثية، طابعة نقطية، طابعة ترميزية. + سوف تكون قيمة كل خصيصة من هذه الخصائص اسما للطابعة التي تلائم هذه الخصيصة.. + قمت بإنشاء وظيفتين دوارتين: ألأولى تبحث عن الخصائص التي أنشأتها والقيمة التي تحمها؛ ثم تمررها إلى الوظيفة الثانية التي تبحث في الطابعات التي يوفرها النظام؛ فإذا كانت قيمة الخصيصة خالية أو تحمل اسما لطابعة غير متوفرة في النظام فإن الوظيفة الثانية تعيد قيمة خاطئة؛ وبناء على هذه القيمة يطلق البرنامج نافذة تحث المستخدم بتعيين اسما للطابعة الجديدة لكل خصيصة تحمل قيمة خاطئة.. (الوظيفة الثانية تعمل من داخل الوظيفة الألى). + إذا قام المستخدم بتعيين اسما جديد سوف تختفي الخصيصة من القائمة.. للمعلومية لم أقم بإنشاء نموذج لإدارة قيم هذه الخصائص من قبل المستخدم بطريقة منظمة.. أعتذر عن ذلك. الشفرة المتعلقة بالوظيفتين في المسرد التالي Function ASSIGN_CUSTOM_PRINTER() Dim PR As Property Dim PT As Variant, I As Integer For Each PR In CurrentDb.Properties If PR.Name Like "طابعة*" Then If IS_PRINTER_AVAILABLE(PR.Value) = False Then PT = PT & I & "," & PR.Name & "," & PR.Value & "," End If End If I = I + 1 Next 'Debug.Print PT ASSIGN_CUSTOM_PRINTER = PT End Function Function IS_PRINTER_AVAILABLE(PRNT_NAME) As Boolean IS_PRINTER_AVAILABLE = False Dim PRNT As Printer For Each PRNT In Printers If PRNT.DeviceName = PRNT_NAME Then IS_PRINTER_AVAILABLE = True End If Next End Function تعيد الوظيفة الأولى: رقم الخصيصة، اسم الخصيصة والقيمة التي تحملها لكل الخصائص ذات القيمة الخاطئة؛ وبناءً عليه أقوم بفحص طول الببانات فإذا كان أكبر من صفر فهذا يعني أن هناك خصائص تحمل بيانات غير مطابقة.. البيانات العائدة من الوظيفة الأولى أستخدمتها كمصدر بيانات لعنصر قائمة التحرير والسرد في النموذج الذي يظهر كمربع حوار يحث المستخدم بتعيين القيم الجديد.. الشفرة موضحة في المسرد التالي.. Sub SHOW_PRINTER_LIST() If Len(ASSIGN_CUSTOM_PRINTER) Then Call CUSTOM_PRINTER_DIALOG End If End Sub Sub CUSTOM_PRINTER_DIALOG() F.lbPrintersType.RowSource = "" F.lbPrintersType.RowSource = ASSIGN_CUSTOM_PRINTER F.Visible = True End Sub الشفرة التالية هي لفحص القيم عند إقلاع البرنامج وفتح نموذج خدمة الطباعة Function INITIALIZE() DoCmd.OpenForm "FRM_PRINT_CERVICES" Call SHOW_PRINTER_LIST End Function الشفرة التالية لتعيين الطابعة الافتراضية قبل الطباعة Sub DEFAULT_PERINTER(PRINTER_NAME) Set CURRENT_PRINTER = Application.Printer Application.Printer = Application.Printers(CurrentDb.Properties(PRINTER_NAME).Value) End Sub :: هذا كل ما يتعلق بالفكرة وتطبيقها.. مع المثال.. SET DEFAULT PRINTER.accdb 1
سلمان الشهراني قام بنشر مايو 1, 2018 الكاتب قام بنشر مايو 1, 2018 (معدل) الله يعطيك العافيه وجاري التجربه تم تعديل مايو 1, 2018 بواسطه سلمان الشهراني
سلمان الشهراني قام بنشر مايو 1, 2018 الكاتب قام بنشر مايو 1, 2018 مشكور يالغالي ولكن تظهر الرساله التاليه ثم لاثقوم بالتنفيذ
حسين العربى قام بنشر مايو 1, 2018 قام بنشر مايو 1, 2018 (معدل) بعد اذن اساتذتي شوف المرفق ده فيه طريقه مبسطه جدا طبعا ساعدني فيها استاذي الفاضل ابو خليل انشاء الله تظبط معك test1.rar تم تعديل مايو 1, 2018 بواسطه حسين العربى 1
أبو إبراهيم الغامدي قام بنشر مايو 1, 2018 قام بنشر مايو 1, 2018 3 ساعات مضت, سلمان الشهراني said: مشكور يالغالي ولكن تظهر الرساله التاليه ثم لاثقوم بالتنفيذ أحتاج إلى نص الرسالة أستاذ سلمان..
سلمان الشهراني قام بنشر مايو 3, 2018 الكاتب قام بنشر مايو 3, 2018 ابشر والمعذره على التاخير في الرد استاذ حسين الله يعطيك العافيه ولكن لم يفي بالمطلوب اشكرك واشكر تفاعلك 1
سلمان الشهراني قام بنشر مايو 5, 2018 الكاتب قام بنشر مايو 5, 2018 حبيبنا هذي هذي نص الرساله ورقم الخطاء هو 94
أبو إبراهيم الغامدي قام بنشر مايو 5, 2018 قام بنشر مايو 5, 2018 أهلا بك سلمان.. أولا يجب أن يكون ظهور نموذج تعيين الطابعات الافتراضية من خلال إقلاع البرنامج فقط، لأن ظهوره مبني على أحد أمرين: _ أنك لم تقم بتعيين الطابعة الافتراضية. _ أو أن الطابعة المعينة غير متوفرة في النظام حاليا. :: هناك إشكالية مع قائمة التحرير والسر، ومربع التحرير والسرد إذا كانت وجهتها من اليمين إلى اليسار مع الخصيصة: العمود المنضم Bound Column إذا كان مصدر الصف يتكون من أكثر من عمود. ولتصحيح الخطأ المحتمل الذي وقع في الشفرة فيجب نعيين العمود الذي يحمل القيمة الافتراضية برمجيا على النحو التالي Private Sub cmAssign_Click() Call SET_PROPERTY_VALUE(CInt(Me.lbPrintersType.Column(0)), Me.cbPrintersName) Call LB_UPDATE End Sub قمت بإجراء بعض التحسينات في المرفق التالي SETUP DEFAULT PRINTER.accdb 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.