23-02-24, 02:04 PM (آخر تعديل لهذه المشاركة : 23-02-24, 02:04 PM {2} بواسطة عبد العزيز البسكري.)
السلامعليكم و رحمة الله و بركاته
جمعة مباركة للجميع
إخواني الأفاضل أرجو أن ترشدوني ببعض الأفكار حول قاعدة بيانات لفكرة تسجيل الحضور اليومي لعمال مؤسسة صغيرة لأنّ أفكاري تبعثرت و لم أجد المخرج المناسب لتأسيس جداول قاعدة البيانات يتم تسجيل الحضور باسم العامل و كود العامل و رمز الشهر ( 02 ) أو ( 03 ) أو ( 04 ) .. إلخ .. و السنة الحالية : 2024
عملت حقول بعدد أيام الشهر كمثال لتسجيل الرمز 1 للحضور و 0 للغياب :
Days1
Days2
Days3
Days4
و بهاته الكيفية سوف أعمل 29 حقل للشهر الحالي و 31 حقل لشهر مارس القادم
و هكذا دواليك لبقية الشهور الموالية
هل توجد طريقة أخرى مناسبة حسب رأيكم
و بارك الله فيكم و لكم مقدما و جزاكم خير الجزاء إن شاء الله
عليكم السلام ورحمة الله
هذا ابسط مثال عملت عليه في السابق
( مع ملاحظة حركة الدخول والخروج قد تكون من خلال جهاز بصمة شبكي أو USB او حتى عملية الدخول والخروج بشكل يدوي )
( كذلك فيه بعض الشروط الدخول يسمح لمره واحده لعدم التكرار وعند الخروج يسمح بالتكرار أو التحديث لأخر وقت خروج )
اما بنية الجدول هي كالتالي :
names اسم المستفيد
tmeslog وقت الدخول
tmesexit وقت الخروج
da التاريخ
days اسم اليوم
DD يوم فردي
MM شهر فردي
YYYY سنة فردي
اقصد بالقيم الفردية لأستخدامها لاحقا بعمليات حسابية بحركة الدخول والخروج عبر موارد اجهزة اخرى
usernet المستخدم مراقب النظام
typelog نوع حركة الدخول
typelog2 نوع حركة الخروج
LOGE حركة الدخول
EXITE حركة الخروج
يمكنك اعتماد هذه الطريقة مبدئيا في حال كبر حجم المشروع اعتمد على حركة الدخول والخروج عبر المستخدمين من خلال تطبيقات الهواتف
أشكرك جزيل الشكر أستاذنا الكريم : الكاتب و بارك الله فيك و لك ليوم الدين على نية المساعدة .. فقط للتنويه
فكرتي بعيدة كل البعد عن جهاز البصمة و ما شابهه يعني فقط عملية تسجيل و حساب عدد أيام العمل خلال الشهر الحالي أو الشهر الموالي أو تصفح بعض الشهور الماضية و عليه يجب تسجيل الحضور لكل عامل من العمال يدويا يوميا خلال الشهر و هنا لم أجد كيفية إنشاء جداول قاعدة البيانات .. هل أجعل لكل شهر جدول خاص و عند تسجيل حضور العمال سيكون هناك شرط إذا كنا في الشهر الحالي الذي هو شهر 02 سيتم التعامل مع جدول شهر فيفري كمثال .. أو ماذا أفعل ؟؟
و بارك الله فيك و لك و أجدد شكري و تقدير لشخصك الكريم
أن تجعل لكل شهر حقول بعدد أيامه .. يعني اثنا عشر جدول، ووواحد وثلاثون حقل لكل شخص.
وهذا سيكون :
- مرهق للمبرمج في حال التعديل والترقية..
- مثقل للبرنامج بالكود، لأنك ستناقش كل حالة على حدى بكود منفصل.
لكن حقل واحد يشمل كل الحالات يكن هو الأفضل وتضع الكود المناسب،
ولكن عليك أن تراعي أشياء تضيفها للكود عند فتح نافذة الحضور :
أن يقوم البرنامج تلقائياً بإضافة أسماء كل العاملين..
فمن يحضر يضع بجانبه (Check) وبساعة الحضور،
ومن لم يحضر لا يتم وضع هذه الاشارة.
فعند الحفظ يتم إدراج الكل بالجدول في قاعدة البيانات بوقته ومن لم يحضر بوقت صفري أو غير محددد أو اشارة أنت تعرفها في برنامجك تدل على القيم الخالية تغنيك عن معالجة الحالة الخالية(إن كنت تريد التخلص منها نهائياً)..
كما في الصورة أدناه..
------------------------
حقل التاريخ فيك تتعامل معاه بأكثر من حالة بالكود :
تتعامل معه كحقل(افتراضي (As)) للسنة ، وحقل للشهر، وحقل لليوم والتاريخ (دون الحاجة أن تجعل لكل منها حقل منفصل) ..
(أي وكأنه ثلاث أو أربع حقول) كل منها لها تصرف بحسب حاجتك منه .
حقل الحضور ــ تعرف غايتك منه (إما حضور أو غياب)..
حقل نوع الغياب، في العادة اذا حضور (1)، ولكن في الغياب : إما غياب مبرر (1) أو غياب غير مبرر (0).
فيصبح هذا الحقل مرادف ليوم الحضور في حال التشييك من أجل حساب الراتب :
- فإن كان غياب مبرر(1) تجاهلت أنه كان حاضر أو لا. ويتم حساب الراتب له فيه.
- وإن كان غير مبرر(0) حسبت هذ ضمن جدول غيابته واستخرج له تقرير بذلك(كسبب لخصم الراتب لعدة أيام أو انذار بعدد أيام الغياب).
-- وعلى هذا يصبح جدول الحضور قابل للتعديل بشروط (المدير) فمن يأتي بعذره يقوم المدير أو من ينوب عنه بتعديل غياب العامل لغياب مبرر (وليس موظف الحضور والانصراف)، أو يبقى كما سجل في يوم العمل المنصرم على أنه غياب غير مبرر.
-- ساعة الحضور والانصراف إن كانت مهمة أو غير مهمة في الشركة التي تعطيها البرنامج ،
عليك إضافة هاذين الحقلين للجدول في قاعدة البيانات،
كـ حيطة لك في المستقبل إذا حاولت الشركة إعتماد ساعة الحضور والانصراف بالدقيقة والثانية..
فيكون التعديل فقط على الملف التنفيذي، وتكون قاعدة البيانات جاهزة لكل تعديل على الملف التنفيذي..
لأن التعديل على قاعدة البيانات أكثر أمر مرهق للمبرمج وأكثر خطورة،
فالجداول القياسية : تساعد المبرمج على تخطي كل الصعوبات مستقبلاً..
---
الصورة توضيحية لا أكثر، بإمكانك إختصار الجدول أكثر في حال تعتمد ربط الجداول، فلا يظهر سوى رقم العامل أو اسمه..
وأظن عليك إضافة أكثر من حقل إضافي آخر حتى لو بقي فارغاً بدون تعبئة (منها حقل أو أكثر للملاحظات)..
فقد تستخدمه في المستقبل، فلا تغير سوى اسمه..
أفكار قيّمة باسم الله ما شاء الله و هي قريبة جدا جدا لما أريد فعله حتى أني قمت بتصميم جدول به بعض من هاته المعطيات
الإشكالية ربما التي بقيت معي و هي بحالة إعتماد جدول واحد كيف ستكون عملية تسجيل الحضور .. حيث ستكون الطريقة عبارة عن تعديل فقط للعامل الفلاني لحقل اليوم الحالي من 0 إلى 1
الفكرة الأولى هي تسجيل الحضور اليومي بشكل يدوي أختار العامل و أسجل حضوره اليومي .
الفكرة الثانية هي إستعراض و حساب عدد الايام التي عملها خلال الشهر الحالي أو شهر آخر موالي أو شهر فائت و طبعا هنا ستكون عملية البحث ليسا مهمة حاليا .
حاولت العمل أخي طه على هاته الفكرة خلال فترة سابقة بعيدة .. إنقطعت عن البرمجة قليلا لظروف صحية قاهرة و اليوم خطر ببالي هذا المشروع لضرورة ملحة و لذلك جانبت الصواب بتفكيري و أفكاري حوله .
شوف أخي الكريم معي قاعدة البيانات بالمرفقات هذه و أنرني و أرشدني للطريقة المنطقية و الصائبة عسى الله أن ينير لك دربك ليوم الدين إن شاء الله .
بارك الله فيك أخي عبد العزيز
ان شاء الله سأنزل المرفق وسأحاول حالما ارجع للبيت...
الفكرة التي برأسي .. بمجرد ان يقوم موظف الحضور بفتح صفحة تسجيل الحضور ...
يقوم البرنامج بنسخ اسماء الموظفين من جدل الموظفين للجدول في نافذة الحضور والغياب .. وبعد الانتهاء من التدقيق عليهم والتحقق يضغط حفظ...
فيتم ادراج ذاك اليوم في قاعدة البيانات..
ومنها يتحقق متى اخر يوم حضور فيسجل اليوم التالي لاخر يوم سجلت بياناته أولا
ان كان يختلف عن اليوم الحالي تنبه ان اليوم التالي غير اليوم الحالي .. فعندها يعالجه الموظف ك يوم عطلة مبرر الغياب مثلا او كيوم دوام عادي وحتى لو كان غياب حتى لا يسجل ك أيام غياب في سجلات الموظفين.....
23-02-24, 05:38 PM (آخر تعديل لهذه المشاركة : 23-02-24, 05:39 PM {2} بواسطة مصمم هاوي.)
أستاذي الحبيب عبد العزيز
حيّاك الله
لدي مشروع ربما تكون نفس الفكرة ولكن بالفيجوال 6.
وعليك تطوير للدوت نت.
إن أردت مثالاً سوف أرفقه لك فهو ساعدني كثيراً في تسجيل حضور وغياب الطلبة.