اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

خلال الايام القريبة الماضية انهيت برنامجي حضور وانصراف وسلمتهما لاصحابها

أحدهما لمصنع وصاحبة لا يريد نظام اليومية بل يريد توقيع دخول والآخر خروج .. ويتم جمع الساعات بينهما .. وهو شغال وصاحب العمل مبسوط

الثاني ( وهو بيت القصيد) لجمعية خيرية مفتوحة .. ويعمل الآن بكل انسيابية

كيف مفتوحة ؟

1- نوع العمل لكل موظف متنوع وكل نوع منفصل عن الآخر : صباحي / مسائي / صباحي ومسائي / دوام حكومي / دوام خاص

2- عطلة نهاية الاسبوع لكل موظف مفتوحة .. قد تكون الجمعة والسبت أو الاثنين والثلاثاء أو الأحد فقط ... ونحو ذلك

3- نظام العطل او ما يسمى الإجازات أو الانتدابات والمهمات (بحيث لا يتم التوقيع من قبل الموظف لا حضور ولا انصراف .. هنا يعتبره النظام غائب ) وتتم معالجته في التقرير ليظهر مجازا

4- نظام المعالجة لمن له توقيع حضور)  : تأخر في الحضور/ خروج مبكر / مهمة مؤقتة / تعويض دقائق .. اذا لم يوقع انصراف ولم يعالج يعتبره النظام غائبا

النتائج التي هي التقارير : اثنان فقط

1- تقرير حالة الموظف ( يعرض فقط أيام العمل الفعلية للموظف ) وامامه الحالة أحد ثلاث حالات : حاضر / مجاز / غائب )

2- تقرير خلاصة شهري بسطر واحد تفصيلي  يعرض التالي :

الاسم / عدد الايام الفعلية ( تستبعد عطلة نهاية الاسبوع ) بغض النظر عن ايام الاجازات فهي داخلة في العدد

/ عدد ايام الحضور

/ عدد ايام الغياب

/ عدد ايام الاجازة

/ عدد الايام المعالجة

/ عدد الدقائق المعوضة

/ ساعات العمل المطلوبة خلال الفترة ( شهر مثلا )  يطرح منها ايام الاجازات

/ مجموع ساعات عمل الموظف خلال الفترة ( شهر مثلا ) 

/ الفرق

 

 

 

قام بنشر

السلام عليكم يا استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل :fff:

4 ساعات مضت, ابوخليل said:

يختلف كثيرا عن تفاصيل عملك

فعلا لو وجه للمقارنة اساسا ولكن انا على دراية تامة انا القوانين او اللوائح المنظمة لادارة شئون العاملين تختلف من منظمة لاخرى ومن مكان لمكان حسب متطلبات وطبيعة العمل ووفق رغبات المالك

4 ساعات مضت, ابوخليل said:

الثاني ( وهو بيت القصيد) لجمعية خيرية

ولانه يخدم عمل خيـــرى اولا اسأل الله تعالى العون والسداد سأحاول جاهدا ان شاء الله بما يمن به على رب العباد من الفهم والعلم

 

طبقا للمعطيات والمتطلبات اللى حضرتك عرضتها على هيئة نقاط دعنا نناقش الهيكل العام والبنية الاساسة كتحليل للنظام وفق ما سبق وحسب فهمى الضئيل المتواضع 

هذا ما خطر ببالى حاليا كحجر اساس

 

جدول الموظفين : tblEmployees

EmployeeID (مفتاح أساسي PK نص : كود/رقم العامل)

EmployeeName (نص : الاسم الكامل للموظف)

WorkScheduleType (نص : يربط بنوع الجدول: صباحي / مسائي / مزدوج / حكومي / خاص)

WeekendDays (نص : لتخزين أيام العطلة: مثلا "الجمعة - السبت")


جدول إعدادات جدول العمل : tblWorkSchedules

ScheduleType (مفتاح أساسي PK نص : صباحي / مسائي / ...)

StartTime (وقت/تاريخ: بداية الدوام)

EndTime (وقت/تاريخ: نهاية الدوام)

RequiredDailyHours (عدد : عدد ساعات العمل المطلوبة في اليوم)


جدول الحضور والانصراف : tblAttendance

AttendanceID  (مفتاح أساسي PK رقم : رقم تلقائي)

EmployeeID (مفتاح خارجي FK نص إلى tblEmployees)

AttendanceDate (وقت/تاريخ : تاريخ اليوم)

SignInTime (وقت/تاريخ : وقت الدخول)

SignOutTime (وقت/تاريخ : وقت الخروج)

ملاحظة مهمة: لا يتم تخزين الحالة : Status
بل يتم احتسابها فيما بعد من خلال استعلام دكي وديناميكي


جدول المعالجات : tblAdjustments

