Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

GestionAbsences

Gestion des absences journalieres des eleves - Delphi/Object Pascal + Microsoft Access (MERISE). Memoire de fin de formation, technicien superieur en informatique.

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

برنامج متابعة الغيابات اليومية للتلاميذ

Gestion des absences journalières des élèves — Delphi + Object Pascal + Microsoft Access

تطبيق سطح مكتب لتسيير غيابات وتأخرات التلاميذ في المؤسسة التربوية، منجز وفق منهجية MERISE كما وردت في مذكرة التخرج « تصميم وانجاز برنامج لمتابعة الغيابات اليومية للتلاميذ » (متوسطة الشهيد بالعربي أحمد — سيدي طيفور، ولاية البيض).


1. المتطلبات

العنصر التفاصيل
نظام التشغيل Windows 7 أو أحدث
بيئة التطوير Delphi 2009 أو أحدث (تم اختبار البنية على RAD Studio 10/11/12)
قاعدة البيانات Microsoft Jet 4.0 (مدمج في ويندوز 32 بت) أو Microsoft Access Database Engine
المكونات ADO (TADOConnection, TADOQuery) — مدمجة في Delphi، لا تحتاج أي مكتبة خارجية

مهم : اجعل هدف البناء Win32 وليس Win64. موفر Microsoft.Jet.OLEDB.4.0 لا يوجد إلا بنسخة 32 بت. إذا كان لا بد من Win64، ثبّت Microsoft Access Database Engine 2010 (64-bit) وغيّر DB_FILENAME في Source/uDB.pas إلى GestionAbsences.accdb (البرنامج ينتقل تلقائيا إلى موفر ACE).


2. الفتح والتشغيل

  1. افتح Source/GestionAbsences.dpr بواسطة Delphi (سينشئ الـ IDE ملف .dproj تلقائيا عند أول فتح).
  2. اضبط المنصة على Windows 32-bit.
  3. Project → Build، ثم Run (F9).
  4. عند أول تشغيل ينشئ البرنامج تلقائيا :
    • المجلد Data\
    • ملف قاعدة البيانات Data\GestionAbsences.mdb
    • الجداول الثلاثة عشر
    • البيانات المرجعية (4 مستويات، 8 أقسام، 13 مادة، 8 حصص، إعدادات المؤسسة)

الحساب الافتراضي

pascal
?????? ???????????????? : admin
???????? ????????????  : admin

غيّر كلمة المرور فورا من : أدوات ← المستخدمون.


3. بنية المشروع

pascal
GestionAbsences/
????????? README.md
????????? Assets/                         ?????? ???????????????? ?????????? ??????????????????
???   ????????? app.ico                     ???????????? ????????????????
???   ????????? logo.png                    ???????????? ?????????????????? (?????????????? ?????????? ??????????????)
???   ????????? Cards/                      ???????????? ???????????? ???????????? ???????????????? (+ CREDITS.md)
????????? Database/
???   ????????? 01_CreateTables.sql        ?????????????? SQL ???????????? ?????????????? (?????????????? / ?????????????? ????????????)
????????? Docs/
???   ????????? 01_Modele_de_donnees.md    ?????????? ???????????????? + MCD + MLD + ?????????? ????????????????
???   ????????? 02_Chapitre3_Application.md ???? ???????? ?????????? ???????????? ???? ??????????????
????????? Reports/                        ?????????????? ???????????????????? (HTML ?????????? ??????????????)
????????? Source/
    ????????? GestionAbsences.dpr         ?????? ??????????????
    ????????? uLang.pas                   ???? ???????????? ?????????????? ??????????????
    ????????? uUtils.pas                  SHA-1?? ???????????????? RTL?? ?????????? ??????????????
    ????????? uDB.pas                     ?????????? ?????????????? ???????????????? + ?????????? ??????????????????
    ????????? dmMain.pas/.dfm             ???????? ???????????????? (ADO)
    ????????? uLogin.pas/.dfm             ?????????? ????????????
    ????????? uMain.pas/.dfm              ?????????????? ???????????????? ?????????? ??????????????
    ????????? uStudents.pas/.dfm          ?????????? ????????????????
    ????????? uRefData.pas/.dfm           ??????????????????/??????????????/????????????/????????????????/??????????/??????????????
    ????????? uAbsence.pas/.dfm           ?????????? ???????????????? ??????????????  ??? ?????????????? ????????????????
    ????????? uJustify.pas/.dfm           ?????????? ????????????????
    ????????? uNotices.pas/.dfm           ?????????????????? ????????????????????????
    ????????? uDocs.pas/.dfm              ???????? ???????????? ???????????????? ????????????????
    ????????? uReports.pas/.dfm           ???????????????? ??????????????????????
    ????????? uUsers.pas/.dfm             ???????????????????? ????????????????????
    ????????? uSettings.pas/.dfm          ?????????????? ??????????????

