الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته،،،
عندي مشروع وبه عدة مستخدمين وأريد مشاهدة ( سجل ) من قام بإدخال المعلومات أو قام بالتعديل عليها أو حذفها مع التاريخ والعملية التي قام بها
أي فلان أدخل معلومات الموظف فلان بتاريخ كذا
فلان قام بالتعديل على معلومات فلان بتاريخ كذا
فلان قام بحذف معلومات فلان بتاريخ كذا
وشكراً جزيلاً
(20-09-24, 03:39 PM)F.H.M كتب : [ -> ]الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته،،،
عندي مشروع وبه عدة مستخدمين وأريد مشاهدة ( سجل ) من قام بإدخال المعلومات أو قام بالتعديل عليها أو حذفها مع التاريخ والعملية التي قام بها
أي فلان أدخل معلومات الموظف فلان بتاريخ كذا
فلان قام بالتعديل على معلومات فلان بتاريخ كذا
فلان قام بحذف معلومات فلان بتاريخ كذا
وشكراً جزيلاً
و عليكم السلام ورحمة الله و بركاته
تضيف جدول باعمدة لازمة و عند كل حفظ تضيف بشكل طبيعي الى هذا الجدول بعد كل اضافة الى اي جدول آخر.
يعني مسالة كود اضافة مكرر.
(21-09-24, 11:37 PM)justforit كتب : [ -> ] (20-09-24, 03:39 PM)F.H.M كتب : [ -> ]الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته،،،
عندي مشروع وبه عدة مستخدمين وأريد مشاهدة ( سجل ) من قام بإدخال المعلومات أو قام بالتعديل عليها أو حذفها مع التاريخ والعملية التي قام بها
أي فلان أدخل معلومات الموظف فلان بتاريخ كذا
فلان قام بالتعديل على معلومات فلان بتاريخ كذا
فلان قام بحذف معلومات فلان بتاريخ كذا
وشكراً جزيلاً
و عليكم السلام ورحمة الله و بركاته
تضيف جدول باعمدة لازمة و عند كل حفظ تضيف بشكل طبيعي الى هذا الجدول بعد كل اضافة الى اي جدول آخر.
يعني مسالة كود اضافة مكرر.
أشكرك أخي العزيز على الرد
لكن صدقني ماني فاهم عليك
شنو تقصد بأعمدة لازمه
عندك سجل فيه معلومات الموظفين ..
تنشئ سجل آخر يشبه معلومات الموظفين (سجل المعلومات التاريخية للموظفين) .. لكن فيه حقول زيادة ..
- اسم المستخدم(من هو صاحب اليوزر الذي يعمل هذه العملية).
- اسم الجدول الذي تم التعديل فيه.
- اسم النافذة التي قامت بتلك العملية.
- نوع العملية(تعديل - حذف).
- وقت العملية(لحظة وتاريخ العملية).
- رقم السجل الذي قمت بالتعديل عليه (إما رقم حقل الترقيم التلقائي أو رقم القيد - أو رقم الموظف (رقم لا يتكرر يعني) : للمقارنة قبل وبعد )
وفي حال الحذف(تضع مثلاً صفر لأنه لا يوجد مقارنة)..
- ثم بقية الحقول نفس حقول الجدول الأساسي ،،،
مثلاً :
- تريد الاضافة .. (تحفظ فقط في الجدول الأساسي ... واسم المستخدم صاحب العملية(يجب أن يكون فيه حقل لاسم المستخدم)، وتاريخ ولحظة العملية). ولا حاجة للحفظ في السجل التاريخي ،، كي لا يصبح تكرار بلا فائدة... (وتعرف هنا مباشرة أنه أي عملية ليس لها عملية رديفة في السجل التاريخي يعني أنها الادخال الأول ولا يوجد عليها تعديل أو حذف)
- تريد الحذف .. تنسخ السجل إلى الجدول المشابه(سجل المعلومات التاريخية للموظفين) .. وتسجل اسم المستخدم، نوع العملية = حذف ، وقت وتاريخ العملية(وقت النظام)).
- تريد التعديل .. يقوم بنسخ السجل القديم لجدول (سجل المعلومات التاريخية للموظفين)، ثم تعدل السجل في الجدول الاساسي، نوع العملية = قبل التعديل، ثم تحفظ نسخة من السجل بعد التعديل.. نوع العملية = بعد التعديل، مع اسم المستخدم و وقت العملية.
هذا أمر متروك لصاحب البرنامج يتوسع أو يضيق به كما يشاء...
ليس بالأمر الصعب . وليس بالبسيط بنفس الوقت ..
فهو يحتاج لوقت ونوافذ وأكواد اضافية كثيرة ..
بدل ما يكون الكود عندك تعديل فقط ،،
يصبح : -- نسخة عن السجل القديم. -- ثم تعديل.. -- ثم عمل نسخة عن السجل الجديد.
بدل أن يكون حذف سجل فقط ،،
يصبح : -- اخذ نسخة عن السجل القديم ... ثم مسح السجل من الجدول الأساسي.
يعني بضغطة زر واحد تنفذ عدة عمليات نسخ وحذف بنفس اللحظة وبشكل متتالي دون أن يشعر المستخدم بذلك..
أما عرض العمليات التاريخية على السجلات : تحتاج لنافذة جديدة تعرض لك سجل العمليات .. في جدول DataGridView
فأي (دبل كلك الماوس) على أي سجل منها يقوم بعرض تلك المعلومات إما ضمن RichtextBox كمعومات تجميعة كل معلومة في سطر .. أو تعرضها في نافذة تشبه نافذة عرض سجل من تلك السجلات أو نافذة تشبه نافذة الادخال التي تم الادخال بها ..
للتذكير واستباق الأمور - لا يوجد وقت لعمل مثال عن ذلك . لأنه يأخذ وقت كبير ..
فإن كنت تحب هذه الطريقة أعملها بنفسك هي لا تختلف عن طريقة حفظ أي سجل.. فقط تصبح عملية مزدوجة لا أكثر.
(22-09-24, 04:14 PM)Taha Okla كتب : [ -> ]عندك سجل فيه معلومات الموظفين ..
تنشئ سجل آخر يشبه معلومات الموظفين (سجل المعلومات التاريخية للموظفين) .. لكن فيه حقول زيادة ..
- اسم المستخدم(من هو صاحب اليوزر الذي يعمل هذه العملية).
- اسم الجدول الذي تم التعديل فيه.
- اسم النافذة التي قامت بتلك العملية.
- نوع العملية(تعديل - حذف).
- وقت العملية(لحظة وتاريخ العملية).
- رقم السجل الذي قمت بالتعديل عليه (إما رقم حقل الترقيم التلقائي أو رقم القيد - أو رقم الموظف (رقم لا يتكرر يعني) : للمقارنة قبل وبعد )
وفي حال الحذف(تضع مثلاً صفر لأنه لا يوجد مقارنة)..
- ثم بقية الحقول نفس حقول الجدول الأساسي ،،،
مثلاً :
- تريد الاضافة .. (تحفظ فقط في الجدول الأساسي ... واسم المستخدم صاحب العملية(يجب أن يكون فيه حقل لاسم المستخدم)، وتاريخ ولحظة العملية). ولا حاجة للحفظ في السجل التاريخي ،، كي لا يصبح تكرار بلا فائدة... (وتعرف هنا مباشرة أنه أي عملية ليس لها عملية رديفة في السجل التاريخي يعني أنها الادخال الأول ولا يوجد عليها تعديل أو حذف)
- تريد الحذف .. تنسخ السجل إلى الجدول المشابه(سجل المعلومات التاريخية للموظفين) .. وتسجل اسم المستخدم، نوع العملية = حذف ، وقت وتاريخ العملية(وقت النظام)).
- تريد التعديل .. يقوم بنسخ السجل القديم لجدول (سجل المعلومات التاريخية للموظفين)، ثم تعدل السجل في الجدول الاساسي، نوع العملية = قبل التعديل، ثم تحفظ نسخة من السجل بعد التعديل.. نوع العملية = بعد التعديل، مع اسم المستخدم و وقت العملية.
هذا أمر متروك لصاحب البرنامج يتوسع أو يضيق به كما يشاء...
ليس بالأمر الصعب . وليس بالبسيط بنفس الوقت ..
فهو يحتاج لوقت ونوافذ وأكواد اضافية كثيرة ..
بدل ما يكون الكود عندك تعديل فقط ،،
يصبح : -- نسخة عن السجل القديم. -- ثم تعديل.. -- ثم عمل نسخة عن السجل الجديد.
بدل أن يكون حذف سجل فقط ،،
يصبح : -- اخذ نسخة عن السجل القديم ... ثم مسح السجل من الجدول الأساسي.
يعني بضغطة زر واحد تنفذ عدة عمليات نسخ وحذف بنفس اللحظة وبشكل متتالي دون أن يشعر المستخدم بذلك..
أما عرض العمليات التاريخية على السجلات : تحتاج لنافذة جديدة تعرض لك سجل العمليات .. في جدول DataGridView
فأي (دبل كلك الماوس) على أي سجل منها يقوم بعرض تلك المعلومات إما ضمن RichtextBox كمعومات تجميعة كل معلومة في سطر .. أو تعرضها في نافذة تشبه نافذة عرض سجل من تلك السجلات أو نافذة تشبه نافذة الادخال التي تم الادخال بها ..
للتذكير واستباق الأمور - لا يوجد وقت لعمل مثال عن ذلك . لأنه يأخذ وقت كبير ..
فإن كنت تحب هذه الطريقة أعملها بنفسك هي لا تختلف عن طريقة حفظ أي سجل.. فقط تصبح عملية مزدوجة لا أكثر.
أشكرك أخي العزيز كفيت ووفيت بالشرح الله يجزاك خير