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

طلب مساعدة في عملية توزيع معقدة نوعاً ما


ابورغد

الردود الموصى بها

أعضاء منتدنا حفظكم الله

السلام عليكم ورحمة الله وبركاته

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

المشكلة :

البرنامج عبارة عن برنامج يقوم بتوزيع المشرفين لعدد من المدارس وحسب عدد محدد لكل مشرف ، فمثلاً المدرسة الأولى حدد لها عدد 2 زياره والمشرف الفلاني حدد له عدد 4 زيارات وهكذا ..

المشكلة تكمن في الشروط التي سوف أضعها فمن تلك الشروط :

1 - أن عدد الزيارات التي سوف تسجل للمشرف بعد عملية التوزيع يجب ألا تتجاوز عدد الزيارات المخصصة له في جدول ( الموظفين) الموجود في القاعدة المرفقة .

2 - أن عدد الزيارات التي سوف تسجل للمدرسة بعد عملية التوزيع يجب ألا تتجاوز عدد الزيارات المخصصة لها في جدول ( المدارس ) الموجود في القاعدة المرفقة .

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

4 - أن يتم توزيع الزيارات على المشرفين بالتساوي ، وقد قسمت المدارس إلى قسمين ( ابتدائية ومتوسطة ) و ( ثانوية ) وباعتبار أن المدارس الثانوية سوف تزار 10 مرات وعددها مثلاً 7 مدارس فمجموع الزيارات الخاصة بالمرحلة الثانوية = 70 زيارة وباعتبار أن عدد المشرفين الذين سوف يزورون تلك المدارس هم 48 مشرفاً فيصبح نصيب المشرف الواحد 1.46 وهذا يصعب تحقيقة فيمكن الإكتفاء بالحد الأدنى وهو عدد 1 زيارة لكل مشرف وذلك بعد حذف الكسر وجعلة عدد صحيحاً ، ونفس الشئ ينطبق على القسم الثاني وهي المدارس الابتدائية والمتوسطة .

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

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

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

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

وتقبلوا تحياتي وتقديري ، وانا في انتظار ردودكم واستفسارتكم .

والله يحفظكم ويرعاكم

visit.rar

رابط هذا التعليق
شارك

مرحبا يا أخوان

جاءت على بالي فكرة عكس التوزيعة بدلاً ما اسند المدارس للمشرفين أقوم باسناد المشرفين للمدارس

بشكل أكثر توضيحاً

انقل حقول الزيارات العشر ( من visit1 إلى visit10 ) التي في جدول ( TImployees ) إلى جدول المدارس ( TSchools ) ربما يكون أحسن

هذه الفكرة لمن قام بتحميل الملف المرفق في المشاركة الأولى وحاول حل المشكلة

تحياتي وتقديري للجميع

رابط هذا التعليق
شارك

الحقيقة أنا أحاول منذ فترة دراسة ملفك , لكن الموضوع معقد نوعا ما و لم أتوصل الى مبتغاك بالتحديد , فأنت بحاجة أولا الى اعادة صياغة طرحك للموضوع بشكل أكثر ايضاحا و تفصيلا , و حتى لو كان لديك مثال رقمي للتوزيع يكون أفضل

و عموما ملفك فيه بعض الأخطاء

أولا : لوحظ انشاؤك لحقول في الجداول لقيم محسوبة مثل : اجمالي الزيارت - مجموع المدارس .. الخ و هذا خطأ برمجي , اذ أن القيم التي يعتمد حسابها على معادلات رياضية لاتخزن في الجداول , بل يتم استخراج قيمها من الاستعلام

ثانيا : يمكن القول مبدئيا أنك بحاجة الى ثلاثة جداول :

- جدول المدرسين : مسلسل - اسم المدرس + بياناته الشخصية فقط

- جدول المدارس : مسلسل - اسم المدرسة + بقية بياناتها

- جدول الزيارات : مسلسل - رقم المدرسة - رقم المدرس

ثم يبنى استعلام على جدول الزيارات لمعرفة نتائج احصائية مثل المدارس التي تمت زيارتها

- المدارس التي لم يتم زيارتها - المدرسين الذين لم يقوموا بالزيارة ,,, الخ

و لنا تتمة ان شا الله

رابط هذا التعليق
شارك

أشكرك أخي رضوان على ردك ومحاولتك مساعدتي

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

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

أرجوا أن تكون الصورة قد أتضحت أكثر