مجلد Assets

مجلد Assets يُنسخ بجانب الملف التنفيذي عند التوزيع. يبحث عنه البرنامج بدءا من مجلد التنفيذي ثم في المجلدات الأعلى، فيعمل كذلك أثناء التطوير عندما يكون التنفيذي في Win32\Debug. إذا غاب المجلد يشتغل البرنامج عاديا : البطاقات تبقى بيضاء والشعار يختفي، دون أي رسالة خطأ.

  • خلفيات البطاقات : تُمزج مع لون البطاقة عند العرض فتبقى باهتة خلف النص (DrawWashedCover في uUtils.pas). لتغيير خلفية يكفي استبدال الملف بنفس الاسم في Assets\Cards. مصادر الصور ورخصها في Assets/Cards/CREDITS.md.
  • الشعار : يعرض البرنامج شعار المؤسسة المضبوط في أدوات ← إعدادات المؤسسة، وعند غيابه يعرض Assets\logo.png ويستعمله كذلك في ترويسة الوثائق المطبوعة.
  • الأيقونة : مضمَّنة في Source/GestionAbsences.res وتُقرأ أيضا من Assets\app.ico عند الإقلاع. إن أعاد الـ IDE توليد ملف المورد فاضبطها من Project → Options → Application → Load Icon على Assets\app.ico.

مبدأ تصميمي : كل نصوص الواجهة موجودة في uLang.pas فقط، وملفات .dfm تحتوي على محارف ASCII فقط. هذا يمنع أي مشكل في ترميز المحارف عند فتح المشروع على جهاز آخر.


4. تبديل اللغة (عربي / فرنسي)

البرنامج ثنائي اللغة : العربية (الافتراضية) والفرنسية.

  • التبديل من : أدوات ← اللغة ← العربية / الفرنسية (Outils → Langue → Arabe / Français)
  • التبديل فوري ولا يحتاج إعادة تشغيل : تتغير التسميات، ويتغير اتجاه الواجهة تلقائيا (يمين‑يسار للعربية، يسار‑يمين للفرنسية)، وكذلك اتجاه رسائل الحوار.
  • اللغة المختارة تُحفظ في جدول AppSettings تحت المفتاح LANG، فتُسترجع عند التشغيل القادم.
  • التقارير تتبع اللغة كذلك : سمة dir في ملف HTML، وترويسة الوثيقة، وأسماء الأيام والأشهر (بالتسمية المغاربية : جانفي / janvier …).

ما الذي لا يتغير مع اللغة — ولماذا

العنصر يبقى بالعربية السبب
نصوص الوثائق الرسمية (الإشعارات، الإعذار بالشطب، الشهادة المدرسية، ورقة الدخول) نعم وثائق إدارية جزائرية تُحرَّر بالعربية، ونصوصها منقولة عن المذكرة
البيانات المرجعية (أسماء المواد، المستويات، الأقسام) نعم هذه معطيات مخزَّنة في القاعدة وليست نصوص واجهة — تُعدَّل من واجهة البيانات الأساسية

