22-01-23, 12:00 AM
(آخر تعديل لهذه المشاركة : 22-01-23, 02:04 AM {2} بواسطة محمد مسافر.)
(21-01-23, 05:14 PM)Taha Okla كتب : وعليكم السلام ورحمة الله و بركاته
طريقتي بالعادة للتعامل مع قواعد البيانات هي طريقة تقبل مدخلات مهما استجدت تلك المدخلات ولن أكون مجبراً على أن أرجع وأعدل بقاعدة البيانات، فأعتمد على الادخال الأفقي، فكل عملية تستلزم سطر جديد(وبحسب مثالك كل شهر بسطر-يعني حقل واحد لكل الشهور، المختلف هو اسم الشهر),,
وهي أسهل طريقة ليكون البرنامج أكثر ديناميكية ويقبل أي إضافات على البرنامج بالمدخلات
بهذه الطريقة تقبل قاعدة البيانات كل المدخلات لنفس الكود، دون الحاجة لاعادة التعديل كل مرة تكتشف الحاجة لمدخل جديد
ربما تحتاج مستقبلاً لتعجيل الكود لتعديل طريقة العرض - ولكن ليس لطريقة الادخال - بالتالي تكون قاعدة البيانات بعيدة عن كل تعديل قد يؤثر سلباً على المدخلات فيها .. ومن النادر جداً أن تجد حاجة للتعديل على قاعدة البيانات على المدى البعيد..
لكن في البداية عليك أن تعرف ماذا سيعرض برنامجك من مخرجات حتى تعرف ما يستلزمه برنامجك من حقول لتخزين المدخلالت بالشكل الأنسب..
بعد هذه المقدمة الطويلة نذهب للشرح الأقرب للعملي (أقرب تعني لن يكون عملي بشكل فعلي لأني لن أساعدك بكتابة أي كود - فهذه وظيفتك ولديك طريقتك)..
فلا أحب مساعد أحد بكتابة كود في قواعد البيانات لكثرة الطرق الممكنة، فربما أقدم له طريقتي، فألزم بالمتابعة معه(وليس لدي الوقت الكافي للتفرغ لأي موضوع مهما كان كبير أو صغير).
ولكن أعطيك طريقة لتبسيط وأتمته الأمر وتنفذه بالكود الذي يناسبك وتراه أنسب..
أطلعت على جدول الأكسل ووجدته يحتوي على 12 صفحة كل صفحة تخص شهر معين..
يعني أن اللذي بخاطرك أن تصنع اثنا عشر جدول في قاعدة البيانات وتخزن فيها نتيجة كل شهر على حدى,,
الطريقة صحيحة ولكنها مربكة فكل شهر يحتاج لمعالجة على حدى. وبالتالي استعلامات طويلة ..
الطريقة التي أقترحها أن يكون فقط جدول وحيد وحقوله هي نفس حقول الجدول العادي لأي شهر ولكن عليه اضافة عدة حقول .
- حقل للسنة : تكت بفيه سنة التقييم.
- حقل للشهر : شهر التقييم (بدلاً من أن تصنع 12 جدول لكل شهر جدول).
- حقل على الأقل للتقيم السنوي ..
- حقل لمتوسط(معدل) التقييم السنوي.
الادخال : فعندما تدخل بيان لموظف : تحدد رقمه الوظيفي، اسمه، سنة التقييم، الشهر، التقييم والمعدل، و و و، الملاحظات.
المخرجات : عندما تريد معرفة نتيجة تقييم موظف، تحدد اسم أو رقم الموظف، ثم تجعل الكود يعرض النتيجة بحسب ما يجد من مدخلات
والعرض أنت فيه مخير، أفقي أم عمودي،، مع أـني أفضل طريقة العرض العمودية..(شهر تحت شهر) يعني:
تعرض بيانات الموظف، ومسماه الوظيفي وموقعه، ثم جدول فيه التقييمات شهر تحت شهر وفي النهاية سطر جديد(أو ملخص) فيه المجموع وسطر (أو ملخص)فيه المعدل العام.
بما يشابه شهادة تقييم الدرجات لطلاب المدارس..
أسأل الله أن يوفقك ..
شكراً جزيلاً استاذي العزيز
حقيقه قاعده البيانات ستكون البيانات فيها ثابته من ناحيه اسماء الحقول من اول شهر الى اخر شهر الذي سيتغير هي بيانات الادخال فقط ، وبعدها الشهر الثاني نفس الشي وقد تختلف ااسماء الموظفين :
المدخلات ثابته في عنواين الحقلول كامله لكل شهر كماهي موضحه من اول الشهر الى نهايته ، الاختلاف هو فقط في ادخال البيانات المدخله من درجات التقييم للموظفين والاسماء من شهر الى اخر قد نضيف اسم او قد نحذف اسم .
ولتبسيط الفكره اكثر لنفترض عندي 50 موظف بتقييمات مختلفه ونحن في نهايه السنه واريد ان اعرف تقييم موظف في شهر يناير او فبراير او مارس الخ وعنواين الحقول ثابته لكل الاشهر وتم تعبئه البيانات الاسماء ودرجات التقييم ، المطلوب اختيار الشهر من الكمبو بوكس مثلاً اريد تقييم الموظف في شهر يناير والبحث بالرقم الوظيفي PF لموظف واحد تظهر نتيجه التقيييم اول خطوه اخترت من الكمب بوكس شهر يناير و بحثت وادخلت في التاكس بوكس الرقم الوظيفي 300 النتيجه تظهر لي تقييم الموظف كمافي الصوره 1 من فورم المشروع
وهكذ بالنسبه لشهر فبراير بنفس الطريقه الى اخر شهر ، بنفس توضيحك في النقطه الثانيه اثنا عشر جدول في قاعدة البيانات وتخزن فيها نتيجة كل شهر على حدى بالضبط بنفس عنواين الحقول الثابته والفكره هي ارشفه تقييم الموظفين لكل الاشهر بحيث ان اراد الموظف معرفه تقييمه في شهر معين يستطيع الرجوع والبحث من خلال تحديد ذلك الشهر وبعدها ادخال الرقم الوظيفي وظهور النتيجه لااي شهر .
اي فكره تحقق النتيجه مقبوله وكيف يمكن تطبيق تقييمات 12 شهر في جدول واحد والبحث لكل موظف في شهر محدد.
اكرر شكري مره اخرى لااخي العزيز طه واشكره على مساهمته وان شاء الله اجد حلولاً ساابحث لو تم تطبيق الفكره للبحث في شهر يناير وفبراير ستتضح الفكره لبقيه الشهور .
شكررررررررررأ
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.