ولك ياستاذي حق التصرف بالجداول وتعديلها من حذف أو إظافة حسب ما تراه مناسباً أنت أو أحد الزملاء في المنتدى

وأنا كلي أمل فيك وبالأخوان بحل هذه المسألة التي صعبت علىّ واتنمنى أن تكون درساً يستفيد منه الأخوه في هذا المنتدى أو المنتديات الصديقة

وأنا في انتظار ردك بفارغ الصبر ، والسؤال عن أي شي قد أكون قد أنقصته في الشرح

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

متنياً لك ولجميع الأخوه التوفيق

وأسأل الله العلي القدير أن ينفع بكم

وتقبل تحياتي وتقديري ،،

أخوك أبورغد

Tansiq.rar

تم تعديل بواسطه ابورغد
رابط هذا التعليق
شارك

على العموم أخي سنحدد الآن أولوية للعمل و هي توزيع المشرفين على المدارس بشكل أتوماتيكي بدون اعتبار أي شرط و ذلك كمرحلة ابتدائية

ثم بعد ذلك تضيف الشروط المرغوبة ريثما نرى مدى نجاح عملية التوزيع الألي

لكن بالنسبة لي مشغول جدا هذين اليومين فأسأل الله ان كان في العمر بقية أن يعيننا عليه بعد هذين اليومين

تحياتي

رابط هذا التعليق
شارك

قبل البدء باعداد كود التوزيع هناك بعض الملاحظات :

1- لوحظ أن هناك مدارس ابتدائية و متوسطة و ثانوية , بينما في جدول المشرفين لم يلاحظ وجود تصنيف لهم على مستويات المدارس , فهل لايوجد اعتبار لتوزيع المشرفين على أي مستوى من المدارس ؟

2- لدينا 54 مشرف و 27 مدرسة و بجانب كل مدرسة عدد الزيارات المخصصة لها , و بجانب كل مشرف عدد الزيارات المخصصة له , و بطريقة حسابية سيكون هناك 210 زيارات للمشرفين , بينما سيكون لدينا عدد 94 زيارة واجبة للمدارس , كيف سيتم معالجة هذا الفارق في العدد ؟

رابط هذا التعليق
شارك

أشكرك استاذي رضوان على أهتمامك

بالنسبة للإستفسارات

1 - نعم لا يوجد اعتبار لزيارات المشرفين إلا أنه بالود لو أصبح نصيب كل مشرف زياراة مدرسة ثانوية على الأقل أي أن التوزيع يبدأ بالمدارس الثانوية وزياراتها العشر ( كل مدرسة ثانوية نصيبها من الزيارات 10 زيارات وهي عدد أيام الامتحانات الخاصة بشهادة الثانوية ويلزم حضور مشرف لكل مدرسة في كل يوم فمثلاً لدي 19 مدرسة إذاً لدي 190 زيارة لمدرسة ثانوية ، أما بالنسبة للمرحلة المتوسطة فنصيبها هو زيارتين ( 2 زيارة ) أثناء أسابيع الاختبارات مع ملاحظة أن عدد أيام اختبارات المرحلة المتوسطة هي من 8 - 9 أيام فقط أي انها أقل من المرحلة الثانوية أما المرحلة الابتدائية فنصيبها يوم واحد فقط ويكون خلال الخمسة الأيام الأولى لأن عدد أيام امتحانات المرحلة الابتدائية هي مابين 5- 6 -7 أيام فقط

فالذي يتضح أن المطلوب توزيع المدارس الثانوية أولاً ومن ثم المتوسطة ومن ثم الثانوية مع ملاحظة أن المشرف الذي نصيبة من الزيارات ( 2 زيارة ) فإنه يعطى مدرسة ثانوية والأخرى متوسطة أو إبتدائية أما المشرف الذي نصيبة ( 3 زيارات ) فيعطى 2 مدرسة ثانوية و 1 مدرسة متوسطة أو إبتدائية ) والمشرف الذي نصيبة ( 4 زيارات ) فيعطى ( 3 مدارس ثانوية وواحد متوسطة أو ثانوية )

