documentg

44
Startimes.com by : Kyuib_24 [email protected] 1 ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﯿﻢ اﻟﺴﻼم ﻋﻠﯿﻜﻢ ورﺣﻤﺔ اﷲ ﺗﻌﺎﻟﻰ و ﺑﺮﻛﺎﺗﮫ ﻋﻨﻮان اﻟﻤﺸﺮوع: ﺗﺴﯿﯿﺮ ﻣﻌﮭﺪ ﻣﺘﺨﺼﺺ ﻓﻲ اﻟﺘﻜﻮﯾﻦGestion d’un établissement de formation ﻣﻘﺪﻣﺔ ﺑﺴﯿﻄﺔ : ﻓﻲ ھﺬا اﻟﻤﺸﺮوع أود أن أوﺿﺢ ﻓﻜﺮة ﺟﺎءت ﺑﺒﺎﻟﻲ و ھﻲ أھﻤﯿﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﺣﯿﺎﺗﻨﺎ اﻟﯿﻮﻣﯿﺔ و أھﻤﯿﺘﮭﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺒﺮﻣﺞ ، ﻓﻌﻠﻰ أي ﻣﺒﺮﻣﺞ أن ﯾﺘﻘﻦ اﺳﺘﻌﻤﺎل ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و ھﻨﺎ أﺣﺒﺐ أن أﻗﺪم ﻓﻜﺮة ﺑﺴﯿﻄﺔ) ﻣﺸﺮوع ﻣﺼﻐﺮ ﻋﻦ ﺑﺮﻧﺎﻣﺞ ﻹدارة ﻣﺆﺳﺴﺔ ﺗﺮﺑﻮﯾﺔ ﻣﺘﺨﺼﺼﺔ ﻓﻲ اﻟﺘﻜﻮﯾﻦ. ( ﺑﺈﻣﻜﺎن ﻛﻞ ﻣﺒﺮﻣﺞ اﺳﺘﻌﻤﺎل ھﺬا اﻟﻤﺸﺮوع اﻟﻤﻔﺘﻮح اﻟﻤﺼﺪر و ﺗﻜﯿﯿﻔﮫ ﻣﻊ ﻣﺎ ﯾﺘﻄﻠﺒﮫ ﻋﻤﻠﮫ ، ﺑﺎﻟﻄﺒﻊ ﻣﻊ ﺣﻔﻆ اﻟﻤ ﻠﻜﯿﺔ اﻟﻔﻜﺮﯾﺔ ﻟﻠﻜﺎﺗﺐ اﻷﺻﻠﻲ) ھﮭﮫ أﻧﺎ ﺑﺎﻟﻄﺒﻊKyubi_24 ( ﻣﺘﻄﻠﺒﺎت اﻟﻌﻤﻞ: - دﻟﻔﻲ ﻧﺴﺨﺔ ﻣﺤﺘﺮﻓﺔ ﺗﺪﻋﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وھﺬه ﻧﺴﺨﺔ ﻣﻦ رﻓﻌﻲ ﻟﻤﻦ ﯾﺮﯾﺪ اﻟﺘﺤﻤﯿﻞ: http://www.startimes.com/f.aspx?t=25799287 ﻣﺎذا ﺳﻨﺴ ﺘﻌﻤﻞ ؟؟ اﻟﺠﻮاب ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎتSQL ﻓﻘﻂ اﻟﻌﻤﻞ اﻟﻤﻄﻠﻮب ﻣﻨﺎ: ﺗﻘﺪﻣﺖ إﺣﺪى ﻣﺆﺳﺴﺎت اﻟﺘﻜﻮﯾﻦ اﻟﻤﮭﻨﻲ ﻣﻦ أﺣﺪ ﻣﺒﺮﻣﺠﻲ اﻟﺪﻟﻔﻲ ﺑﺴﺘﺎر ﺗﺎﯾﻤﺰ) اﻷخ ﺧﯿﺮ اﻟﺪﯾﻦ ھﮭﮫ( و ﻃﻠﺒﺖ ﻣﻨﮫ إﻋﺪاد ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻟ ﺘﺴﯿﯿﺮ ﻧﺘﺎﺋﺞ اﻟﻤﺘﻤﮭﻨ ﯿﻦ ﺑﺎﻟﺪﻟﻔﻲ. و ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻗﺪﻣﺖ ﻟﻨﺎ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﺎﻟﯿﺔ ﻟﻨﺘ ﻤﻜﻦ ﻣﻦ اﻟﻌﻤﻞ ﺑﮭﺎ: - ﻛﻞ ﻣﺘﻤﮭﻦ ﯾﺪرس اﺧﺘﺼﺎص واﺣﺪ ﺑﺎﻟﻤﺆﺳﺴﺔ ، و إذا أراد اﻟﺘﺴﺠﯿﻞ ﻓﻲ اﺧﺘﺼﺎص آﺧﺮ ﯾﺠﺐ ﻋﻠﯿﮫ إﻋﺪاد ﻣﻠﻒ إداري ﺟﺪﯾﺪ- اﻟﺘﺮﺑﺺ ﺑﮭﺬه اﻟﻤﺆﺳﺴﺔ ﻗﺼﯿﺮ اﻟﻤﺪى) ﻻ ﯾﺘﻌﺪى6 أﺷﮭﺮ( - ﻛﻞ اﺧﺘﺼﺎص ﻟﮫ ﺗﻜﻠﻔﺘﮫ و ﻋﻠﻰ ﻛﻞ ﻣﺘﻤﮭﻦ دﻓﻊ اﻟﻤﺴﺘﺤﻘﺎت ﻗﺒﻞ ﻧﮭﺎﯾﺔ اﻟﺘﺮﺑﺺ- ﻛﻞ اﺧﺘﺼﺎص ﻣﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻮاد- ﯾﻤﻜﻦ أن ﺗﻨﻄﻠﻖ دورة ﺟﺪﯾﺪة ﻓﻲ أي وﻗﺖ ﻣﻦ اﻟﺴﻨﺔ و ﻟﺬﻟﻚ ﯾﺠﺐ ﺗﺤﺪﯾﺪ اﻟﻌﻨﺎﺻﺮ اﻟﺘﺎﻟﯿﺔ: اﻟﻤﻮاد اﻟﺘﻲ ﯾﺘﻢ ﺗﺪرﯾﺴﮭﺎ

Upload: damon-salvatore

Post on 26-Oct-2015

53 views

Category:

Documents


9 download

TRANSCRIPT

Startimes.com by : Kyuib_24

[email protected]

1

بسم اهللا الرحمن الرحیم

السالم علیكم ورحمة اهللا تعالى و بركاتھ

تسییر معھد متخصص في التكوین: عنوان المشروع

Gestion d’un établissement de formation

مقدمة بسیطة :

في ھذا المشروع أود أن أوضح فكرة جاءت ببالي و ھي أھمیة قواعد البیانات في حیاتنا الیومیة و

بالنسبة للمبرمج ، فعلى أي مبرمج أن یتقن استعمال قواعد البیانات و ھنا أحبب أن أقدم فكرة أھمیتھا

) .مؤسسة تربویة متخصصة في التكوین إلدارةمشروع مصغر عن برنامج ( بسیطة

كل مبرمج استعمال ھذا المشروع المفتوح المصدر و تكییفھ مع ما یتطلبھ عملھ ، بالطبع مع حفظ بإمكان

) Kyubi_24ھھھ أنا بالطبع ( لكیة الفكریة للكاتب األصلي الم

:متطلبات العمل

دلفي نسخة محترفة تدعم قواعد البیانات -

:وھذه نسخة من رفعي لمن یرید التحمیل

http://www.startimes.com/f.aspx?t=25799287

تعمل ؟؟ماذا سنس

فقط SQLالجواب قواعد بیانات

:العمل المطلوب منا

)األخ خیر الدین ھھھ (مؤسسات التكوین المھني من أحد مبرمجي الدلفي بستار تایمز إحدىتقدمت

.ین بالدلفي تسییر نتائج المتمھنقاعدة بیانات ل إعدادو طلبت منھ

:بھامكن من العمل و على سبیل المثال قدمت لنا المعلومات التالیة لنت

أراد التسجیل في اختصاص آخر یجب علیھ إذاكل متمھن یدرس اختصاص واحد بالمؤسسة ، و -

جدید إداريملف إعداد

) أشھر 6ال یتعدى ( التربص بھذه المؤسسة قصیر المدى -

كل اختصاص لھ تكلفتھ و على كل متمھن دفع المستحقات قبل نھایة التربص -

مجموعة مواد كل اختصاص متكون من -

:یمكن أن تنطلق دورة جدیدة في أي وقت من السنة و لذلك یجب تحدید العناصر التالیة -

المواد التي یتم تدریسھا

Startimes.com by : Kyuib_24

[email protected]

2

المعامالت

المدة

التكلفة

المحاسبة ، : مثال الریاضیات یمكن تدریسھا في ( كل مادة یمكن أن تدخل في عدة اختصاصات -

.ر المعامل من اختصاص الى آخر و یتغی) الخ ... اآللي اإلعالم

في نھایة التربص یكون ھناك اختبار في جمیع المواد التي درسھا المتمھن -

في المواد التي یدرسھا یتحصل على شھادة انتھاء التربص 10تحصل المتربص على عالمة إذا -

مع دفع المستحقات

:التسجیلالوثیقة التي یتم مألھا عند

رنسیة في الوثیقة أعاله ألني سأستعمل قواعد البیانات و ھو ما الاستعملت الف: مالحظة

یتماشى مع قواعد البیانات

Startimes.com by : Kyuib_24

[email protected]

3

:نبدأ على بركة اهللا

:االقتراحات

إنشاء مخطط یوضح المصفوفات التي یتم استعمالھا و كذلك نوع كل مصفوفة : 1 -

حسب المخطط المقترح انشاء قاعدة بیانات : 2 -

لقاعدة البیانات طلبت المؤسسة منا ( Mise a Jour)مؤسسة لعمل تحدیث و لتسھیل عمل ال : 3 -

:انشاء واجھة برمجیة تسمح لھم بـ

معاینة و تعدیل قاعدة البیانات

إضافة تسجیل جدید

حذف تسجیل معین

و ھو ما یتوجب اقتراحھ على المؤسسة

التالیة باستعمال المكون SQL و لتسھیل استعمال قواعد البیانات ، طلب منا استعمال أوامر: 4 -

Query

أمر یسمح بإظھار قائمة المواد التي یتم تدریسھا في كل تخصص

أمر یسمح بحذف مادة معینة(Module) و كذلك جمیع النقاط التي تم الحصول علیھا من

طرف المتربصین

:ت التالیة كشف نقاط للمتربصین و الذي تظھر بھ المعلوما إنشاءترید المؤسسة كذلك : 5 -

Quickreportو ذلك باستعمال األداة

Startimes.com by : Kyuib_24

[email protected]

4

البدء في المشروع

)قواعد البیانات(الجزء

:مخطط البیانات الذي سنستعملھ – 1

Formation ( CodeFormation, intitulé, Durée, cout)

Etudiant (NumEtudiant, Nom, Prénom, DatedeNaissance,

DateInscription, Code formation, Payé)

Modules (NumModule, intitulé)

Notes (NumEtudiant, NumModule, Note)

ModuleFormation (CodeFormation,NumModule, Coefficient)

من یالحظ المخطط أعاله سیالحظ أنھ استعملنا ، مخطط من المصفوفات سنستعملھا في

Relationnelleقواعد بیانات عالئقیة

:قاعدة بیانات حسب المخطط انشاء – 2

:سنضع اآلن جدول مبسط لقاعدة البیانات التي سننشئھا الحقا

Startimes.com by : Kyuib_24

[email protected]

5

:إنشاء قاعدة البیانات – 3

اذن لفتحھ المرفق مع الدلفي DataBase Desktopالنشاء قاعدة بیانات بالدلفي نستعمل برنامج

Tools/DataBase Desktop نضغط على

Startimes.com by : Kyuib_24

[email protected]

6

یظھر لنا ما یلي

Aliasالستعمال قاعدة بیانات یجب أن ننشأ لھا و

: Aliasإنشاء -

و سنختار ھذا المسار لحفظھ Aliasكاسم لھذا GestEtudسنختار اسم

D:/Travail/Gestion Etudiant/BD

:و للقیام بھذا العمل نتبع ما یلي

ورة كما تظھر الص Alias Managerثم Toolsنذھب الى DataBase Desktopفي

Newثم

Startimes.com by : Kyuib_24

[email protected]

7

:ثم نمأله كما تظھر الصورة

Browseالختیار مكان الحفظ نضغط فقط على الزر

ثم نحفظ الكل

:انشاء الجدول -

:نبدأ في انشاء الجدول الذي سندخل فیھ قاعدة البیانات Aliasبعد انشاء

Paradox7ثم نختار كما تظھر الصورة DataBase Desktop/New/Tableنختر في

اآلن نقوم بادخال البیانات في الحقول حسب الجدول الذي وضعناه من قبل

Startimes.com by : Kyuib_24

[email protected]

8

:كما في الصورة التالیة (Type,Taille, Index)مع الخصائص

كمفتاح رئیسي للجول و ذلك من خالل النقر مرتین على الخانة NumEtudiantفي ھذا المثال قمنا باختیارالحقل (

key یعني أنھ تم االختیار ) (*و عند ظھور عالمة(

كما CodFormationو نختار الحقل Defineفي مثالنا ھذا نحتاج الى مفتاح ثاني ، نضغط على

تظھر الصورة

Startimes.com by : Kyuib_24

[email protected]

9

ثم نضغط على

Ok نكتب فیھا اسم الحقل ثم أخرى ةفتظھر لنا نافذOK

Aliasنختار منھا ، تظھر نافذة Save Asبقي اآلن اال حفظ الجدول ، لذا نضغط على الزر

GestEtud الذي قمنا بانشاءه في المرحلة السابقة ، ثم ندخل اسم للجدول على سبیل المثال :

Etudiant

Startimes.com by : Kyuib_24

[email protected]

10

:اآلن نعید فتح الجدول لنمأله ببعض البیانات

نفتحھ كما تظھر الصورة أعاله

و ندخل بعض البیانات من وحي خیالنا

Startimes.com by : Kyuib_24

[email protected]

11

للحقل Index Primaireمع اختیار Formationجدول اآلن نعید نفس الكرة ألنشاء ال

CodFormation

:الصورة أدناه توضح العمل

Formationنحفظھا تحت اسم

:كما تظھر الصورة NumModuleوھو الحقل Indexوال ننسى Moduleنعید الكرة مع الجدول

Startimes.com by : Kyuib_24

[email protected]

12

یعني لي تبع معي لن ینسى ذلك GestEtudالذي ھو Aliasدائما في نفس Moduleنحفظھ تحت اسم

الذي ModuleFormationلكن لألسف سنعید الكرة و ننشأ جدول نعید الكرة ؟؟ ا و اهللا تعبت

و ھي كاآلتي) شعبة ( یحتوي معمالت المواد لكل اختصاص

Startimes.com by : Kyuib_24

[email protected]

13

ModuleFormation: نختار لھ االسم التالي

اح الجدول مركب في ھذه الحالة اذن مفت Index 2نالحظ أننا اخترنا لھذا الجدول

: Noteنعید نفس الكرة النشاء الجدول -

یحتويSecondary Indexes و ھو الحقلNumEtudian

مفتاح مركب من الحقلینNumEtudiant et NumModule

:لتكون النتیجة كما تظھر الصورة

Startimes.com by : Kyuib_24

[email protected]

14

Noteنحفظھ تحت اسم

)البرنامج(2الجزء

اني و ھو انجاز البرنامج الذي یتحكم في قواعد البیانات التي قمنا بانجازھا في ننتقل اآلني الى الجزء الث

:الجزء السابق لذلك نتتبع الخطوات التالیة

) فقط 1المشروع مكون من فورم ( Applicationنختار Newمن قائمة -

Les etudiants et: نضع عنوان الفورم و ھو Captionو في Propertiesفي الزاویة -

leurs notes

) الى قاعدة البیانات ھذا المكون سیسمح لنا بالولوج( في الفورم Tableضع المكون -

الذي أنجزناه مسبقا aliasندخل اسم DataBaseNameنذھب الى Tableفي خاصیة المكون -

(GestEtud)و ھو

(Etudiant)نختار اسم قاعدة البیانات TableNameفي الخاصیة -

وھذا لجعلھ شغال Trueالى Active )بالطبع Table1المكون ( خاصیةنغیر ال -

و Tableفي الفورم ، و ھو یلعب دور وسیط بین المكون DataSourceنضع المكون -

المكونات األخرى

Table1لھذا المكون نضع DataSetفي الخاصیة -

لبیانات اآلن یجب اضافة المكونات التي تسمح لنا برؤیة و تعدیل قاعدة ا

Startimes.com by : Kyuib_24

[email protected]

15

من خالل DataSource1و نربطھ بالمكون في الفورم DBNavigatorنضع المكون -

DataSourceالخاصیة

و في DataSource1نختار DataSourceفي الفورم في خاصیتھ BDEdit نضع مكون -

NumEtud نختار اسم أحد الحقول و لیكن مثال DataFieldالخاصیة

لھذه المكونات و في DataSourceفي الخاصیة DataSource1 و نختار BDEdit 5نضع -

نختار نضع DataField الخاصیة

Nom,Prenom,SatedeNaiss,DatInscrip,CodFormation

و نضعھم في الفورم و في الخاصیة Labelمكونات 07نأخذ Standardفي الزاویة -

Caption نضع ما یلي N° Etudiants, Nom,Date de naissance, Date

D’inscription , et paye

و نجعل الخاصیة 1في الفورم ControleBD من الزاویة DBCheckBox1نضیف اآلن -

DataSource لھذا المكون DataSource1 و الخاصیة DataField نجعلھاPaye

:كما تظھر الصورة

F9اآلن یمكن تشغیل البرنامج بالضغط على

Startimes.com by : Kyuib_24

[email protected]

16

لتكون النتیجة كما یلي

ھكذا یمكننا اضافة ، حذف ، و رؤیة التسجیالت للطلبة

سنضیف اآلن مصفوفة جدیدة ، لتظھر لنا نقاط كل متربص و تمكننا أیضا من ادخال النقاط

)لخصتھا في جدول ( في الفورم و نقوم بادخال الخصائص التالیة Table2نضیف المكون -

Valeur الشرح القیمة

Properties الخاصیة

GestEtud DataBaseName Note TableName

لتصنیف المصفوفة حسب المتربص الذي تم اختیاره

DataSource1 MasterSource

NomEtudiant MasterField

Index الذي قمنا باختیاره أثناء انشاء قاعدة البیانات

NumEtudiant IndexName

Active=True بجعل القیمة Table2نقوم اآلن بتفعیل -

Startimes.com by : Kyuib_24

[email protected]

17

:و نضع الكود التالي OnCreate نذھب الى1 الفورم eventsفي

procedure TForm1.FormCreate(Sender: TObject (;

begin

Table1.open ;

end;

end.

Table2نضع DataSet و في خاصیتھ DataSource2نضع اآلن المكون -

DataSource2 نضع DataSourceو في خاصیتھ DBGirdنضع المكون -

الضافة جمیع تظھر لنا نافذة نضغط على الزر DBGird ننقر مرتین على المكون -

، ألنھ ال فائدة من ظھوره باستعمال الزر NumEtudiant الحقول ، نقوم بحذف الحقل

. لوجوده في النافذة من قبل

:یصبح كاآلتي 1الفورم

Startimes.com by : Kyuib_24

[email protected]

18

و ربما نرید مشاھدة قائمة Code Formation ن ادخال اآلن اذا أردنا اضافة متربص جدید البد م

المواد التي تدرس في ھذا االختصاص و كذلك معامل كل مادة ، لھاذا سنضیف فورم جدید ، یمكن أن

1نستدعیھ ابتداءا نمن الفورم

Les الى Caption نغیر لھا الخاصیة Form2اسمھا ھو File/New/Form في قائمة -

Coefficients des Modules Selon les Formation

و خصائصھ كالتالي 2في الفورم Table1 نضع مكون -

Startimes.com by : Kyuib_24

[email protected]

19

Valeur Properties

GestEtud DataBaseName

ModuleFormation TableName

Table1 نضع DataSet و في الخاصیة DataSource1 نضع المكون -

و ندخل لھ الخصائص التالیة DBGird نضع المكون -

القیمة شرحValeur

الخاصیةProperties

DataSource1 DataSource AlClient Align لیتم تكبیره تلقائیا مع النافذة

1نعود الى الفورم -

Name و الخاصیة ’… ‘ الى Caption ونغیر لھ CodeFormation الحقل نضع أمام -

CodFormatالى

:لكود التالي نقرتین على ھذا الزر و ندخل ا -

procedure TForm1.CodFormatClick(Sender: TObject(;

begin

Form2.show;

Form2.Table1.Filter:='CodFormation = ' + DBedit6.text;

Form2.table1.filtered := true;

end;

end.

یمكن اآلن التجریب

:بعد التجریب تظھر النافذة كما یلي

Startimes.com by : Kyuib_24

[email protected]

20

Code de ن یظھر لنا اسماء التخصصات الموجودة ، فلكي ال نستعمل اآلن سنقوم باضافة مكو -

formation سنستعمل مباشرة اسم التخصص

:خصائصھ كالتالي 1في الفورم Table3 نضیف المكون -

Valeur Properties

GestEtud DataBaseName

Formation TableName

True Active

Table3 الى DataSetو نغیر الخاصیة DataSource3 نضیف المكون -

Startimes.com by : Kyuib_24

[email protected]

21

و نضع لھ الخصائص ControleBD من الزاویة DBLookupComboBox نضیف المكون -

:التالیة

Valeur Properties

DataSource3 ListSource

Intitule ListField

CodFormation KeyField

و نضع فوقھا False الى Visible غیر مرئیة و ذلك بتغییر الخاصیة DBEdit6اآلن نجعل -

DBLookupComboBox المكون

:لتصبح كما یلي

Startimes.com by : Kyuib_24

[email protected]

22

نستمر في تخصیص الواجھة األمامیة و ذلك باضافة زر یسمح لنا بالبحث عن المتربص حسب -

الرقم التسلسلي لھ

نقرتین على الزر Recherche&الى Caption ونغیر لھ N° Etudiant نضیف زر أمام -

:لكود التالي ونضع ا

procedure TForm1.Button1Click(Sender: TObject(;

var Rech: integer ;

begin

Rech:= strtoint (Inputbox ('Recherche', 'Entrez le numéro de

l''etudiant','1'((;

if not table1.FindKey([rech]) then

Messagedlg('Le Numéro étudiant que vous avez saisis n''existe pas',

mtinformation, [mbOk],0(;

end;

end.

تظھر علبة حوار ندخل بھا رقم المتربص : 1التعلیمة

Startimes.com by : Kyuib_24

[email protected]

23

تظھر رسالة خطأ ان تعذر وجود المتربص مثل: 2التعلیمة

اآلن سنقوم بانشاء الفورم الذي یسمح لنا بادخال الشعب و االختصاصات و المواد الموجودة في

بةكل شع

3نقوم باضافة فورم -

:خصائصھ 3في الفورم Table1نضیف مكون -

Valeur Properties

GestEtud DataBaseName

Fomation TableName

Table1الى DataSetو نغیر لھ الخاصیة DataSourceنضیف مكون -

,Code Formation , Intitule الى Caption و نغیر لھم Label مكونات 4نضیف -

Duree, Cout

و DataSource1الى DataSourceنغیر لھم الخاصیة DBEdit مكونات 4نضیف اآلن -

على الترتیب CodFormation, Intitule, Duree, Coutالى DataFieldكذلك الخاصیة

:و خصائصھ كالتالي Table2 نضیف اآلن مكون -

Startimes.com by : Kyuib_24

[email protected]

24

Valeur Properties

GestEtud DataBaseName

ModuleFormation TableName

DataSource1 MasterSource

CodFormation MasterField

CodFormation IndexName

DataSet في الخاصیة Table2 و ندخل DataSource2نضع مكون -

ال تنسو جعل ( DataSource1الى DataSource و نغیر الخاصیة DBGird نضع المكون -

Table Active True دائماا(

CodFormationلنقوم بحذف الحقل DBGird رتین على المكون نق -

و ندخل الكود التالي Nouveau الى Caption و نضیف زر و نغیر لھ 1نرجع الى الفورم -

procedure TForm1.Button2Click(Sender: TObject(;

begin

form3.show;

end;

end.

باضافة مواد لالختصاص الجاري فحصھ یسمح Formulaire المھمة التالیة ھي انشاء

Name و الخاصیة ’Module +‘ الى Caption و نغیر لھ 3نقوم باضافة زر في الفورم -

Bmodule الى

Startimes.com by : Kyuib_24

[email protected]

25

الى Caption و نغیر لھ ) المواد الدراسیة ( یسمح لنا بادخال البیانات 4نضیف اآلن فورم -

La Liste des Modules

:خصائصھ كالتالي 4في الفورم Table1 نضع مكون -

Valeur Properties

GestEtud DataBaseName

Modules TableName

CodFormation IndexFieldName

ال ( Table1الى DataSet و نغیر الخاصیة 4في الفورم DataSource1نضع مكون -

) Table للمكون Active = True تنسى جعل القیمة

و dataSource1 الى DataSource و نغیر الخاصیة 4للفورم DBGird كون نضیف م -

AlClient الى Align الخاصیة

و dataSource1 الى DataSource و نغیر لھ الخاصیة DBNavigator نضیف مكون -

Align الى AlButton

: لكود التاليو ندخل ا ‘ module +‘ و نقرتین على الزر 3نرجع الى الفورم -

procedure TForm3.BmoduleClick(Sender: TObject(;

begin

form4.show ;

end;

end.

النتیجة

Startimes.com by : Kyuib_24

[email protected]

26

Création des requetes الى Captionیظھر المواد الدراسیة حسب االختصاص نغیر لھ 5اآلن سنقوم بانشاء فورم -

‘’Liste des Modules par formation’’

، في الخاصیة تلقائیا Query1 سیتم اعطاءه اسم (BDE) من الزاویة Query نضیف مكون -

DataBaseName نضعGestEtud

:تظھر نافذة محرر نضع بھا ھاد الكود '' ...''نضغط على الزر SQLفي الخاصیة -

Startimes.com by : Kyuib_24

[email protected]

27

Query للمكون Active = True نجعل الخاصیة -

Data Set صیتھ لخا Query1 و نضع DataSource1 نضیف مكون -

و الخاصیة DataSource1 الى DataSource و نغیر لھ الخاصیة DBGird نضیف مكون -

Align الى alClient

للتعدیل على قائمة الخانات التي یتم عرضھا DBGird نقرتین على المكون -

نضغط على زر اضافة جمیع الحقول لمأل الجدول -

SQL ء نفس العمل بواسطة أوامر نحذف الخانات المكررة یمكننا اجرا -

Startimes.com by : Kyuib_24

[email protected]

28

لیصبح الشكل النھائي

اآلن سنتطرق الظھار معطیات ما في جدول SQL رأینا في المثال السابق كیفیة اعطاء أوامر -

الى أمر آخر و ھي أوامر الحذف

Startimes.com by : Kyuib_24

[email protected]

29

بعد حذف طالب من المعھد البد من حذف جمیع معلوماتھ -

ع نقاط التالمیذ في تلك المادة أو اذا حذفنا مادة معینة یجب حذف جمی -

ھنا ال ( Query نضع فیھ المكون (Module)و ھو المتخصص في المواد 4نرجع الى الفورم -

) لالننا سنربط األوامر بكون آخر یسمح بالحذف DataSource نضیف مكون

:نضع الكود التالي ثم Query للمكون SQL للخاصیة '' ...''نضغط على الزر -

آلن الستدعاء ھذا األمر یجب أن نحدد كیفیة استعمالھ و ھي عند الضغط على زر الحذف في ا -

DBNavigator المكون

و نختار ھذا المكون Events و نذھب الى DBNavigator اآلن نحدد المكون -

BeforeAction

procedure TForm4.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn(;

begin if button=nbDelete then

if MessageDlg ('Etes vous sure de vouloire supprimer ce module ainsi que les note correspondantes ? ', mtConfirmation, [mbYes,mbNo],0)=mrYes then

begin Query1.Active:= false ;

Query1.Params [0].Value:=

Startimes.com by : Kyuib_24

[email protected]

30

Table1.fieldbyname('NumModule').AsInteger; Query1.ExecSQL ;

end else abort ;

end;

end.

:شرح الكود

ھو المستعمل Delete تتأكد ان كان الزر 1الجملة -

تظھر علبة حوار 2اذا كان نعم الجملة -

التسجیل الذي الى parametre بتغییر 3اذا نقوم بتكید خیارنا في علبة الحوار تقوم الجملة -

قمنا باختیاره في الجدول

تبدأ بتطبیق األمر 4الجملة -

تعطل عملیة الحذف اذا اخترنا ال في علبة الحوار 5الجملة -

:ھذه ھي النتیجة

یجب وضع قواعد البیانات في نفس المجلد الذي یحتوي البرنامج لكي تتم عملیة : مالحظة

الحذف

:الطباعة نافذة بسیطة لطباعة قائمة المتربصین سنقوم اآلن بانشاء

یجب QuickReport من دلفي وال تحتوي على المكونات 7مالحظة من یستعمل النسخة (

ثم Install Packagesنختار Component من قائمة : تتبع الخطوات التالیة الضافتھا

Add ثم نتجھ الى مكان تنصیب دلفي و نبحث عن الملف Bin لھ عن و نبحث بداخ

sclqrt70.bpl ھنا سیتم تنصیبھا (

File/New/Other نذھب الى قائمة ) دائما في نفس المشروع ( اآلن لنبدأ

:و نختار كما في الصورة

Startimes.com by : Kyuib_24

[email protected]

31

ثم

Startimes.com by : Kyuib_24

[email protected]

32

:بعدھا نمأل النافذة بالبیانات التالیة

Startimes.com by : Kyuib_24

[email protected]

33

La Liste des’‘ ھذا الفورم الى Caption ال تنسى تغییر ( 6ظھور فورم : النتیجة النھائیة

Etudiant’’

Startimes.com by : Kyuib_24

[email protected]

34

Liste des’‘كما بلي Caption و نضیف زر نعطیع 1نعود من جدید الى الفورم

etudiants’’

:و نكتب الكود التالي

procedure TForm1.Button3Click(Sender: TObject(; begin form6.Quickrep1.preview; end;

end.

:النتیجة عند الضغط على الزر

Startimes.com by : Kyuib_24

[email protected]

35

وھا ھو عملنا جاھز للطباعة

من حین آلخر المنجز ال تنسى حفظ العمل : مالحظة

بقیت خطوة أخیرة قبل االنتھاء من المشروع

و ھي انشاء نافذة لطباعة كشف نقاط المتربصین

و نختار كما تظھر الصورة File/New/Other في نفس المشروع كالعادة نذھب الى -

-

Startimes.com by : Kyuib_24

[email protected]

36

2سنستعملھا لطباعة المعلومات الموجودة في الفورم QuickRep جدیدة بھا سینشأ دلفي نافذة -

:كما تظھر الصورة

Startimes.com by : Kyuib_24

[email protected]

37

الذي اسمھ Alias الى DataBaseName و نغیر لھ الخاصیة Query تضع المكون -

GestEtud

نضع األوامر التالیة (Query) لھذا المكون SQL في الخاصیة -

Select* From Etudiant, Formation, Module, ModuleFormation, Note

Where Etudiant.NumEtudiant=Note.NumEtudiant And

Module.NumModule=Note.NumModule And

ModuleFormation.NumModule=Module.NumModule And

Formation.CodFormation=ModuleFormation.CodFormation And

Formation.CodFormation=Etudiant.CodFormation And

Etudiant.NumEtudiant= :param1 Order by Module.NumModule

ھذه األوامر ستختار لنا فقط نقاط المتربصین من خالل األمر -

‘’Etudiant.NumEtudiant= :param1 ‘’

ستظھر نافذة مثل ھذه ''…''نضغط على Query1 للمكون Prams اآلن في الخاصیة -

Startimes.com by : Kyuib_24

[email protected]

38

FtIntegerالى DataType و نغیر لھ الخاصیة كما في الصورة فوق param1 ر نختا -

Query1 للمكون True الى Active نغیر الخاصیة -

Query1 الى QuickReportللمكون DataSet نغیر الخاصیة -

لتظھر أمامنا QuickReport للمكون Bandsفي الخاصیة '' +''نضغط اآلن على الزر -

:تظھر الصورة الخصائص نجعلھا كما یلي قائمة

Startimes.com by : Kyuib_24

[email protected]

39

Relevé’‘ الى Caption في شریط العنوان و نغیر لھ الخاصیة QRLabel نصع المكون -

de Notes’’ كما في الصورة

لوضع بعض المكونات Column Headerنزید من حجم -

Matricule, Nom, Prenom, Date de الى Caption و نغیر لھم QRLabel 9نضع -

Naissance, Formation, N° Module, Intitule, Coefficion et note

Gras على الترتیب و مع جعلھا

و الخاصیة Query1 الى DataSet و نغیر لھم الخاصیة QRDBText مكونات 5نضیف -

DataField الىNumEtudiant, Nom, Prenom, DatedeNaiss, Intitule, على

الترتیب

: النتیجة كما في الصورة لتصبح

الى DataSet و نغیر لھم الخاصیة Detail في المساحة QRDBText مكونات 4نضیف -

Query1 و الخاصیة DataField الىNumModule,Intutilé, Coefficien, Note على

الترتیب

Moyenne الى Caption و نغیر لھم Page Footerفي المساحة QRLabel نضع المكون -

و ندخل الود '' ...''بالضغط على Expresse نغیر لھ الخاصیة QRExprنضیف أمامھ مكون -

:التالي

39SUM(Query1.note*Query1.Coefficient)/SUM(Query1.Coefficient)

Startimes.com by : Kyuib_24

[email protected]

40

معادلة بسیطة لحساب المعدل -

لتظھر النتیجة برقمین وراء الفاصلة 00.00الى Mask ثم نغیر لھ الخاصیة -

:لنحصل في النھایة على

Startimes.com by : Kyuib_24

[email protected]

41

و ندخل Imprimer Relevé& الى Captionو نضیف زر نغیر لھ 1نرجع الى الفورم -

الكود التالي

procedure TForm1.Button4Click(Sender: TObject(; begin

QuickReport1.Query1.Active := False ; QuickReport1.Query1.Params[0].Value:=StrToint (dbedit1.Text(; QuickReport1.Query1.Active:=True ; QuickReport1.Preview ;

end;

end

جرب اآلن

:نتیجة الفورم النھائیة 100/100یعمل

Imprimer Relevé عند الضغط على

Startimes.com by : Kyuib_24

[email protected]

42

وھذا حساب المعدل

Startimes.com by : Kyuib_24

[email protected]

43

انتھى باذن اهللا

المشروع أتمنى أن أكون وفقت في طرح فكرة

100/100العمل صار جاھز

الحمد هللا

Startimes.com by : Kyuib_24

[email protected]

44

الى جمیع اعضاء ستار تایمز و خاصة أعضاءاالھداء

ات البرمجةغلمنتدى

+

االھداء الى الغالي عبد السمیع

THE DARK SIDE 23

+

جمیع أعضاء فریق المتابعة

+

االشراف