اذهب الي المحتوي
أوفيسنا

أبو آدم

أوفيسنا
  • Posts

    3,292
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    29

كل منشورات العضو أبو آدم

  1. للرفع مع رجاء التعاون من أهل الخبرة في مجال المحاسبة ... مع الاخ عصام شاكرين ومقدرين تعاون الجميع .........
  2. جزيت خيراً دكتور عبدالمالك ونسأل الله أن ييسير لنا من هذه التقنية خيرها ويجنبنا شرورها ...........
  3. منذ مساء الأمس يتم في قرية نصيب في درعا السورية التطويق بالقوة البشرية والعتاد الثقيل تجهيزاً لجريمة مثل جريمة الحولا بحمص فإستغيثوا بالله إستغيثوا بالله إستغيثوا بالله وعليكم بالدعاء ... الدعاء .............
  4. اخي رجب جزيت خيراَ ... وهذا "فصل المقال" افكار جميلة ... وتطبيق محكم شكرا ......
  5. استاذ طارق شكرا للافكار الجميلة والتطبيق السلس شكرا .......
  6. أعد دراسة علاقة كود الصنف و السعر والكمية بجدول الفاتورة ؟؟ وقد كررتها في تفاصيل الفاتورة !!!
  7. أخي العزيز الجداول والعلاقات جيدة ولكنها بحاجة لبعض التوضيح و التعديل ولكن سؤالك استباقي في مسألة الفاتورة ، بدون تزويدنا بتفاصيل نقطة البيع حيث يعتمد تأسيس الفاتورة على طبيعة نقطة البيع في متجر كبير (مول) مثلاً لا يهمنى اسم العميل في البداية كثيرا ، الا اذا كانت هناك بطاقة تسوق - يلزمني لاحقا في عملية بيع عادية لعملاء معتادين وقيود عادية يتم اصدار الفاتورة بالضرورة باسم العميل مقترنه برقم الفاتورة عمليات بيع عامة يهمني رقم الفاتورة ولا يهمني العميل هل هناك أهمية لترصيد المواد المباعة مباشرة من ذمم المستودع ام لا؟؟ وهكذا .... حيث قرنت في عنوانك ( المبيعات و المخازن ونقاط البيع ) أما ان كان السؤال عاماً فيمكننا الاجابة بشكل عام ...........
  8. اخي العزيز طبقت لك اضافة التقويم عليك اولا استيراد الوحدة النمطية ajbCalendar و النموذج frmCalendar في نموذجك F2 وهو cod سابقا : افتح النموذج على عرض التصميم انتقل للحقل txtdate وفي صفحة خيارات الحقل في حدث عند التركيز أو حدث عند الضغط ، اكتب الكود التالي =CalendarFor([txtDate];"Set the Notification date") وهي مفصلة بالصورة حيث CalendarFor استدعاء للوحدة النمطية التي تشغل نموذج التقويم و txtDate اسم الحقل الذي تم استدعاء نموذج التقويم منه وحيث سيتم اسناد التاريخ الذي سيتم اختياره و Set the Notification date هو عنوان يضهر في اعلى نموذج التقويم عند استدعائه من هذا الحقل ، لنبين للمستخدم ما نريد وفي التطبيق المرفق "فصل المقال" وللحديث بقية ... والله من وراء القصد ... وهو حسبي ........... NA_Calendar2012.rar
  9. أحسن الله اليك وبارك لك وبك استاذي أبو خليل جزيت خيراً على طيب قولك ودعائك .........
  10. يمكنك الاستعانة بالموضوع على الرابط ... http://www.officena.net/ib/index.php?showtopic=36090 ...........
  11. إختيار تقرير للطباعة وتحديد طابعة معينة لتنقيذ الإجراء شرح وتفصيل وتطبيق ... تطبيق العبد الفقير لرحمة ربه ... نارت لبزو http://www.officena....showtopic=41998
  12. نتابع .... أثناء عملي بالتطبيق ، ورغم محاولاتي الحثيثة من التخلص من هاجس " ماذا لو" الذي يستفزني دائماً لتطوير وتعقيد التطبيقات والاضافة عليها ، لم أتمكن من التخلص منه ، ودفعني نحو : ماذا لو أردنا التحكم بخيارات الطباعة بعد تحديد الطابعة لتقريرنا ؟؟ وهنا ننتقل لمنظومة أخرى " مرتبطة " بفكرتنا ، تمكننا من السيطرة على خيارات الطباعة من خلال الطابعة التي إخترناها لتقريرنا. وهذه نرى فيها رأينا ، فإما أن نستمر بها في موضوعنا هذا أو ننتقل بها لموضوع جديد. هذا التطبيق يمكن الإستفادة منه في أي تطبيق ، كل ما عليك هو إستيراد النموذج frmSetPrinter والله من وراء القصد ... وهو حسبي ........... NA_ReportPrenter.rar
  13. نتابع ... ومنعاً للخطأ و اللبس يصبح الكود خلف زر الأمر cmdOk ، كما يلي : Private Sub cmdOk_Click() If IsNull(Me.cboReport) Then MsgBox "You Must Enter A Report Name", vbCritical, "Note That ..." Me.cboReport.SetFocus Exit Sub ElseIf IsNull(Me.cboPrinter) Then MsgBox "You Must Enter The Prenter Name", vbCritical, "Note That ..." Me.cboPrinter.SetFocus Exit Sub End If DoCmd.OpenReport Me.cboReport, acViewDesign, Null, Null, acHidden Dim oRpt As Report Set oRpt = Reports(0) oRpt.UseDefaultPrinter = False oRpt.Printer = Application.Printers((Me.cboPrinter)) DoCmd.OpenReport Me.cboReport, acViewNormal DoCmd.Close acReport, Me.cboReport, acSaveYes Set oRpt = Nothing End Sub ...........
  14. نتابع .... بالتطبيق ستجد بأنه في عند الضغط على زر الأمر cmdOk حال خلوها من المعلومات ستظهر لك رسالة خطأ ، لذا سنقوم بحلَ الموضوع ببساطة ، حيث نضيف كود يقوم بتفحص الحقلين وحال خلوها من المعلومات سيزودنا برسالة خطأ ممنهجة ويعيد التركيز للحقل الفارغ ، ويكون الكود كما يلي : If IsNull(Me.cboReport) Then MsgBox "You Must Enter A Report Name", vbCritical, "Note That ..." Me.cboReport.SetFocus Exit Sub ElseIf IsNull(Me.cboPrinter) Then MsgBox "You Must Enter The Prenter Name", vbCritical, "Note That ..." Me.cboPrinter.SetFocus Exit Sub End If
  15. بارك الله لك وبك أخي عبدالله ونحن سعداء جداً بوجودك بيننا ونتمنى أن تستفيد من خبرتنا المتواضعة ، وأن نتمكن من الاستفادة من خبراتك الطيبة ...........
  16. نتابع .... وبذلك يصبح الكود خلف زر الأمر cmdOk ، كما يلي : Private Sub cmdOk_Click() DoCmd.OpenReport Me.cboReport, acViewDesign, Null, Null, acHidden Dim oRpt As Report Set oRpt = Reports(0) oRpt.UseDefaultPrinter = False oRpt.Printer = Application.Printers((Me.cboPrinter)) DoCmd.OpenReport Me.cboReport, acViewNormal DoCmd.Close acReport, Me.cboReport, acSaveYes Set oRpt = Nothing End Sub · ننشيئ زر أمر لإغلاق النموذج وبذلك يكون تطبيقناً جاهزاً للاستخدام . .........
  17. نتابع ... في عرض التصميم للنموذج frmSetPrinter · ننشيئ زر أمر نسميه cmdOk ستكون وظيفة هذا الزر تشغيل منظومة إجراءات لتحقيق الإجراء النهائي ، واكتابة وتحديد هذه الاجراءات ، نقوم بالضغط على Alt+f11 ، لنصل لمحرر الفيجوال بيسك للنموذج ، و نبدأ بكتابة الكودات التي تحقق غاياتنا باستخدام ما قمنا بتحقيقه وتوفيره ضمن النموذج . هناك مسأله مهمة لا بد من معرفتها و إحسان التعامل معها ، وهي أن الاجراء الرئيسي الذي نسعى اليه وهو تحديد الطابعة لطباعة هذا التقرير ، لا تتحقق الا في حالة فتح التقرير بعرض التصميم !! لحل هذه المشكلة نقوم بافتتاح الكود بالجملة التالية : DoCmd.OpenReport Me.cboReport, acViewDesign, Null, Null, acHidden حيث نقوم ضمن هذا الأمر بفتح التقرير (الذي تم اختياره في مربع التحرير و السرد cboReport ) بوضع التصميم ، و إحفاؤه acHidden ن وهذا ضروري حتى لا يظهر لنا التقرير فعلا بوضع التصميم أثناء التنفيذ. ثم نقوم بتعريف oRpt كتقرير Dim oRpt As Report ثم ضبط هذا التقرير ليكون تقريراً محدداً (قابل للتحديد) Set oRpt = Reports(0) حتى نتمكن من الوصول لإختيار تقريرنا ثم نقوم بتعطيل الطابعة الإفتراضية عند التعامل مع تقريرنا ، كون واحد من أهدافنا عدم التعامل مع الطابعة الإفتراضية oRpt.UseDefaultPrinter = False ثم نجعل طابعة تقريرنا هي الطابعة التي تم إختيارها في مربع التحرير و السرد cboPrinter oRpt.Printer = Application.Printers((Me.cboPrinter)) ثم نقوم بفتح (طباعة) تقريرنا ، حسب كل ما مرّ بأعلاه DoCmd.OpenReport Me.cboReport, acViewNormal ثم نغلق التقرير (كنا فتحناه بعرض التصميم مخفياً) ، مع الحفظ DoCmd.Close acReport, Me.cboReport, acSaveYes وأخيراً نلغي ضبط تقريرنا السابق في oRpt Set oRpt = Nothing .............
  18. نتابع .... نقوم الآن بحفظ الاجراءات التي قمنا بها ونسمي النموذج frmSetPrinter ، ثم نقوم بتشغيل النموذج. عند الضغط على السهم المضمن في مربع التحرير و السرد cboReport تظهر لنا أسماء كافة التقارير في تطبيقنا ، كما هي ، وبالضغط على السهم المضمن في مربع التحرير و السرد cboPrinter تظهر لنا أسماء كافة الطابعات المعرفة على الجهاز والتي سنتمكن من استخدامها في تطبيقنا ، لطباعة تقاريرنا. وهنا نصل للمرحلة التالية التي هي الغاية الأساسية من هذا التطبيق ، حيث يبرز السؤال الأهم ، وهو ، كيف نجعل التطبيق يقوم بطباعة التقرير الذي تم إختيارة بمربع التحرير و السرد cboReport باستخدام الطابعة التي سنختارها من مربع التحرير و السرد cboPrinter ؟ .......
  19. نتابع ... · لغايات استحضار أسماء الطابعات في مربع التحرير والسرد ، نقوم باستدعاء الوظيفة الخاصة GetPrinters ، نقوم بكتابة الكود التالي في حدث عند الفتح لنموذجنا : Private Sub Form_Open(Cancel As Integer) Dim strMsg As String Dim strTemp As String 'Load the combo with names of the installed printers. strTemp = GetPrinters() If Len(strTemp) = 0 Then Cancel = True strMsg = "No installed printers found." Else Me.cboPrinter.RowSource = strTemp End If End Sub حيث قمنا هنا بتعريف القيم strMsg و strTemp ثم جعلنا strTemp تساوي أسم الطابعة / الطابعات الناتجة من تطبيق الوظيفة GetPrinters وهناك شرط ضروري لا بد من تطبيقه وهو عدم وجود طابعات معرفة على الجهاز ، فنقوم بالتأكد من طول سلسلة القيم في strTemp (اسم الطابعة / الطابعات) فإذا كانت تساوي صفر ، فهذا يعني عدم وجود طابعات معرفة على الجهاز ، وبالتالي لا بد من أغلاق السلسلة الاجراءات باستخدام Cancel = True ، وإظهار رسالة تفيد بعدم وجود طابعات معرفة على الجهاز. وعكس الشرط هو وجود قيمة أعلى من صفر فتكون هذه القيمة (اسم الطابعة / الطابعات ) مصدر الصف لمربع التحرير و السرد cboPrinter بذلك نكون قد زودنا النموذج بالمتغيرات التي تحقق لنا الغاية التي نسعى لها ، وهي توفير متغير اسم التقرير ومتغير اسم الطابعة . .............
  20. نتابع .... · ننشيئ مربع تحرير وسرد جديد : نستخدمه لعرض الطابعات المعرفة و الموجودة على الجهاز ، باستخدام كائنات النظام . يكون اسم المربع cboPrinter ويكون نوع مصدر الصف Row Scurce Type هنا Value List ويكون مصدر الصف Row Scurce هنا نتيجة وظيفة خاصة (روتين) نضعه في محرر الفيجوال بيسك للنموذج باسم GetPrinters · لإنشاء الوظيفة لا بد أن نصل لمحرر الفيجوال بيسك للنموذج ، نقوم بالضغط على Alt+f11 ، وننسخ الكود التالي : Private Function GetPrinters() As String Dim prn As Printer Dim strPrinter As String If Application.Printers.Count > 0 Then For Each prn In Application.Printers strPrinter = strPrinter & """" & prn.DeviceName & """;" Next GetPrinters = Left$(strPrinter, Len(strPrinter) - 1) End If End Function ونكون هنا قد جلبنا أسماء الطابعات المعرفة على الجهاز على شكل سلسلة قيم ، وأصبحت جاهزة لدينا للإستخدام ومتاحة في أي لحظة نحتاج فيها للتعامل معها. .............
  21. إخوتي الفضلاء التطبيق الذي سنعمل عليه اليوم ، تطبيق يلزم بعض الإخوة الذين يعملون على الشبكات المحلية الذين يحتاجون تخصيص طابعة معينة لطباعة كل تقرير ، لغايات مختلفة وأسباب مختلفة حسب ظروف المستخدمين وغايات التطبيق أو التقرير. الغاية المشودة الوصول لتحديد طابعة معينة لطباعة تقرير معين بعيداً عن الطابعة الافتراضية للجهاز. وسنقوم هنا بتفصيل الإجراءات ومراحل التطبيق لغايات التوضيح بشكل دقيق قدر الامكان سعياً لعموم الفائدة ، وسعياً لما يكثر تداوله في المنتدى من الحاجة لتوضيح وشرح التطبيقات المقدمة. نبدأ تطبيقنا كما يلي : · انشاء نموذج وفتحه بعرض التصميم · ننشيئ مربع تحرير وسرد جديد : نستخدمه لعرض التقارير الموجودة في التطبيق ، باستخدام كائنات النظام . يكون اسم المربع cboReport ويكون نوع مصدر الصف Row Scurce Type هنا Table/Query ويكون مصدر الصف Row Scurce هنا : SELECT MsysObjects.Name FROM MsysObjects WHERE (((MsysObjects.Name) Not Like "~*") AND ((MsysObjects.Type)=-32764)) ORDER BY MsysObjects.Name; حيث نقوم بذلك باختيار جميع التقارير ، والتي تعرف بالنظام بانها من نوع 32764 ، ونقوم بترتيبها حسب الاسم .........
  22. حدد حاجاتك واسئلتك بوضوح ضمن مواضيع مستقلة بدايتك جيدة ...............
×
×
  • اضف...

Important Information