ونصاب المشرف يختلف من مشرف لأخر ومن عام لآخر ولها عدة إعتبارات بالمشرفين التربويين والذين يشغلون دور رؤساء الشعب أو الأقسام فيخفظ نصابهم إلى زيارتين أو ثلاث حسب أهمية القسم الذي يديره وأما البقية فأنصبتهم ما بين 4 أو 5 زيارات حسب العدد المتوفر من المشرفين بحكم أن كل عام له ظروفه فأحياناً يذهب بعضهم لدورات أو لقاءات خارجية وينقص العدد مما يظطرنا إلى زياردة نصيب كل معلم من الزيارات لتغطية الإحتياج

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

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

أما بالنسبة لعدد الزيارات سواء الخاصة المدارس أو المشرفين فيتم إدخالها بشكل يدوي وذلك حسب حالة المدرسة وبغض النظر عن المرحلة فمثلاً مدرسة متوسطة يوجد بها مشاكل أو مثل هذا الشي فيمكننا زيادة عدد زيارتها إلى 3 أو 4 أو 5 أو أكثر

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

أكرر شكري وتقديري وأسأل الله أن ينفع بك

وتقبل تحياتي وتقديري

أخوك أبورغد

رابط هذا التعليق
شارك

الذي شرحته أخيرا واضح يا أبو رغد , لكن لم تجبني على سؤالي

و بطريقة حسابية سيكون هناك 210 زيارات للمشرفين , بينما سيكون لدينا عدد 94 زيارة واجبة للمدارس , كيف سيتم معالجة هذا الفارق في العدد ؟

اذا بدأت توزيع المشرفين سيتم توزيع أقل من نصفهم و تنتهي الزيارات المخصصة للمدارس

هل سيكون باقي المشرفين بلازيارات أم ماذا ؟

رابط هذا التعليق
شارك

مشكور أخوي رضوان

كما أوضحت سابقاً اخوي بعد المقارنة بين عدد الزيارات الخاصة بالمدارس وهي الأهم بعدد الزيارات الخاصة بالمشرفين والتي تبنى على عدد زيارات المدارس يمكننا تعديل نصاب المشرفين بتخفيظة قليلاً حتى يتناسب مع عدد الزيارات الخاصة بالمدارس

المثال الذي أرفقتة في المشاركة الأولى قد حذفت فيه بعض المدارس والصحيح أنها قرابة 19 مدرسة ثانوية والمتوسطة 12 مدرسة والابتدائية 30 مدرسة وما مجموعة 232 زيارة ، وكذلك المشرفين فقد أنقصت بعض الزيارات منهم وكانو هدفي هو ضرب المثال فقط وعمل البرنامج علية بحث أستطيع لا حقاً التعامل معه بأي عدد كان

الآن لدينا خيران

الأول : تخفيظ عدد المشرفين الزائرين وذلك بحذف عدد منهم

الثاني : زيادة عدد المدارس في جميع المراحل ليتناسب العدد المخصص لها من الزيارات مع عدد زيارات المشرفين

أرجوا أن تكون الصورة قد أتضحت لديك

وانا في انتظار ردك وإذا أحببت عملت الجداول الخاصة بالمدارس والمشرفين من الواقع الفعلي تماماً

تقبل تحياتي وتقديري

أخوك أبو رغد

رابط هذا التعليق
شارك

التمس لأخيك سبعين عذرا

قلت لك

أعاني من صعوبة بالغة في الاتصال بالنت

اصبر فالصبر طيب فلكل انسان عذره

على كل حال هذا الملف و فيه كود التوزيع ,

1- تم اضافة عدد المدارس ليتوافق مع اجمالي عدد زيارت المشرفين 210 زيارة

2- اضغط زر الأمر في النموذج ليتم التوزيع تلقائيا

3- التوزيع يتم على أساس عشوائي و بدون اي ترتيب , اي أنه لو تم اعادة عملية التوزيع عدة مرات فانه من المفروض أن يكون في كل مرة التوزيع مختلف الا ماشاء الله

4- نتيجة التوزيع في الجدول TeacherVisit

5- يتم أخذ نتائج تحليلية من واقع الاستعلامات المضافة

طبعا قد يكون هناك بعض المآخذ نتيجة التجربة , فان وجدت فلاباس بالتنبيه اليها

visit.rar

تم تعديل بواسطه rudwan
رابط هذا التعليق
شارك

بارك الله فيك يا أخي

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

على العموم سأجرب البرنامج وأنا متأكد من إبداعاتك

بارك الله فيك

رابط هذا التعليق
شارك

بارك الله فيك يا أستاذ رضوان

فعلاً جهد رائع وإبداع و لا أروع

لكن لدي بعض الاستفسارات و بعض الطلبات

