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

ابوخليل

أوفيسنا
  • Posts

    12836
  • تاريخ الانضمام

  • Days Won

    239

كل منشورات العضو ابوخليل

  1. من المتطلبات .. ضبط العمليات الاربع بحيث تجري بسلاسة وتخدم المستخدم .. اعمل 4 ازرار او تبويبات : بيع / شرائ / مرتجع بيع / مرتجع شراء الفورم يفتح افتراضيا على البيع .. لأن 90% من العمليات هي بيع حينها يكون حقل نوع العملية ( بيع ) اجباريا ، ويتم تصفية قائمة العملاء فلا يظهر الا الزبائن فقط وحين تنقر على زر شراء : حينها يكون حقل نوع العملية ( شراء ) اجباريا ، ويتم تصفية قائمة العملاء فلا يظهر الا الموردون فقط وينطبق هذا على الزرين الآخرين ايضا من اجل الاحصاءات والاستعلامات مستقبلا ( وهو غير ملزم ) ادراج حقلي العميل ونوع العملية ضمن جدول التفاصيل
  2. نعم .. العروض .. المكان الصحيح للخصم جدول الاصناف وخصم مجمل الفاتورة ليس محله التفاصيل بل جدول المدفوعات .. ونسبة الخصم تثبت في مكان آخر مثل جدول البيانات الأساسي ونحو ذلك ولكن يوجد فائدة اخرى مهمة جدا عند احتساب الخصم في جدول الأصناف .. تظهر هذه الفائدة عند عمليات الارجاع .. حيث ان سعر المبيع ثابت ( مع خصم او بدونه) على اعتبار ان سعر البيع يدرج آليا فالارجاع يتم بسعر المبيع نفسه ( هل هذه النقطة واضحة ومفهومة ؟) انا تحدثت عن هذا فراجع المشاركات السابقة وادراج رقم الفاتورة تلقائيا هو المتبع عادة
  3. لا تستعجل على رزقك انا شرطت الانتقال الى الدفع بعد استيعاب وفهم العمل الحالي انت لم تدرس المثال جيدا .. كطالب علم يجب ان تسأل عن الصغيرة قبل الكبيرة مثلا لماذا اكتفينا بوضع الخصم (واحتسابه) في جدول الاصناف فقط ولم ندرجه في التفاصيل هذه المعلومة جديدة حتى على هذا المنتدى يوجد ملاحظات اخرى يجب ان لا تمر عليك مرور الكرام .. حتى تفهمها : كيف ولماذا ؟ ملحوظة : اسماء الجداول يجب ان تبدأ بالبادئة tbl والنماذج بالبادئة frm والاستعلامات بالبادئة qry والتقارير بالبادئة rep
  4. عدلت على النماذج انظر النماذج الخدمية كيف اصبحت خاصة نموذج الأصناف وانظر سعر البيع والخصم والسعر النهائي ( غالبا الخصم على البيع لم يمر بي خصم على المشتريات انما البائع هو من يضع الخصم على السلعة المباعة ) ....................................... عملك فقط على فورم الفاتورة .. تم تحسين الفاتورة والتفاصيل - جعلت خاصية حقول نوع العملية .. ونوع الدفع (مطلوبة=نعم) عمليات التفاصيل في النموذج الفرعي تعتمد على حقل نوع العملية في فورم الفاتورة الرئيسي - ادخال الصنف اما بالرقم او الاختيار - عند كتابة رقم الصنف او اختياره من مربع التحرير .. يتم ادراج السعر ( شراء او بيع ) - عند كتابة الكمية يظهر الاجمالي في الحقل المخصص ( شراء او بيع ) اللمسات والتحسينات ممكنة مثل ضم حقلي الاجمالي فوق بعض بحيث لا يظهر الا الحقل الموافق لنوع العملية ومثل رسائل النظام واستبدالها برسائل مفهومة ................... ومثل ان نعمل رأسين للفاتورة واحد للبيع وأخر للمشتريات .. بدلا من اختيار النوع في كل عملية .. وتسهيلا للمستخدم ويمكن عمل اربع رؤوس لا تستغرب اثنان للبيع النقد والآجل واثنان للشراء النقد والآجل كل هذه الأربعة تصب في جدول واحد .............. وتحسينات اخرى كثيرة يمكن مستقبلا عملها المهم عملية البيع والشراء الأساسية تسير بشكل محكم وسلس _____________________________________ جرب كل الانواع وحاول تدرس المثال والاكواد الخاصة .. مهم جدا تفهم الاكواد في النموذج الفرعي وتعرف كيف تتم العملية وخطواتها معرفة تامة خذ وقتك ولا تستعجل .. الدرس هذا بسيط وهو البداية ملحوظة : مرتجع الشراء هو عبارة عن بيع ومرتجع البيع عبارة عن شراء ........... بعد ذلك يمكننا الانتقال الى عملية الدفع Invoices2.rar
  5. تفضل تم التعديل فضلا وتكرما .. يكفي الصف الأول كاملا .. اما بقية الصفوف لو تكرمت تبقي على 10 طلاب فقط الحذف من جدول الأسماء ومن جدول الدرجات من فضلك .. مازاد عن 10 احذفه Data9.rar
  6. ايضا عند اختيار العميل في رأس الفاتورة لادخال فاتورة جديدة يمكن اظهار رسالة برصيد العميل سواء بالسالب او الموجب اذا العميل مورد والقيمة بالموجب هذا يعني ان االمتجر مدين ما ذكرته لك اعلاه في المشاركات السابقة ياتي تباعا واحدة واحدة وعليك التطبيق والدراسة والملاحظة دعني اعمل بعض التنسيق على مثالك لتبدأ العمل
  7. نسينا ان ندخل نوع الدفع في نموذج الرأس بعد اختيار الاصناف المطلوبة سيظهر الاجمالي في الاسفل ننقر لفتح نموذج الدفع سيظهر النموذج والمجموع ظاهر فيه من غير تدخل المستخدم + رقم الفاتورة + رقم العميل ان كان نقدا سيكون حقل الدفع متاح سواء حقل البيع او حقل الشراء ...... اتمنى فهمت التصور والتحليل الآن في جدول الدفع تم تسجيل رقم زبون ورقم الفاتورة واجمالي الفاتورة .. ولو اضفنا نوع الدفع يكون اسهل في التصفية مستقبلا لنفرض ان الدفع آجل كلي يدفع مرة واحدة او مجزأ كما اسميته انت تقسيط عند السداد نجلب السجل بناء على رقم الفاتورة ويتم تسجيل سجل جديد ويرصد المبلغ المسدد عند الاستعلام عن فاتورة محددة او عميل محدد __الفاتورة سيظهر جميع عمليات الدفع التي تمت عليها __ العميل سيظهر جميع الفواتير الغير مكتملة
  8. بعدين لا تضع في النموذج الا شيئا انت بحاجته فعلا مثلا المستخدم وتاريخ الحركة تبقى مخفية لا يراها المستخدم وتدخل آليا .. وانما يرجع لها عند الحاجة يجب ان تتصور انك تعمل حقيقة في المتجر وامامك مورد او زبون ثم تدخل البيانات المطلوبة ( بعضها مطلوب ادخالها يدويا ) وبعضها ينزل آليا بمعلومية ما ادخلت في الرأس يجب ان تختار (العملية : بيع/ شراء / متجع بيع / مرتجع شراء )والذي على اساس هذا الاختيار يتم تصفية مربع العملاء حسب النوع ثم تختار العميل فينزل رقم الفاتورة آليا والتاريخ ثم تختار نوع العملية هذا اعتقد كل شيء في الراس في التفصيل : تختار الصنف فيظهر السعر سواء البيع او الشراء بناء على نوع العملية في الرأس ثم تختار الكمية ليظهر السعر الكلي آليا ايضا حسب النوع يتبع ...
  9. الاصناف والعملاء نموذج واحد كافي .. ليش نموذجين رئيسي وفرعي ؟ وارى تترك الاصناف والعملاء وغيرهم على جنب .. تضيفهم في نهاية البرنامج .. وركز على العمليات يكفي نموذج رأس الفاتورة والفرعي للتفاصيل .. ونريد نموذج ثالث للدفع سواء يكون فرعي او منفصل ينبثق
  10. ايضا لا تعمل اي شيء خارج الجداول مثل النماذج النماذج تأتي في الآخر وع اكواد لتسهيل الادخال جرب ادخل بيانات من خلال الجداول .. اعمل على الجداول الثلاث .. راس الفاتورة / التفاصيل / الدفع يعني ادخل عملية شراء واحدة او عمليتين ومثلها بيع ونفحص المخرجات من خلال استعلام ستكتشف بنفسك الحقول اذا مكتملة او انك بحاجة الى ادراج حقل ما
  11. الامر ابسط مما تتصور اولا المثال هو من عملك .. يعني انت اللي كاتب الحقول بحروف اجليزية انا فقط اختصرت : 1-جدول المشتريات وجدول تفاصيله واالمبيعات وتفاصيله الى جدولين فقط وغيرت في تسمية الحقول بما يناسب الدمج 2- دمج المورد والزبون بحقل واحد ثانيا يوجد تسميات توضيحية للحقول باللغة العربية افتح الجداول على العرض وانت تفهم
  12. بالنسبة لترقيم الفاتورة البعض لا تفرق لديه الارقام مشتريات او مبيعات .. فقط ترقيم متسلسل يشمل الكل .. وهنا يكون نوع الحقل رقمي لا مشكل بل هو اقوى والبعض الآخر يريد التفرقة بين المبيعات والمشتريات بحرف او حرفين في بداية الرقم .. وهنا يكون نوع حقل الترقيم نصي الذي يريد التفريق لا يعتبر حقل نوع العملية مهما .. لأن رقم الفاتورة هو الدليل رايي .. ان رقم الفاتورة هو عبارة عن معرف فريد لا يتكرر ابدا .. فلا داعي للتفرقة ويكتفى بنوع العملية عند التصفية
  13. هل اطلعت على المرفق الأخير ؟ هذه الجداول هي الاساسية التي يدور عليها العمل .. وبالتحديد 3 منها فقط رأس الفاتورة / التفاصيل / المدفوعات البقية تعتبر جداول ثابتة خدمية ان احتجت لجداول خدمية اخرى سوف تأتي لا حقا .. لا مشكلة ولن يتأثر عملك
  14. انظر هنا قمت بالتعديل على مرفقك ولكنه لم يكتمل بعد بحاجة الى مراجعة .. يحتمل اني غفلت عن بعض الحقول خاصة في الرأس والتفاصيل Invoices.rar ارفق له الجداول فقط للاطلاع عليها ومناقشتها يعجبني كلام الأخ احمد هذا :
  15. نعم هي جدول واحد فقط .. رأس وتفصيل ولكن عملك المرفق رأسين وتفصيلين ... الرأس ضروري للربط في كل مشروع يكون هناك حقل هو رأس الهرم وعليه تدور العمليات كلها وفي مشروع المبيعات راس الهرم هو رقم الفاتورة العملاء تبع .. مع الاخذ بالاعتبار انه يمكن التصفية باعتبار عميل محدد ( على عملياته ومدفوعاته ) والاصناف تبع .. ويجري عليها ما يجري على العملاء .. من حساب الارصدة للكل او لصنف محدد رقم الفاتورة يجمع ويضم الكل لذا جعلناه رأس
  16. يجب ان تتتأكد من صحة المخرجات سبق وطلبت منك ادخال الدرجات لجميع الصفوف فيما لا يقل عن 10 طلاب لكل صف مراعيا جميع الشروط المحتملة ثم تطلع على الكشوف .. وتقرير الرسوب وتتأكد من صحة المخرجات 100% ثم ترفق لنا العمل .. وهذا هو المهم .. من اجل نعتمده كأصل صحيح
  17. الف شكر اخي الغالي @Foksh على هذا الكود التحفة اختصر ثلاثة ارباع الزمن Dim totalRecords As Long Dim recordsWithPositive1 As Long totalRecords = Nz(DCount("*", queryName), 0) recordsWithPositive1 = Nz(DCount("*", queryName, "[1]>0"), 0) For i = 1 To 14 Me("t" & i) = totalRecords Me("Te" & i) = recordsWithPositive1 Dim maleCount As Long Dim femaleCount As Long maleCount = Nz(DCount("*", queryName, "[gender]=1 AND [" & i & "]=0"), 0) femaleCount = Nz(DCount("*", queryName, "[gender]=2 AND [" & i & "]=0"), 0) Select Case i Case 1 maleCtrl = "Text1" femaleCtrl = "Text11" totalCtrl = "Text111" Case 2 maleCtrl = "Text2" femaleCtrl = "Text22" totalCtrl = "Text222" Case 3 maleCtrl = "Text3" femaleCtrl = "Text33" totalCtrl = "Text333" Case 4 maleCtrl = "Text4" femaleCtrl = "Text44" totalCtrl = "Text444" Case 5 maleCtrl = "Text5" femaleCtrl = "Text55" totalCtrl = "Text555" Case 6 maleCtrl = "Text6" femaleCtrl = "Text66" totalCtrl = "Text666" Case 7 maleCtrl = "Text7" femaleCtrl = "Text77" totalCtrl = "Text777" Case 8 maleCtrl = "Text8" femaleCtrl = "Text88" totalCtrl = "Text888" Case 9 maleCtrl = "Text9" femaleCtrl = "Text99" totalCtrl = "Text999" Case 10 maleCtrl = "Text10" femaleCtrl = "Text100" totalCtrl = "Text1000" Case 11 maleCtrl = "Text_11" femaleCtrl = "Text_111" totalCtrl = "Text_1111" Case 12 maleCtrl = "Text12" femaleCtrl = "Text122" totalCtrl = "Text1222" Case 13 maleCtrl = "Text13" femaleCtrl = "Text133" totalCtrl = "Text1333" Case 14 maleCtrl = "Text14" femaleCtrl = "Text144" totalCtrl = "Text1444" End Select Me(maleCtrl) = maleCount Me(femaleCtrl) = femaleCount Me(totalCtrl) = maleCount + femaleCount Next i Data7.rar
  18. السلام عليكم ومشاركة مع اخي @Foksh اضف هذا السطر الى جملتك البرمجية Me.Datail.Height = Me.Datail.Height * 0.5 لاحظ فيما لو اردت تغيير نسبة ارتفاع الحقل ... نسبة مقطع التفاصيل ستكون مماثلة لنسبة مقاس ارتفاع الحقل BASE_F.rar
  19. تم عمل ما ذكر اعلاه تقرير مراجعة الدرجات حسب الصف تقرير يعرض الصفوف جميعا .. كل صف مستقل ، وطلاب الصف المكملين وتحت كل طالب مواد الاكمال والدرجات احصاء تجميعي (احصاء الحضور ) باعداد المسجلين والحضور والغياب .. ولكن اتعبني تقرير احصاء الحضور هذا rep_Ehsa_Exam بطيء وثقيل جدا يا ليت اخوي @Foksh تلقي نظرة عليه .. فقد تجد طريقة اخرى غير التي سلكتها في استخراج البيانات Data6.rar
  20. اختصارا للوقت المتوقع للشروحات مستقبلا اليك مثالين مختصرين متشابهين تقريبا حاول العمل عليهما والتجربة من اجل تلم بفكرة الجدول الواحد وناقش ما يهمك من خلالهما .. New folder.rar
  21. ملفك بحاجة الى تعديلات كثيرة لا تتوقع ان العمل يسير وسيتم بسرعة انتظرني ...
  22. لا انصحك بالطريقة القديمة بل اتبع الطريقة الحديثة في التصميم - جزء واحد عبارة عن رأس واطراف الرأس يشمل الشراء والبيع ، والتفاصيل تشملهما كذلك الاقساط برنامج منفصل بذاته .. لأن آلية ونظام الاقساط يختلف تماما اما تسديد الديون (الآجل ) وحتى الكاش فيكون في جدول الدفع ، يرتبط بالزبون او المتعهد ورقم الفاتورة ( سواء كانت الفاتورة بيع او شراء او مرتجعات)
  23. 1- مواد الرسوب 2- تقارير مراجعة الدرجات 3- احصائية اعداد الحضور والغياب
  24. السلام عليكم اولا : نبارك لك اخي احمد .. في بداية خطواتك نحو طريق البرمجة الصحيح ثانيا : مازلت تقدح من رأسك واعذر اخوك الكبير على هذه العبارة الملاحظات السلبية : - عمل جداول زائدة ستكون عبئا في نهايات ونتائج البرنامج - الاهتمام بالفرعيات والجزئيات واهمال الأساسات من الفرعيات عملية العلاقات وأعطائها اهمية من الاساسيات : تحليل البيانات تحليل البيانات فيما يخص برنامجك : هو ان تشرح خصوصية برنامجك ، لأن البرنامج عبارة عن ( مشتريات ومبيعات ) وهذ مشروع معروف ومتداول ومفهوم لدى اغلب المبرمجين فلا حاجة للتفاصيل الخصوصية مثلا : - هل هو نقاط بيع ( بالنقد والكاش ) ام يشتمل على جزئية البيع بالآجل ، ام هو فقط بيع بالآجل ، او اي خصوصية توجد في المشروع غير موجودة في المشاريع العادية الخلاصة : انت في بداية مشوارك .. فلا تترك الاستشارة في كل صغيرة وكبيرة لا تخرج من الجداول حتى يتم احكامها 100% حتى لو جلست على اعدادها فترات طويلة مازلت اقول واكرر ان ضبط الجداول بصورة صحيحة هو انجاز 80% من المشروع ............................. فائدة : عندما انشء حقلا في جدول فحينها اتصور او استحضر اماكن ظهور هذا الحقل في الاستعلامات او التقارير بمعنى اني استحضر المخرجات ( التقارير ) في بالي وكأني أراها في الوقت الذي اعمل على تصميم الجداول كتبت هذه الملحوظات آمل ان تجد الفائدة اعانك الله ووفقك
×
×
  • اضف...

Important Information