AdjustmentID (مفتاح أساسي PK  رقم  : رقم تلقائي)

AttendanceID (مفتاح خارجي FK : رقم إلى tblAttendance)

AdjustmentType (نص :  مثل >>-->  تأخر / خروج مبكر / مهمة مؤقتة / تعويض دقائق)

AdjustedMinutes (رقم  : الدقائق التي تم تعويضها أو السماح بها)

Notes (نص :  ملاحظات إضافية اختيارية)

 

جدول الاجازات والمهمات tblLeaves

LeaveID (مفتاح أساسي PK  رقم : رقم تلقائي)

EmployeeID (مفتاح خارجي FK : نص إلى tblEmployees)

LeaveDate (وقت/تاريخ : تاريخ الإجازة أو المهمة)

LeaveType (نص : نوع الإجازة >>--> اجازة / مهمة / انتداب)

IsApproved (منطقي :  نعم / لا )

قام بنشر

وده مخطط قاعدة البيانات (Database Schema)

00000000000000.PNG.d9a22ecfac8291ded7a63cc222f350bc.PNG

  1. has: "يمتلك" أو "له" (يعني علاقة بين جدولين:  زي إن جدول الموظفين "يمتلك" سجلات حضور أو اجازات)
  2. uses: "يستخدم" (يعني جدول الموظفين بيستخدم نوع الجدول من جدول إعدادات العمل)
  3. via Attendance: "من خلال الحضور" (يعني العلاقة بين جدول الموظفين وجدول المعالجات بتمر من خلال جدول الحضور)

 

  • PK: مفتاح أساسي
  • FK: مفتاح خارجي
  • tblEmployees.WorkScheduleType يرتبط بـ tblWorkSchedules.ScheduleType.
  • tblAttendance.EmployeeID و tblLeaves.EmployeeID يرتبطو بـ tblEmployees.EmployeeID.
  • tblAdjustments.AttendanceID يرتبط بـ tblAttendance.AttendanceID.
  • الحالة (Status) تتحسب بشكل ديناميكي عن طريق استعلام ( يعنى لن تكون قيمة مخزنة )
  • tblLeaves اتضاف عشان يتتبع الاجازات والمهمات مع حالة الموافقة

     

 

   tblEmployees ||--o{ tblAttendance : "سجل حضوره"
    tblEmployees ||--o{ tblLeaves : "يأخذ اجازات"
    tblEmployees ||--o| tblWorkSchedules : "يستخدم جدول عمل"
    tblAttendance ||--o{ tblAdjustments : "عالج حضوره"

    tblEmployees {
        string EmployeeID PK "المعرف الأساسي للموظف"
        string EmployeeName "اسم الموظف"
        string WorkScheduleType FK "نوع جدول العمل المرتبط"
        string WeekendDays "أيام عطلة نهاية الأسبوع (مثل: جمعة - سبت)"
    }

    tblWorkSchedules {
        string ScheduleType PK "معرف نوع جدول العمل"
        time StartTime "بداية الدوام"
        time EndTime "نهاية الدوام"
        number RequiredDailyHours "عدد ساعات العمل المطلوبة يوما"
    }

    tblAttendance {
        number AttendanceID PK "رقم سجل الحضور"
        string EmployeeID FK "الموظف المرتبط بالسجل"
        date AttendanceDate "تاريخ الحضور"
        time SignInTime "وقت التوقيع دخول"
        time SignOutTime "وقت التوقيع خروج"
    }

    tblAdjustments {
        number AdjustmentID PK "رقم سجل المعالجة"
        number AttendanceID FK "مرتبط بالحضور"
        string AdjustmentType "نوع المعالجة (تأخر، مهمة، تعويض...)"
        number AdjustedMinutes "عدد الدقائق المعوضة"
        string Notes "ملاحظات اختيارية"
    }

    tblLeaves {
        number LeaveID PK "رقم سجل الاجازة"
        string EmployeeID FK "الموظف صاحب الاجازة"
        date LeaveDate "تاريخ الاجازة أو المهمة"
        string LeaveType "نوع الاجازة (اجازة - مهمة - انتداب)"
        boolean IsApproved "هل تم اعتماد الاجازة؟"
    }


 

قام بنشر

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

 

لماذا هى خطأ فااااااااااادح ؟

الأفضل والأسرع هو: إنشاء العلاقات الأساسية داخل التصميم (Relationships داخل نافذة العلاقات)

لماذا؟

1. الأداء وبالأخص مع القواعد المقسمة:

عند وجود علاقات معرفة مسبقا بين الجداول (حتى لو كانت على الجداول المرتبطة Linked Tables في الواجهة Front-End) فإن محرك Access يكون أسرع في تنفيذ الاستعلامات لأنه يستخدم خطة تنفيذ محسنة (Execution Plan) مبنية على هذه العلاقات

2. السلامة المرجعية (Referential Integrity):

عند تعريف العلاقات داخل نافذة العلاقات يمكن تفعيل خيارات مثل:

  • فرض التكامل المرجعي
  • الحذف والتحديث التلقائي
  • منع السجلات اليتيمة

3. إعادة الاستخدام والصيانة:

العلاقات المعرفة في التصميم تكون مرجعية هامة للمطور مما يسهل تتبع البيانات  و هي أيضا تقلل من أخطاء التصميم

أما في الاستعلامات:  فالعلاقات تكون مؤقتة ومحصورة داخل الاستعلام فقط مما يصعب صيانتها في مشاريع أو قواعد بيانات كبيرة

 

--- متى تستخدم العلاقات داخل الاستعلام فقط  ؟

  • إذا كان العمل على استعلام معقد ومخصص مؤقت ولا نريد التأثير على الهيكل العام لقاعدة البيانات
  • عند العمل مع جداول مؤقتة أو مستوردة
  • Like 1
قام بنشر
58 دقائق مضت, ابو جودي said:

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

ستبدي لك الأيام ما كنت جاهلا ... ويأتيك بالاخبار من لم تزود

متى ؟ .. عندما تتعمق في الاعمال المتنوعة

في لحظة تتفاجأ ان البيانات محجوزة ولا يمكنك التعامل معها الا بعد ازالة العلاقة من الجدول

متى نحتاج فعلا لاستخدام العلاقات ؟ الجواب : عندما نريد تقييد المستخدم في الادخالات

خير دليل بجعل الجداول حرة هي قاعدة بيانات sql server .. الربط يتم في الاستعلامات

 

  • Haha 1
قام بنشر
5 دقائق مضت, ابوخليل said:

ستبدي لك الأيام ما كنت جاهلا ... ويأتيك بالاخبار من لم تزود

متى ؟ .. عندما تتعمق في الاعمال المتنوعة

في لحظة تتفاجأ ان البيانات محجوزة ولا يمكنك التعامل معها الا بعد ازالة العلاقة من الجدول

متى نحتاج فعلا لاستخدام العلاقات ؟ الجواب : عندما نريد تقييد المستخدم في الادخالات

خير دليل بجعل الجداول حرة هي قاعدة بيانات sql server .. الربط يتم في الاستعلامات

 

والدى الحبيب و استاذى الجليل و معلمى القدير و والدى الحبيب استاذ @ابوخليل :fff: اولا وأخيــــرا وقبل أى شئ جزاكم الله حيــرا انتم واساتذتنا العظما لنا خير معين حياكم الله وبياكم



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

هل نبدا البناء وفق هذا المخطط 

قام بنشر

ابشر اخي الغالي .. فقط امهلني بعض الوقت وسوف اناقشها بندا بندا  مقارنة بالعمل القائم عندي .. وسوف ارفق في النهاية جداولي

  • Like 1
قام بنشر
2 دقائق مضت, ابوخليل said:

ابشر اخي الغالي .. فقط امهلني بعض الوقت وسوف اناقشها بندا بندا  مقارنة بالعمل القائم عندي .. وسوف ارفق في النهاية جداولي

ما شاء الله .. الله اكبــر

العمل اذا انتهى والقاعدة قائمة بالفعل

انا اعتقدت انك تريد بنائها للجمعية الخيـــرية تفرغت اليوم تماما حتى اشارككم الاجر والثواب

قام بنشر
10 ساعات مضت, ابوخليل said:

خلال الايام القريبة الماضية انهيت برنامجي حضور وانصراف وسلمتهما لاصحابها

بارك الله فيك

اعتقد لا يوجد نقاط  يمكن مناقشتها .. فتحليلك غاية في الكمال

بعض الاختلافات البسيطة بيني وبينك مثلا :

جدول الحضور غالبا لا يكون فيه غير اليوزر ووقت الحضور ووقت الانصراف .. هذه هي العادة .. ولكني ومن خبرتي ان وجود بعض الحقول وادخالها وقت التحضير لها فائدة عظيمة عند الاخراج

ايضا لم اعمل جدولا خاصا بأيام عطلة نهاية الاسبوع يعتمد عليه ويرتبط بغيره  وانما هو خدمي لجلب اسم اليوم فقط .. وجعلت الأيام مربعات اختيار في جدول الموظفين .

ارفقت برنامجي هنا .. يحتوي على الجداول كاملة والاستعلامات . ونموذج التقارير .. وتقارير الحضور كاملة

استبعدت كثيرا من النماذج ومنها نموذج الحضور  لأن المهم هنا المخرجات

الآن من يمر من هنا من الأعضاء ويتصفح المرفق ويرى التقارير  .. يتكون لديه فكرة كاملة .. ويمكنه التطوير او التعديل حسب متطلباته

BosorPrg.rar

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