بالنسبة للإستفسارات

1 - وجدت في الاستعلام ( SchoolDue ) حقل ( RandomNumber([schoolID])

ولا أعلم ما دور هذا الحقل

2 - بالنسبة لجملة الاستعلامات المستخدمة ألا يمكن أن نستخدمها عن طريق SQL بدلاً من الاستعلامات الظاهره ( أي نحولهن إلى أكواد داخل الفورم أو وحده نمطية )

3 - حاولت أن أستخدم عده معايير للفرز مثل أن أستخدم حقل ( best) بعد أن وضعت له قيم والموجود في جدول ( TSchools ) وذلك من خلال الاستعلام (SchoolDue ) من أجل أن يبدأ تنفيذ التوزيع من المدرسة التي في السجل الأول وكذلك الحال في استعلام ( TeachersAvailable ) لكن لم تنجح العملية ويعطني الخطأ رقم ( 28 )

4 - عندما تكون عدد زيارات المشرفين المسجله والمحددة لهم أقل من عدد الزيارات المسجلة والمحددة للمدارس يعطيني نفس الخطأ ( 28 )

5- لماذا عملية التوزيع تختلف في كل مرة من عملية التوزيع مع أني لم أغير في الجداول أو في القيم

6 - عندما أفتح استعلام ( SchoolDue ) تختلف مراكز المدارس في كل مرة ولا تبقى على فرز معين

الطلبات :

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

فيوجد شريطين الأول خاص بعرض تقدم العملية الإجمالية للتوزيع وتكون على شكل شريط بداخلة أو بوسطة 100 % تبدأ من 0 إلى 100 وهي إنتهاء عملية التوزيع

والثاني شريط مثل الأول لكن الاختلاف فيه أنه أسرع من الأول ولكن يعرض أسم المعلم أو المشرف أو المدرسة التي يقوم بإجراء العملية عليها فتجده سريعاً جداً ومن خلفة الأسم

2 - رأيت أيضاً في البرنامج نفسة وضع عداد بالثواني ويبدأ من 0 من بداية عملية التوزيع ويتوقف عند الإنتهاء وفائدة عرض المده التي جرت بها عملية التوزيع

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

3 - هل بالإمكان شرح الكود وطريقة عملة وذلك من خلال وضع تعريف فوق كل عملية باللغة العربية .

أتمنى ألا أكون قد أثقلت عليك بكثرة إستفساراتي وطلباتي التي لا تنتهي

وأسأل الله العلي القدير أن يجعل ذلك في ميزان حسناتك وأن ينفع بك وبعلمك الأمه

أخيراً أكرر شكري وتقديري لك ولجهدك الذي بذلته معي ووقت الثمين الذي أمضيته في إخراج هذا العمل

وأنا في انتظار رد بفارغ الصبر

أخوك أبورغد

تم تعديل بواسطه ابورغد
رابط هذا التعليق
شارك

السلام عليكم

جميع الأسئلة الست وردت اجابتها سابقا في مشاركتي الأخيرة

- التوزيع يتم على أساس عشوائي و بدون اي ترتيب , اي أنه لو تم اعادة عملية التوزيع عدة مرات فانه من المفروض أن يكون في كل مرة التوزيع مختلف الا ماشاء الله

فالتوزيع يتم على اساس أن نبدأ من جدول المدرسين و نختارهم واحدا تلو الآخر بالترتيب , ثم نختار لكل مدرس مدرسة بعد اعادة فرز المدارس بشكل عشوائي في كل مرة ( أي يتم اعادة ترتيبهم عشوائيا على طريقة خلط الأوراق في سحب القرعة اذ في كل مرة يتم خلط أوراق المدارس و هذه مهمة الدالة RandomNumber ) و بذلك لن تحصل على توزيع متطابق في كل مرة تقوم فيها باعادة التوزيع . أما اذا كنت تريد نفس ترتيب المدارس يبقى هو في كل مرة فيمكن تعديل الكود , و لكن في هذه الحالة سيكون كود التوزيع بلا فائدة , اذا أن نفس المدرس سيحصل على نفس المدارس في كل سنة , فيكون هنا من الأنسب عمل جدول ثابت على الوورد و لاحاجة لهذا التوزيع .

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

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

تم تعديل بواسطه rudwan
رابط هذا التعليق
شارك

بارك الله فيك أستاذي

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

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

تقبل تحياتي

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information