إضافة لغة ثالثة

  1. أضف قيمة إلى TAppLang في uLang.pas (مثلا langEN).
  2. انسخ الإجراء LoadFrench وسمّه LoadEnglish وترجم القيم.
  3. أضف حالة في SetLanguage وSetLanguageByCode.
  4. أضف عنصرا في قائمة أدوات ← اللغة في uMain.

بنية uLang.pas : 314 نصا × عدد اللغات، كلها متغيرات string تُملأ عند التبديل، لذلك لا يحتاج أي ملف آخر إلى تعديل.


5. دليل الاستعمال السريع

أ) التحضير (مرة واحدة في السنة)

  1. أدوات ← إعدادات المؤسسة : اسم المؤسسة، المديرية، المدير، مستشار التربية، العتبات.
  2. البيانات الأساسية ← السنوات الدراسية : أنشئ السنة ثم تعيين كسنة جارية.
  3. البيانات الأساسية ← الأقسام : أنشئ الأقسام واربطها بالمستوى والسنة.
  4. البيانات الأساسية ← المواد / الأساتذة / الحصص : عدّلها حسب المؤسسة.
  5. التلاميذ : أدخل ملفات التلاميذ ووزّعهم على الأقسام.

ب) العمل اليومي

  1. الغيابات ← تسجيل الغيابات اليومية
  2. اختر التاريخ + القسم + الحصة (والمادة والأستاذ اختياريا) ثم عرض قائمة التلاميذ.
  3. انقر على خانة الحالة لتتنقل بين: حاضر ← غائب ← متأخر. انقر على خانة مبرر لتغييرها. اكتب دقائق التأخر والسبب مباشرة في الشبكة.
  4. حفظ كشف الغيابات.
    • الحالة «حاضر» تحذف أي تسجيل سابق ← يمكن تصحيح الأخطاء بسهولة.
    • قيد الوحدانية يمنع ازدواج التسجيل لنفس التلميذ/التاريخ/الحصة.

ج) المتابعة

  • الغيابات ← تبرير الغيابات : حدّد سطرا أو عدة أسطر (Ctrl / Shift) ثم تبرير المحدد.
  • الوثائق ← الإشعارات : اضغط اقتراح الإشعارات آليا ← ثم طباعة الوثيقة.
  • التقارير : اختر النوع والفترة ← عرض للمعاينة، طباعة لتوليد الوثيقة.

6. الوثائق والتقارير

تُولَّد كل الوثائق بصيغة HTML في مجلد Reports\ وتُفتح تلقائيا في المتصفح، ثم تُطبع منه (Ctrl+P). اختير هذا الأسلوب لأنه :

  • يدعم الكتابة من اليمين إلى اليسار دعما كاملا وبدون تشويه للحروف العربية،
  • لا يحتاج أي مكوّن تقارير خارجي (QuickReport / FastReport) قد لا يكون مثبتا،
  • يسمح بالتصدير إلى PDF مباشرة من المتصفح.

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


7. حل المشاكل الشائعة

العطل الحل
Provider cannot be found ابنِ المشروع في Win32، أو ثبّت Access Database Engine
تعذر إنشاء ملف قاعدة البيانات تحقق من صلاحيات الكتابة في مجلد البرنامج (لا تضعه في Program Files)
الحروف العربية تظهر مربعات تأكد أن خط النماذج هو Tahoma وأن Font.Charset = ARABIC_CHARSET
الواجهة تظهر من اليسار ApplyRTL يُستدعى في FormCreate لكل نافذة — تأكد من عدم حذفه
الشهر بالفرنسية في التقارير أسماء الأشهر مضبوطة في uUtils.ArabicMonthName (التسمية المغاربية)

8. ملاحظة أكاديمية

الوثيقتان في مجلد Docs/ تكملان المذكرة :

  • 01_Modele_de_donnees.md يحتوي على قاموس المعطيات، قواعد التسيير، النموذج المفاهيمي MCD بتعداداته، قواعد الانتقال، والنموذج المنطقي MLD — وهي العناصر المدرجة في فهرس المذكرة والتي لم تُحرَّر بعد.
  • 02_Chapitre3_Application.md نص جاهز للفصل الثالث (الجانب التطبيقي).