Download as pdf or txt
Download as pdf or txt
You are on page 1of 136

‫بسم ال الرحمن الرحيم‬

‫معهد الدراسات‬
‫واللغات يقدم‬

‫احترف أوراكل‬
‫ديفلوبر‬
‫إعداد أ‪/‬وليد يحى الحميدي‬
‫تنصيب ‪DVELOPER‬‬
‫‪ -1‬قم بالذهاب الى قائمة‬
‫ابداء ثم ‪INSTALL‬‬
‫كما هو واضح من الشكل‬

‫‪ :‬فتظهر الشاشة التالية‬


‫ضغط ‪ FROM‬على الشكل التالي‪:‬‬
‫ثم نضغط على ال‪ INSTALLER‬ثم نضغط على المجلد‬
‫‪ INSTALL‬ونختارالمجلد ‪ US‬ثم الملف الذي بداخله فتظهر‬
‫القائمة التالية على الشكل التالي‪:‬‬
‫نختار المكونات حسب التحديد ادناه‬

‫بعد التحديد انقر على ‪ INSTALL‬تظهر الشاشة التالية‬


‫انقر ‪ OK‬تظهر الشاشة التالية‬
‫انقر ‪ OK‬لنهاء عملية التنصيب‬
‫المطورر ‪ 2000‬عبارة عن مجموعة من البرامج التي انتجتها شركة‬
‫اوراكل خاصة بانتاج برامج قواعد البيانات وتدعم هذه البرامج البيئة‬
‫‪(GUI (GRAPHIC USER INTERFACE‬‬
‫والتي تسمح بانتاج برامج قواعد بيانات المعتمدة عللى بيئة رسومية سرهلة‬
‫التعامل للمستخردم العادي من خلل نماذج فعالة وسهلة الستخدام‬
‫اقسام المطور‬
FORM BUILDER

REPORT BUILDER

GHRAPGICS BULDER

QUERY BUILDER
‫تابع اقسام المطور‬
SCHEMA BUILDER

PROCEDURE BUILDER

PROJECT BULDER

TRANSLATION BUILDER
‫الوصول الى اجزاء المطور‬
‫بمكرن الوصول الى اجزاء المطور بالطريقة الموضحة ادناه‬
‫تشغيل ‪) FORM BUILDER‬منشئ النماذج(‬
‫عند تشغيل الر ‪ FORM BUILDER‬تظهر الشاشة التالية ‪-:‬‬

‫الختيار الول يسال اذا كنا نريد انشاء نموذج يعتمد على تعليمات التشغيل‬
‫الختيار الثاني يسال اذا كنا نريد انشاء نموذج يدويا‬
‫الختيار الثالث يسال اذا كنا نريد فتح نموذج تم انشاءه سابقا بتحديد موقعه‬
‫الختيار الرابع يسال اذا كنا انشاء نموذج يعتمد على قالب تم انشاءه‬
‫المكونات الرئيسية لمنشئ النماذج ‪ -:‬يتكون من النوافذ التالية‬
‫‪ .1‬شاشة المستكشف ‪OPJECT NAVIGATOR‬‬
‫عند اختيار الختيار الثاني ثم ‪ OK‬تظهر النافذة التالية‬

‫شجرة عناصر‬
‫التطبيق ككل‬
‫شجرة‬
‫عناصر‬ ‫سيتم شرحها‬
‫النموذج‬ ‫لحقا‬

‫تسرمى النافرذ شاشرة المسرتكشف ‪ OPJECT NAVIGATOR‬وفري اعله‬


‫يظهرر كلمرة ‪ MODUL‬وهري اسرم النموذج ثرم تظهرر شجرة متفرعرة مرن‬
‫وسرررررر‬
‫يتم‬ ‫عناصررررررالنموذج‬
‫ر‬ ‫فررررررانشاء‬
‫تخدم ي‬
‫النموذج بمكونات النموذج وتسرررررر‬
‫استعراضها لحقا‬
‫‪ .2‬مصمم الشكل ‪LYOUT EDITOR‬‬
‫من القائمة ‪ TOOLS‬اختر‪ EDITOR LYAOUT‬لتظهر النافذة التالية والتي تسمى‬
‫ايضا مصمم الشكل او قم بالضغط على المفتاح ‪ F2‬من لوحة المفاتيح‬

‫‪LYOUT‬‬
‫‪EDITOR‬‬
‫هذا الجزء يسمى البساط ) ‪( CANVAS‬‬
‫والذي يتم انشاء جميع عناصر النموذج عليه‬ ‫‪CANVASE‬‬
‫وذلك باختيار العنصر من‬
‫‪LYOUT‬‬
‫‪LYOUT TOOLBAR‬‬
‫‪TOOLBAR‬‬
‫ثم النقر هنا او النقر والسحب‬
‫يتكون من ‪:‬‬
‫‪ 1-‬شريرط ادوات ‪ LYOUT TOOLBAR‬يسرتخدم فري اضافرة ادوات او مرا تسرمى بالبنود الرى النموذج‬
‫مثل الزرار والقوائم ومربعات الختيار وازرار اذاعية والصور وغيرها ‪.‬‬
‫‪ 2-‬شريرط تنسريق ‪ LYOUT TOOLBAR‬يسرتخدم فري تنسريق العناصرر باختيار نوع وحجرم ونمرط الخرط‬
‫والمحاذاة للعناصر‬
‫‪3-‬البساط او الر ‪CAVASE‬‬
‫‪ .3‬لوح الخصائص ‪PROPERTY PALATTE‬‬
‫من القائمة ‪ TOOLS‬انقر على ‪ PROPERTY PALATTE‬او اضغط المفتاح انقر‬
‫‪F4‬‬ ‫على ‪ PROPERTY PALATTE‬او اظغط المفتاح‬
‫لتظهر شاشة الخصائص للعنصر المحدد في شاشة الكائنات او المحدد في البساط وهنا ظهرت‬
‫شاشة الخصائص للر ‪ MODUL‬لنه هو المحدد‬
‫شرح مبسط لنافذة المستكشف‬
‫الشرح‬ ‫العنصر‬
‫اسم النموذج‬ ‫‪MODUL‬‬
‫الزندة او القوادح او الحداث‬ ‫‪TRIGGER‬‬
‫الرسائل وتستخدم لنشاء رسائل الخطاء والتحذير‬ ‫‪ALERT‬‬
‫‪ATTACHLIBRARY‬‬
‫بلك البيانات وهو تقسيم منطقي عبارة عن جدول او جزرء‬ ‫‪DATA BLOCK‬‬
‫من جدول )بعض حقول الجدول( في قاعدة البيانات وقد‬
‫يكون البلوك غير مرتبط بقاعدة البيانات وفي هذه الحالة‬
‫يسمى بلوك تحكم ويحتوي على ازرار وصور وبنود غير‬
‫مرتبطة بقاعدة البيانات‬
‫البساط وهو اللوحة القماشية التي تحوي بنود النموذج من‬ ‫‪CANVASES‬‬
‫حقول وازرار وغيرها وكل نموذج يحتوي على بساط او‬
‫اكثر والبساط يعتبر تقسيم فيزيائي أي مرئي ول يظهر أي‬
‫عنصر من عناصر البلك ال في بساط‬
‫شرح مبسط لنافذة المستكشف‬
‫هو محرر يستخدم في حالة كتابة نص لحقرل في جدول‬ ‫‪EDITOR‬‬
‫في قاعدة البيانات مكون من حروف كثيرة ويتم ربط‬
‫المحرر بمربع نص على النموذج عند النقر على المربع‬
‫يظهر المحرر محتويا على النص الذي لم يظهر في‬
‫المربع‬
‫لنشاء قائمة بيانات مكونة من عمود او اكثر من‬ ‫‪LOVs‬‬
‫اعمدة جدول في قاعدة البيانات ثم ربط القرائمة‬
‫بحقل او اكثر على النموذج عند اظهار القائمة ثم‬
‫اختيار احد سجلت القائمة يتم ادراج البيانات في‬
‫الحقول والبنود المرتبطة‬
‫مجموع الكائنات وهي فكرة في اوراكل لنشاء‬ ‫‪OPJECT GROUP‬‬
‫مجموعة كائنات ثم استخدامها في النماذج‬
‫البارامترات او المعاملت تستخدم لتبادل البيانات‬ ‫‪PRAMMETRS‬‬
‫بين النماذج او بين النماذج والتقارير‬
‫قوائم الزر اليمن مثل النسخ واللصق والقص‬ ‫‪POPUPMENU‬‬
‫الوحدات البرمجية وهي مجموعة الجراءات والدوال‬ ‫‪PROGRAM UNIT‬‬
‫التي يتم انشاءها من قبل المبرمج ثم استخدامها في‬
‫النماذج‬
‫الشرح‬ ‫العنصر‬
‫اصناف الخصائص وهي مجموعة خصائص مشتركة يمكن‬ ‫‪PRPERTY CLASSES‬‬
‫اعادة استخدامها في النماذج‬
‫مجموع السجلت وهي عبارة عن مجموعة سجلت يتم‬ ‫‪RECORD GROUP‬‬
‫انشاءها باستخدام جرملة استعلم او بيانات ثابته على شكل‬
‫أعمدة تشبه الجدول ثم ربط هذه المجموعة بقائمة بيانات‬
‫يستخدم في انشاء وبناء انواع التقارير حيث يوجد ثمانية‬ ‫‪REPORTS‬‬
‫انواع من التقارير‬
‫مجموع من الخصائص الخاصة باللوان والخطوط التي‬ ‫‪VISUAL ATTREPUTES‬‬
‫يمكن انشائها ثم تطبيقها على أي عنصر من عناصر‬
‫النموذج‬
‫وهي نوافذ التطبيق حيث يمكن ان يكون هناك اكثر من‬ ‫‪WINDWOS‬‬
‫نافذة في التطبيق والنافذة تحتوي على بسراط او اكثر‬
‫تستخدم لنشاء القوائم )قوائم النماذج مثل ملف –‬ ‫‪MENU‬‬
‫تحرير ‪ ...‬الخ (‬
‫مكتبات ‪ SQL‬وهي ايضا فكرة في اوراكل لنشاء جمل‬ ‫‪PL SQL LIBRARY‬‬
‫استعلم وتخزينها في مكتبات ثم اعادة استخدامها‬
‫مكتبة الكائنات تستخدم لنشاء كائنات ثم اعادة‬ ‫‪OPJECT LIBRARY‬‬
‫استخدامها‬
‫حزم الدوال المعرفة وهي مجموعة من الدول‬ ‫‪BUIL IN PACKAGES‬‬
‫المعرفة مسبقا والتي يمكن استخدامها في النماذج‬
‫يتم اظهار عناصر قاعدة البيانات من مستخدمين‬ ‫‪DATABASE OBJECTS‬‬
‫وجدوال واجراءات ودوال وازندة‬
‫انشاء نموذج مبني على تعليمات التشغيل‬
‫‪ -1‬شغل ‪ FORM BUILDER‬ثم اختر الختيار الول‬

‫‪ -2‬تظهر الشاشة التالية‬

‫انقر ‪NEXT‬‬
‫أختار الخيار الول أي جدول أضغط ‪ ok‬فتظهر الشاشة التالية‬
‫ضغط ‪ Browse‬فتظهر النافذة التالية أدخل اسم‬
‫المستخدم ‪ scott‬و كلمة المرور ‪TIGER‬‬

‫ثم يتم التصال بقاعدة البيانات بضغط ‪ connect‬فتظهر الشاشة‬


‫التالية‬
‫نضع إشاررات صح كما في الشكرل السابق نضغط على أسماء الجداول‬
‫واحد بعد الخر ثم نضغط ‪ ok‬فتظهر الشاشة التالية‬
‫لحظ أن القسم اليساري يحوي أسماء العمدة التي هي موجودة في الجدول‬
‫‪dept‬‬
‫عند ضغط إشارة < نختار عمود عمود أما بضغط << نختار جميع العمدة‬
‫أما الشارات > تعني عدم اختيار‬
‫اختر الخيار الول ثم نهاية فتظهر شاشة أخرى إضغط التالي‬
‫فتظهر شاشة أخرى تسألك عن اسم الكانفا التي تريد أن يظهر عليها الجدول‬
‫‪ dept‬كما في الشكل‬
‫انقر ‪NEXT‬‬
‫فتظهر الشاشة التالية التي أختار منها ما أريد إظهاره أو عناصر‬
‫الظهار‬
‫عناصر الظهار‬
‫ثم ‪ NEXT‬فتظهر هذه الشاشة‬

‫أغير ال‪ prompt‬للسماء التي أحب أن أغيرها لها لحظ أن هناك عمود‬
‫بجانب ال‪ prompt‬اسمه ‪ width‬و آخر ‪ hieght‬الفضل أن أختار عرض‬
‫متساوي وارتفاع متساوي كما في الشكل‬
‫التالي يظهر شاشة تسألني إن كنت أحب أن يكون شكل الخرج بشكل إطار أم على‬
‫شكل جدول اختار الخيار الول‬
‫كما في الشكل‬
‫ثم التالي ثم تظهر شاشة تهنئك على نجاح البناء ثم نهاية‬
‫تظهر الشاشة التالية‬
‫ثم التالي تظهر شاشة تهنئك على نجاح البناء ثم نهاية‬

‫تظهر الشاشة التالية‬


‫لحظ أن البلوك يحوي عناصر تحتوي على سجلت العمدة‬
‫وهي عناصر من نوع ‪text_item‬‬
‫لحظ خواص المحاذاة لليمين واليسار في العلى والتي تفيد‬
‫في ترتيب الزرار‪ .‬ولحظ وجود رسوما ت على شريط‬
‫الدوات مثل دائرة ومربع هي عبارة عن رسوم تزيينية وهي‬
‫توضع داخل الكانفا ولكن غير تابعة للداتا بلوك‬
‫من الممكن تغيير ترتيب الزرار بالسحب إما بالماوس أو بالكيبورد أو من‬
‫الخواص الفيزيائية إذ أنك تضغط على الزر اسم القسم مثل بزر الماوس‬
‫اليمين و أضغط‪ property palette‬كما في الشكل‬
‫في الغالب يكون حجم الكانفا نفس حجم ال‪ window‬إل إذا كان هناك أكثر من‬
‫كانفا في ال‪ window‬الواحدة لحظ أن الحد السود هو حد ال‪ window‬و‬
‫أن الحد الكاشف فهو للكانفا بإمكانك تغيير حجم الكانفا أيضا من‪property‬‬
‫‪ palette‬أو بالسحب وعند خروج بعض العناصر من الكانفا يعطي خطأ ممكن أن‬
‫تغير لون الكانفا أيضا من ال‪ property palette‬أيضا ألوان الكلمات‬
‫والعناصر ممكن تغييرها من ال‪ property palette‬حيث ان لكل عنصر نافذة‬
‫او كانفا أو ‪ text item‬أو زر أو الخ‬
‫له ‪ property palette‬خاصة فيه‬
‫إن لم تظهر عندك هذه الشاشة فانقر زر الماوس اليمين ثم ‪layou t editor‬أو‬
‫إضغط ‪F2‬‬
‫إن أردت ظهور ال ‪ object navigator‬وهي الشاشة البيضاء التي كانت تظهر‬
‫على اليمين إضغط ‪F3‬‬
‫الحفظ والتنفيذ‬
‫طرق الحفظ‬
‫‪ -1‬النقر على رمز الفلوبي )‪ (FLOPY DISK‬في يسار شريط المستكشف‬
‫‪ -2‬من القائمة ‪ FILE‬انقر على ‪SAVE AS‬‬
‫حدد موقع الحفظ وليكن في مجلد جديد باسم يكتب باللغة النجليزية‬
‫لحظ انه سيتم حفظ النموذج بامتداد من ‪FMB‬‬
‫طرق التنفيذ‬
‫قم باحد خطوات الحفظ التالية ‪-:‬‬
‫‪ -1‬النقر على الشكل المشابه لشارة المرور اعلى النموذج‬
‫‪ -2‬ظغط المفتاحين ‪CTRL + R‬‬
‫‪ -3‬من القائمة ‪ PROGRAM‬ثم ‪ RUN‬ثم ‪CLIENTSERVER‬‬
‫سيتم انشاء ملف تنفيذي بامتداد ‪ FMX‬ويمكن تشغيلة باستخدام برنامج ‪FORM‬‬
‫‪ RUN TIME‬الموجود ضمن برامج المطور‬
‫مكونات وامكانيات شاشة التنفيذ‬
‫أنقر زر تنفيذ استعلم الظاهر في العلى‬
‫حذف سجل جديد‬ ‫فيظهر عندي السجلت الموجودة داخل‬
‫الجدول ‪ dept‬و أتنقل بين السجلت باستخدام‬
‫الزرار الزرق الواضحين في العلى‬
‫كما في الشكل التالي‬
‫تعديل سجل‬
‫‪ -:‬ضع المؤشر في‬
‫السجل المطلوب تعديلة‬
‫ثم فم بالتعديلت‬
‫المناسبة‬

‫الحفظ‬
‫اغلق البرنامج انقر‬
‫الزر اغلق اعلى‬
‫النافذة‬
‫اضافة سجل جديد‬
‫انشاء نموذج يدوي‬
‫علرررر‬
‫ى‬ ‫شاشرررر ‪ OPJECT NAVIGATOR‬حدد‬ ‫ة‬ ‫ير‬
‫‪ -1‬فررر‬
‫‪ MODUL‬ثرم اضغرط المفتاحيرن ‪CTRL + N‬‬
‫او ‪CREATE‬‬
‫‪ -2‬اضغط المفتاح ‪ F2‬لظهار البساط كما في الشكل التالي‬
‫الخطوة التالية هي انشاء بلك ويمكن انشاء بلك مرتبط بجدول‬
‫اما باستخدام المعالج بالطريقة التالية ‪-:‬‬
‫‪ -1‬في شاشة ‪ OPJECT NAVIGATOR‬انقر على‬
‫‪ DATA BLOCK‬ثم ‪CREATE‬‬
‫يظهر مربع حوار انقر الختيار الول‬
‫ثم ‪OK‬‬
‫او انقر بالزر اليمن في مكان فارغ‬
‫في شاشة ‪OPJECT NAVIGATOR‬‬
‫ثم انقر ‪DATA BLOCK WIZARD‬‬
‫او انقر في أي مكان على البساط ثم ‪DATA BLOCK‬‬
‫‪WIZARD‬‬
‫اكمل خطوات انشاء البلك وليكن مبني على‬
‫جدول الدارات‬
‫انشاء بلك يدويا‬
‫• قم بانشاء نموذج يدوي‬
‫• ثم حدد على ‪ DATA BLOCK‬في شاشة ‪ OPJECT NAVIGATOR‬ثم ‪ CREATE‬ثم انقر الختيار الثاني ثم ‪OK‬‬
‫• لحظ ظهور بلك جديد باسم افتراضي مثل ‪ BLOCK3‬ويتكون من الثلثة العناصر التالية‬
‫• واهم هذه العناصر هو ‪ITEMS‬‬
‫• ‪,‬وهي مجموعة البنود ولكنها هنا‬
‫• ل تحتوي أي بند ويمكن انشائها‬
‫• يدويا كما يلي ‪-:‬‬
‫‪ -1‬من شريط الدوات )‪(TOOLBAR‬‬
‫انقر على ‪ abc‬ثم انقر على‬
‫البساط في أي مكان اثناء تحديد البلك الجديد ليتم النشاء عليه‬
‫• قم بالتحديد على البلك ثم ‪ F4‬لعرض خصائص البلك الجديد‬
‫ثم غير الخصائص كما يلي ‪-:‬‬
‫‪YES‬‬ ‫‪DATABASE BLOCK‬‬
‫‪TABLE‬‬ ‫‪QUERY DATA SURCE TYPE‬‬
‫‪DEPT‬‬
‫او اسم الجدول الذي تريد الرتباط به‬ ‫‪QUERY DATA SURCE NAME‬‬

‫• قررم بالتحديررد علرى العنصررر الذي تررم إنشائرره بالنقررر عليره فرري البسراط او فرري شاشررة‬
‫‪ OPJECT NAVIGATOR‬ثرم ‪ F4‬لعرض خصرائص العنصرر الجديرد ثرم غيرر‬
‫الخصائص كما يلي ‪-:‬‬
‫‪YES‬‬ ‫‪DATABASE ITEM‬‬
‫ريدهر‬
‫ترررر‬ ‫‪ DEPTNO‬او أي عمرورد‬ ‫‪COLUMN NAME‬‬
‫• قم باضافة بقية البنود بنفس الطريقة السابقة في كل بند غير اسم العمود في‬
‫الخاصية ‪ COLUMN NAME‬نفذ ثم لحظ‬
‫برمجة زر‪:‬‬
‫سوف نقوم الن بمعرفة كيف يتم برمجة زر وسناخذ ازرار التنقل‬
‫واحفظ والضافة والحذف ‪.‬‬
‫تعني أني عندما أقوم بضغط الزر أجعله يقوم بعمل معين وذلك‬
‫بربط هذا الزررمع حدث أو ما أسميه قادح ‪ trigger‬بالنقر على‬
‫الزررحتى تظهر المقابض ثم أضغط على زررالماوس اليمين ثم‬
‫‪ smart triggers‬ثم القادح الذي بتنفيذه يتم العمل سواء كان‬
‫ضغط زر أو فتح نفذه أو غير ذلك هنا لنختار عند ضغط زر أي‬
‫‪When-button-Pressed‬‬
‫اكتب الكود التالي مثل واذي يقوم بالنتقال الى السجل التالي‬
‫‪;NEXT_RECORD‬‬
‫والن قم بالخطوات التالية لبرمجة ازرار النموذج الولية‬
‫أو ًل لنظهر ال‪ layout editor‬بضغط ‪ F2‬نرى على‬
‫الطرف اليسر شريط الدوات نضغط ‪ button‬من‬
‫شريط الدوات ونذهب إلى سطح الكانفا الموجود‬
‫على ال‪ layeout ditor‬و نضغط بزر الماوس‬
‫اليسار ونحدد مربع يظهر مقابض نحدد حجم الزر‬
‫بالشكل الذي نريد‬
‫ممكن تغيير موقع الزر بتحديده وتحريكه من السهم‬
‫الموجودة على لوحة المفاتيح‬
‫سترى أن هذا الزر عليه لفته هي‬
‫‪ push_button4‬بإمكانك تغيير اسم الزر على‬
‫الشكل التالي‬
‫اضغط على الزر فتظهر المقابض ثم نضغط زر‬
‫الماوس اليمين ثم ال‪property palette‬‬
‫نغير ال‪ Name‬الموجودة باللون الصفر وذلك‬
‫بالتعليم على ‪ push_button4‬ونكتب ‪Next_rec‬‬
‫مكان ال‪ push_putton4‬كما في الشكل‪ .‬المقابل‬
‫انقر بالزر اليمن على الزر ثم اختر ‪ SMART‬وهي عبارة عن مجموعة‬
‫‪ TRIGGER‬متوقعه مع الزر من هذه المجموعة اختر الحدث الموضح‬
‫بالجدول ثم اكتب الكود المقابل ثم كرر ذلك لكل زر‬
‫الكود البرمجي‬ ‫الر ‪TRIGER‬‬ ‫اسم الزر‬
‫;‪NEXT_RECORD‬‬ ‫‪WHEN-BUTTON-PRESED‬‬ ‫التالي‬
‫‪PREVIOS_RECORD; WHEN-BUTTON-PRESED‬‬ ‫السابق‬
‫;‪FIRST_RECORD‬‬ ‫‪WHEN-BUTTON-PRESED‬‬ ‫الول‬
‫;‪LAST_RECORD‬‬ ‫‪WHEN-BUTTON-PRESED‬‬ ‫الخير‬
‫;‪ENTER_QUERY‬‬ ‫‪WHEN-BUTTON-PRESED‬‬ ‫ادخال‬
‫استعلم‬
‫‪EXECUTE_QUERY‬‬ ‫‪WHEN-BUTTON-PRESED‬‬ ‫تنفيذ‬
‫الستعلم‬
‫يمكن الستعانة بالبرامج الفرعية الموجودة في المطور بالذهاب القائمة‬
‫‪ PROGRAME‬ثم ‪ SYNTAX PALETTE‬تظهر نافذة انقر‬
‫على الحرف ‪ N‬او حسب اول حرف من الكود المطلوب كتابته لتصل‬
‫الى الكود بسرعة او استخدم شريط التمرير ثم انقر الزر ‪INSERT‬‬
‫لدراج الكود الى نافذة محرر ‪PLSQL‬‬
‫قم باستكمال برمجة بقية الزرار كما يلير‬
‫الكرود البرمجي‬ TRIGER ‫الر‬ ‫اسم الزر‬
CREATE_RECORD; WHEN-BUTTON-PRESED ‫اضافة‬
DELETE_RECORD; WHEN-BUTTON-PRESED ‫حذف‬
COMMIT; WHEN-BUTTON-PRESED ‫حفظ‬
EXIT_FORM; WHEN-BUTTON-PRESED ‫الخروج من‬
‫النموذج‬

OPEN_FORM(‘‫مسرارر‬ WHEN-BUTTON-PRESED ‫فتح نموذج‬


‫;)’ واسمر نلاررمرورذجر‬
‫خصائص الكتلة ‪DATA BLOCK‬‬
‫‪•Database Block‬‬ ‫‪yes‬‬ ‫‪no‬‬
‫يعني ان البلك‬ ‫يعني ان البلك غير‬
‫مرتبط بجدول اب انه مرتبط بجدول‬
‫بلك تحكم‬
‫‪•Data Type‬‬ ‫نوع البيانات وهناك العديد من النواع‬
‫اكثرها شيوعا الرقمية )‪(number‬‬
‫والتاريخ )‪(date‬‬
‫يتم تحديد نوع مصدر البيانات اذا كان ‪•Data Source Data Block‬‬
‫جدول او غيره‬
‫‪•Insert Allowed‬‬ ‫‪yes‬‬ ‫‪no‬‬
‫يسمح بالضافة‬ ‫ل يتم السماح بالضافة‬
‫‪Delete Allowed‬‬
‫خصائص الكتلة ‪DATA BLOCK‬‬
‫‪•Navigation Style‬‬ ‫‪same‬‬ ‫‪Change‬‬ ‫‪change‬‬
‫‪record‬‬ ‫‪record‬‬ ‫‪Block‬‬

‫‪Number of Records‬‬ ‫عدد السجلت في البلك‬


‫‪•Order By‬‬ ‫يتم جلب البيانات الى البلك مرتبة حسب‬
‫الحقل الذي يكتب في هذه الخاصية وذلك‬
‫عند تشغيل النموذج‬
‫العنصر الذي يتم النتقال الية عند استخدام ‪•Previous Navigation‬‬
‫مفتاح الجدولة او مفتاح الدخال‬
‫‪•Query Allowed‬‬ ‫السماح او عدم السماح بالستعلم‬
‫‪•Query Data Source‬‬ ‫هنا يتم تحديد اسم العمود او الحقل اذي‬
‫‪Columns‬‬ ‫نريد جلب البيانات منه الى مربع النص‬
‫خصائص الكتلة‬
‫‪Query Data Source Name‬‬
‫هنا يتم تحديد اسم مصدر السجلت أي اسم الجدول الذي يعتمد عليه البلك‬
‫•‬ ‫‪Query Data Source Type‬‬
‫يتم تحديد نوع مصدر السرجلت اذا كان جردول او ل‬
‫‪• Show Scroll Bar‬‬
‫عرض واخفاء شريط التمرير في البلك‬
‫‪• Update Allowed‬‬
‫‪• WHERE Clause/ORDER BY‬‬
‫كتابة شرط بالشكل التالي‬
‫‪Where clause deptno=:dno‬‬
‫حيث ‪ deptno‬حقل في البلك اما ‪ dno‬فهو حقل في النموذج‬
‫‪• Enforce Primary Key‬‬
‫‪• Single Record‬‬
‫خصائص الطار‬
•BEVAL
•DASH STYL
•FILL PATTERN
‫خصائص الطار‬

•EDGE PATTERN
•TITLE
•FRAME TITLE READING
‫خصائص الطار‬
•ORDER
•LYOUT DATA BLOCK
•FRAME ALIGNMENT
‫خصائص الطار‬
• LYOUT STYL
• UPDATE LYOUT
• NUMBER OF RECORD DISPLAYED
‫البنود النصية‬
‫وهررو النوع التلقائرري الذي ينشاه المطور يسررتخدم فرري‬ ‫•‬
‫تعلم‬‫والتعديررررروالدخال والسررررر‬
‫ل‬ ‫الذاقررررر‬
‫ة‬ ‫عمليات‬
‫يتكون من نصوص او ارقام او كليهما‬
‫يمكرن انشاء البنرد النصري بالضغرط علرى ‪ abc‬شريرط‬ ‫•‬
‫الدوات ثم النقر في أي مكان على البساط‬
‫اهم الخصائص‬ ‫•‬
‫اظغرط ‪ F4‬اثناء الوقوف بالفارة علرى البنرد فري البسراط‬ ‫•‬
‫بعد انشاءه‬
‫خصائص البنود النصية‬
‫‪• Conceal Data‬‬
‫اختيار ‪ yes‬مع هذه الخاصية يجعل الحروف على شكل نجمة عند الكتابة وتستخدم في حالة كتابة‬
‫بيانات سرية مثل كلمة السر‬
‫‪• Calculatin mode‬‬
‫في حالة ان البند بند حسابي أي يحتوي صيغة حسابية يتم في هذه الخاصية تحديد نوع الحساب اذا كان‬
‫‪ formula‬أي معادلة او اذا كان ‪ summary‬أي عبارة عن دالة من دوال التجميع مثل ‪sum‬‬
‫‪• Canvas‬‬
‫عبارة عن البساط او القطعة القماشية التي تريد اظهار البند عليها وفي حالة اختيار ‪ Null‬فان البند لن‬
‫يظهر ل في التصميم ول في التنفيذ‬
‫‪• Comments‬‬
‫لكتابة تعليق على البند ل يظهر في التنفيذ‬
‫•‪Distance Between Records‬‬
‫خاصية مقدار المسافة بين السجلت‬
‫•‪Database item‬‬
‫اختيار ‪ yes‬يعني ان العنصر مرتبط بجدول في قاعدة البيانات‬
‫•‪Column name‬‬
‫هنا يتم تحديد اسم العمود في الجدول في حالة ان البند مرتبط بقاعدة البيانات‬
‫•‪Enabled‬‬
‫اختيار ‪ yes‬مع هذه الخاصية يجعل البند نشط ويمكن استخدامه عند التنفيذ واختيار ‪no‬‬
‫يجعل البند غير نشط ول يمكن ادخال بيانات فيه‬
‫•‪Case restriction‬‬
‫هنا يتم تحديد هل سيتم استخدام حروف كبيرة ام صغيرة ام خليط‬
‫•‪Fixed Length‬‬
‫هنا يتم تحديد طول ثابت لبيانات البند وفي حالة تحديد طول فانه ل يسمح بالخروج من‬
‫البند ال عند كتابة عدد حروف مطابق للعدد الذي تم تحديده في هذه الخاصية‬
‫• ‪Format Mask‬‬
‫يتم هنا تحديد شكل بيانات البند مثل ‪ $$date$$‬لظهار التاريخ‬
‫• ‪Formula‬‬
‫ويتم هنا كتابة الصيغة في حالة ان الخاصية ‪Calculatin mode‬‬
‫تم تحديدها بالقيمة ‪Formula‬‬
‫• ‪Highest Value Allowed‬‬
‫عبارة عن اكبر قيمة مسموح ادرخالها في البند‬
‫• ‪Hint‬‬
‫عبارة عن رسالة تظهر في شريط الحالة عند الوقوف على البند‬
‫• ‪Icon Filename‬‬
‫موقع ملف اليقونة التي نريد اظهارها على البند في حالة ان الخاصة ‪ Iconic‬تم تحديدها بالقيمة‬
‫‪Yes‬‬
‫ارلبرنردر يرعنيان هنراك ايقرونة سررتظهررر علىر‬ ‫• ‪ Iconic‬اختيرارر ‪Yes‬‬

‫• ‪Initial Value‬‬
‫القيمة الولية للبند عن الدخول فيه لول مرة في النموذج‬
‫•‪Initial Keyboard State‬‬
‫حالة لوحة المفاتيح الولية بحيث هل من اليمين الى اليسار بحيث ينم كتابة حروف عربية ام‬
‫العكس فيتم كتابة حروف انجليزية‬
‫•‪Insert Allowed‬‬
‫اختيار ‪ Yes‬يعني السماح بعملية الدخال واختيار ‪ No‬ل يمسح بعملية ادخال بيانات الى‬
‫البند‬
‫‪• Item Type‬‬
‫نوع العنصر حيث يوجد العديد من النواع اشهرها التاريخ البند النصي‬
‫‪• Justification‬‬
‫اتجاه الكتابة عند الكتابة في البند هل من اليمين ام من اليسار ام من الوسط‬
‫‪• Keep Cursor Position‬‬
‫اختيار ‪ Yes‬يعني انه سيتم حفظ موقع المؤشر عند الخروج من البند وعند العودة فإنه‬
‫سيتم العودة الى الموقع الذي تم تركرالبند عنده واختيار ‪ No‬يجعل المؤشر يعود‬
‫الى بداية بيانات البند عند العودة اليه‬
‫‪• Keyboard Navigable‬‬
‫اختيار ‪ yes‬يعني السماح باستخدام مفتاحري ‪ tab‬و ‪ enter‬وذلك للنتقال الى البند‬
‫من بند اخر‬
‫‪• Keyboard State‬‬
‫حالة اللوحة‬
‫‪• List Item Value‬‬
‫يتم هنا تحديد القائمة العمود من القائمة الذي يرتبط بهذا البند عند ما نريد ربط قائمة‬
‫بالبند‬
‫‪• List of Values‬‬
‫هنا يتم تحديد اسم القائمة المرتبطة بالبند‬
‫‪•List Style‬‬
‫نم قائمة البيانات حيث يوجد ثلثة انماط سيتم شرحها لحقا‬
‫‪•List X Position‬‬
‫مكان ظهور قائمة البيانات بالنسبة للمحور السيني‬
‫‪•List Y Position‬‬
‫مكان ظهور قائمة البيانات بالنسبة للمحور الصادي‬
‫‪Maximum Length‬‬
‫اعلى قيمة مسموح ادخالها في البند‬
‫‪• Mouse Navigate‬‬
‫هل يتم السماح باستخدام الفارة للتنقل ام ل‬
‫‪• Multi-Line‬‬
‫اختيار ‪ Yes‬يعني السماح بالكتابة في اكثر من سطر‬
‫‪• Name‬‬
‫السم البرمجي للبند‬
‫‪• NextItem‬‬
‫هنا يتم تحديد العنصر التالي الذي سيتم النتقال اليه عند استخدام لوحة‬
‫المفاتيح وبالطبع سيتم استخدام ترتيب مستكشف الكائنات في حالة‬
‫عدم تحديد هذه الخاصية لن ترتيب الكائنات الفتراضي يكون‬
‫حسب مستكشف الكائنات‬
‫•‪Next Navigation Item‬‬
‫العنصر الذي سيتم النتقال اليه عند اس‬
‫•‪Number of Items Displayed‬‬
‫عدد العناصر التي سيتم عرضها عند التنفيذ‬
‫•‪Primary Key‬‬
‫اختيار ‪ yes‬يعني ان الحقل مفتاح رئيسي ولن يسمح بمغادرة البند قبل‬
‫الكتابة فيه ويستخدم للحقول التى تكون ‪ not null‬في قاعدة البيانات‬
• Font
• Color
• Prompt
‫‪• Query Allowed‬‬
‫السماح او عدم السماح بالستعلم‬
‫‪• Query Only‬‬
‫اختيار ‪ yes‬يعني ان البند لن يسمح بعملية الدخال او‬
‫التعديل وفقط يتم استخدامه لعرض البيانات‬
‫‪• Show Horizontal Scroll Bar‬‬
‫اختيار ‪ yes‬يعني اظهار شريط تمرير افقي مع البند في‬
‫حالة الخاصية ‪ multi line‬محدد بالقيمة ‪yes‬‬
‫• ‪Summarized Block‬‬
‫هذا الخاصية هامة في حالة تم تحديد الخاصية ‪ Calculatin mode‬بالقيمة‬
‫‪ Summary‬حيث سيتم هنا تحديد البلك الذي يوجد به العمود الذي نريد‬
‫عمل تجميع له‬
‫• ‪Summarized Item‬‬
‫هنا يتم تحديد الحقل المطلوب عمل تجميع له مثل الحقل )‪(sal‬‬
‫• ‪Summary Function‬‬
‫هنا يتم تحديد الدالة التي نريد استخدامها لهذا الحقل مثل )‪ (SUM‬ليجاد‬
‫المجموع‬
‫‪Synchronize with Item‬‬
‫هنا يتم تحديد احد بنود النموذج اذا كنا نريد عمل ارتباط بينهما بحيث اذا تم‬
‫التغير في احدهما يتم التغير تلقائيا في الخر بحيث يعكس نفس البيانات‬
‫• ‪Tab Page‬‬
‫اسم صفحة البساط الذي نريد اظهار البند عليها اذا كان هناك بساط من النوع ‪tab‬‬
‫‪Page‬‬
‫• ‪Tooltip‬‬
‫يتم هنا كتابة تعليق يظهر مصاحب لمؤشر الفارة عند الوقوف على البند‬
‫• ‪Tooltip Visual Attribute Group‬‬
‫مجموعة الخصائص التي تم انشاءها مسبقا ونريد تطبيقها على التعليق السابق‬
‫• ‪Update Allowed‬‬
‫السماح او عدم السماح بالتعديل في البند‬
‫• ‪Update Only if NULL‬‬
‫اختيار ‪ yes‬يعني انه لن يتم السماح بالتعديل ال اذا كان الحقل فارغ‬
‫• ‪Validate from List‬‬
‫اختيار ‪ yes‬يعني عدم السماح للمستخدم بكتابة بيانات في البند غير موجودة في‬
‫القائمة المرتبطة بالبند في حالة ربط قائمة بيانات بالبند‬
• Visible
• Visual Attribute Group
• Width/Height
• X Position,
• Y Position
‫مثال عملي‬

‫صمم النموذج اعله ثم غير الخصائص كما يلي ثم نفذ ولحظ‬


‫‪Yes Multi line‬‬
‫هذا البند مخصص لموقع الداررة‬ ‫‪Hint‬‬
‫الموقع يمثل المدينة التي توجد بها الدارة‬ ‫‪Tooltip‬‬
‫البنود المحققة او ‪ CHECK BOX‬أي صناديق الختيار‬
‫وهي بنود تحمل قيمتين فقط يمكن ان تكون رقمية او نصية‬

‫اهم الخصائص‬
‫‪VLUE WHEN CHECKED - 1‬‬
‫‪VLUE WHEN UNCHECKED- 2‬‬
‫‪CHECK BOX MAPPING OF OTHER- 3‬‬
RADIO BUTTON ‫البنود الذاعية‬

‫اهم الخصائص‬
LABEL -1
ACCESS KEY-2
RADIO BUTON VALUE-3
‫بنود الزرار‪BUSH BUTON‬‬
‫تعتبر بنود غير مدخلة للبيانات واهم خصائصها ‪-:‬‬
‫‪LABEL- 1‬‬
‫‪ICONIC-2‬‬
‫‪ICON FILE NAME-3‬‬
‫‪DEFAULT BUTTON-4‬‬

‫البنود المستعرضة للبيانات ‪DISPLAY ITEM‬‬


‫تعتبر بنود غير مدخلة للبيانات تشبه في خصائصها‬
‫البنود النصية وغالبا ما تكون خاصية‬
‫‪ DATABASE ITEM‬قيمتها ‪NO‬‬
‫ارررورائمر‪(LIST ELEMENTS‬‬
‫لق‬ ‫برررررد‬
‫نرو‬ ‫(‬
‫•نمكن اضافة بند قائمة‬
‫بالضغط على ‪list value‬‬
‫ثم النقر في المكان‬
‫المناسب على البساط‬
‫• اضافة عناصر الى القائمة ‪:‬‬

‫اول باستخدام الخصائص‬


‫‪ -1‬اظغط ‪ F4‬من‬
‫اللوحة ثم اذهب الى‬
‫الخاصية ‪Elements‬‬
‫‪ in list‬وانقر الزر‬
‫المقابل تظهر النافذة‬
‫المسماة ‪elements list‬‬
‫رررررررررررر‬
‫العناصررررررررررررررررررررررررررررررررررررررررررررررررر الحسابية‬
‫عبارة عرن عنصرر مرن النوع ‪ display item‬غيرر مرتبرط بجدول‬
‫يوجرد نوعيرن مرن الحقول الحسرابية النوع الول يسرمى ‪formula‬‬
‫أري انره عبارة عرن صريغة ) معادلرة ( تربرط بيرن عدة بنود موجودة‬
‫علرى النموذج امرا النوع الثانري فيسرمى )‪ (summary‬أري انره يعتمرد‬
‫علرى دالرة مرن دوال التجميرع مثرل )‪ (sum‬وتطبرق علرى حقرل واحرد‬
‫من حقول بلك‬
‫لنشاء عنصر حسابي قم بادراج عنصر ‪ display item‬ثم غير الخصائص كما‬
‫يلي‪-:‬‬

‫‪1- Calculation mode‬‬


‫‪ :-‬تاخذ احد القيم التالية‬
‫‪• Formula‬‬
‫يعني تكون العملية على عدة اعمدة افقيا‬

‫‪2- Formula‬‬ ‫يترمر كترابة لاررمعارردلة فررري هذهر لاررخراصيرة عنردمار‬


‫قرريمتهار‬ ‫‪formula‬‬ ‫‪ Calculation‬لاررخراصيرة‬
‫تررررون‬
‫ك‬ ‫‪mode‬‬
‫‪ :-‬المعادلة تكتب كما في المثال التالي‬
‫‪:PRICE*:Q_ITEM‬‬
‫حيث ان الر ‪price‬هو بند نصي موجود في النموذج سواء من جدول او ل وكذلك ‪q_item‬‬
‫لحظ ان الحقل يكتب قبله نقطتان لنه موجود في النموذج‬
‫‪• Summary‬‬

‫محددة بالقيمة ‪Summary‬‬ ‫اذا كانت الخاصية ‪calculation mode‬‬


‫فانه يجب تغير الخواص التالية كما يلي‬

‫‪Summarized Block‬‬ ‫برررر لباررنردر لاررذي نررريدر ترررطبيق احدر‬


‫اسمر لارربلك لاررذي يرروجدر هر‬
‫لارردرواررل لاررتجميعيرة عليهر‬

‫‪Summarized Item‬‬ ‫داررهر عليهر‬


‫اسمر لباررنردر لاررذي نررريدر ترررطبيق ل‬

‫‪Summary Function‬‬ ‫داررة لاررجمعراو لاررمعردلاو‬


‫اسمر لارردر لاررة مثل ل‬
‫هذاار النوع من الحسابات يجب ملحظة ما يلي‬‫‪ :-‬ملحظة هامة جدا فيغيرره‬
‫‪ -1‬الخاصية ‪ Query All Record‬في البلك الموجود به البند‬
‫المطبق عليه الدالة يجب ان تكرون ‪ yes‬وال فسيظهر خطا‬
‫‪ -2‬العنصر الحسابي يجب ان يكون في نفس البلك الذي تطبق عليه الداله‬
‫بنود القوائم‬
‫قم باضافة العناصر في القائمة الولى ‪ LIST ELEMENT‬ثم‬ ‫•‬
‫ادخل مع كل عنصر كود رقم مث ًل )حيث ان هذا الكود سيمثل القيمة‬
‫التي سيتم استرجاعها من القائمة عند اختيار العنصر( في المربع‬
‫‪LIST ITEM VALUE‬‬
‫حدد نوع القائمة من الخاصية ‪ LIST STYL‬حيث هناك ثلثة‬ ‫•‬
‫انواع هي كما يلي ‪-:‬‬
‫‪POPLIST‬‬ ‫•‬
‫‪TLIST‬‬ ‫•‬
‫‪COMBO BOX‬‬ ‫•‬
‫ل يمكن التعديل‬
‫والكتابة فيها‬

‫يمكرن التعديرل والكتابرة فيهرا‬


‫حيررث يمكررن ادخال قيمررة‬
‫ليسرت موجودة فري القائمرة‬
‫ثم حفظها في القاعدة‬
‫ثانيا باستخدام كود برمجي‬
‫‪ :-‬قم بانشاء كود حسب الخصائص التالية‬
‫السم‬ ‫اسم القائمة‬ ‫النوع‬
‫‪WHEN-NEW-BLOCK-INSTANCE‬‬ ‫‪deptlist‬‬ ‫‪TRIGGER‬‬

‫الكود‬
‫‪Add_List_Element(' deptlist ', 1, ‘salse',‬‬
‫‪');‘20‬‬
‫العنصر‬
‫دالة الضافة‬ ‫اسم‬ ‫العنصر الذي رقم‬
‫الى القائمة‬ ‫العنصر القائمة‬ ‫الذي‬
‫سيظهر‬
‫لضافة ‪ TRIGGER‬انقر على البلك الذي‬ ‫سيتم‬
‫يحتوي بند القائمة بالزر اليمن ثم اختر اسم الر‬ ‫في القائمة‬
‫‪ TRIGGER‬الموضح اعله‬
‫استرجاعه‬
‫كود حذف عنصر من القائمرة‬
‫;)‪• Delete_List_Element(' deptlist ',1‬‬

‫اسم القائمة‬ ‫رقم العنصر‬


‫الذي نريد حذفه‬
‫تعبئة القائمة باستخدام جملة استعلم )‪(SELECT‬‬
‫•صم النموذج التالي‬
‫•النموذج يحتوي بلك بيانات الموظفين‬
‫•النموذج يحتوي قائمة باسم ‪emp_name‬‬

‫•المطلوب تصميم قائمة بيانات باسماء الموظفين‬


‫• عند اختيار اسم موظف تظهر بيانات الموظف المحدد بالقائمة‬
‫المطلوب الول‬
‫• صمم النموذج ثم اضف ‪ list‬وغير اسمها الى ‪emp name‬‬
‫في المستكشف انقر على ‪ trigger‬على مستوي النموذج كما هو محدد في‬
‫النافذة التالية‬
‫ المسمى‬TRIGGER ‫• اكتب الكود التالي في الر‬
WHEN-NEW-FORM-INSTANCE
declare
re recordgroup;
n number;
begin
re := create_group_from_query('rr','select
ename,to_char(empno) from emp');
n :=populate_group(re);
populate_list('emp_name','rr');
delete_group('rr');
end;
‫انقر بالزر اليمن على القائم ثم اختر حسب التحديد التالي‬

‫اكتب الكود التالي‬


‫نفذ واختر من القائمة ثم لحظ ان بيانات الموظف المحدد‬
‫هي التي تظهر فقط‬

‫انتهت القوائم‬
‫قوائرم الربيانات ‪ LOVS‬الترير تسرتخدم فري‬
‫اظهار مجموعرة كربيرة مرن الربيانات التري ترم‬
‫انشائها فيرجداول قاعدة البيانات‬

‫لنشاء قائمة بيانات‬


‫حدد على ‪ LOVs‬في الشاشة‬
‫‪ OPJECT NAVIGATOR‬ثم‬
‫‪CREATE‬‬
‫حدد الختيار الول ثم ‪OK‬‬
‫هنا يتم اخبارنا انه سوف يتم انشاء القائمة بناءا على مجموعة سجلت‬
‫‪ RECORD GROUP‬سوف يقوم بانشائها الن انقر الزر ‪NEXT‬‬
‫لتظهر نافذة بناء الستعلم‬
‫شرح ازرار نافذة بناء الستعلم‬

‫يستخدم لفتح ملف يحتوي على جملة استعلم‬ ‫‪IMPORT SQL QUERY‬‬
‫تم انشائها مسبقا‬
‫يقوم بفتح نافذة باني الستعلم حيث نختار‬ ‫‪BUILD SQL QUERY‬‬
‫الجدول ثم الحقول المطلوب عرضها في القائمة‬

‫لفحص سلمة جملة الستعلم‬ ‫‪CHECK SYNTAX‬‬

‫لعادة التصال في حالة عدم التصال‬ ‫‪CONNECT‬‬

‫اظهار الجملة التي تم بنائها من خلل باني‬ ‫المربع الموجود في الوسط‬


‫الستعلم ويمكن كتابة جملة الستعلم فيها‬
‫مباشرة‬
‫بعد النتهاء من بناء الستعلم انقر الزر ‪NEXT‬‬
‫تظهر الشاشة التالية اختر البنود المطلوب اظهارها في القائمة ثم ‪NEXT‬‬
‫تظهرر الشاشرة التاليرة التري تظهرر بعرض خصرائص القائمرة مثرل تغيرر عنوان العمدة‬
‫مرن ‪ TITLE‬وعرض كرل عمود مرن ‪ WIDTH‬وتخصريص قيمرة العمود‬
‫لحرد بنود النموذج بواسرطة كتابرة اسرمه فري العمود ‪RETURN VALUE‬‬
‫او الظغررط علررى ‪ LOOK UP RETURN ITEM‬اثناء تحديررد احررد‬
‫الحقول مرن العمود ‪ RETURN VALUE‬تظهرر نافذة بالبنود المتاحرة حترى‬
‫البنرد المطلوب ) البنرد المحدد سريتم اعادة القيمرة التري ترم اختيارهرا مرن القائمرة الرى‬
‫هذا البند (‬
‫بعد النتهاء من ضبط‬
‫الخصائص انقر ‪NEXT‬‬
‫اكتب هنا عرض القائمة‬

‫اكتب هنا عنوان القائمة‬

‫اكتب هنا ارتفاع القائمة‬


‫هذا الختيار يجعل المطور‬
‫يحدد موقع القائمة تلقائيا‬

‫هذا الختيار يسمح بتحديد موقع القائمة بكتابة الحداثي الراسي والفقي في‬
‫المربعين الذين سيتم تنشيطهما عند النقر على هذا الختيار‬
‫حدد الخصائص او اتركها كما هي ثم ‪NEXT‬‬
‫الختيار بجربر المطور علرى تحديرث بيانات القائمرة فري كرل مرة يترم فيهرا فترح القائمرة وعدم‬
‫التنشيط يجعل المطور يحث بيانات القائمة فقط عن التصال والفتح لول مرة‬

‫الختيار يسرمح للمسرتخدم القيام بعمرل تصرفية ) اسرتعلم( قبرل اظهار الربيانات فري القائمرة‬
‫ليتم فقط اظهار البيانات المحددة بالشرط وهذا يستخدم في حالة وجود بيانا كبيرة لزيادة‬
‫الداء والسرعة ‪ .‬يفضل ترك الخيارات كما هي ثم النقر على ‪NEXT‬‬
‫عليهرر‬
‫ا‬ ‫قررم باختيار البنود الترري تريررد ان تظهررر قائمررة الرربيانات عنررد الوقوف‬
‫وضغط المفتاح ‪ F9‬من لوحة المفاتيح وذلك بتحريكها الى القائمة اليمنى‬
‫ثم انقر ‪NEXT‬‬
‫تظهر شاشة النتهاء من انشاء القائمة انقر ‪FINSH‬‬
‫بعد النتهاء تظهر مجموعة الكائنات التالية ‪-:‬‬
‫الول يسرمى ‪ LOV‬تحرت بنرد ‪ LOV‬وهرو عبارة عرن اسرم القائمرة الترى ترم‬
‫انشائها وعند الوقوف عليه ثم ضغط ‪ F4‬تظهر خصائص القائمة‬

‫الثاني يسمى ‪ LOV‬تحت بند‬


‫‪ RECORD GROUP‬وهو‬
‫عبارة عن مجموعة السجلت‬
‫التى تم انشائها ويمكن للمستخدم‬
‫تغير خصائصها‬
‫تشغيل القائمة‬
‫قم بالوقوف على البند الذي تم تحديده في الشاشة قبل‬
‫الخيرة من شاشات البناء للقائمة ثم اضغط المفتاح ‪F9‬‬

‫تظهرر القائمرة حدد السرجل المطلوب ثرم ‪ OK‬ولحرظ انره قرد تخصريص القيرم‬
‫المحددة للبنود التي تم تحديدها اثناء النشاء‬
‫يمكن عرض القائمة باستخدرام الكود التاليروالذي‬
‫تم انشاءه في زر ‪PUSH BUTTON‬‬
‫‪• DECLARE‬‬
‫;‪• X NUMBER‬‬
‫‪• BEGIN‬‬
‫;)’‪• X:=SHOW_LOV(‘LOV1‬‬
‫;‪• END‬‬
‫حيرث ‪ LOV1‬هرو اسرم القائمرة و‪ X‬متغيرر ترم تعريفره علرى انره رقرم وهرو يعيرد صرفر فري‬
‫حالرة اختيار قيمرة او يعيرد أري قيمرة غيرر الصرفر اذا لرم يترم اختيار أري قيمرة بالضغرط‬
‫علرى الزر ‪ CANCEL‬فري القائمرة ويمكرن اسرتخدامه للتأكرد مرن انره ترم الختيار او‬
‫ل‪.‬‬
‫داررة اظهاررر‬
‫قررائمرة ‪.‬هي ل‬ ‫‪SHOW_LOV‬‬
‫خصائص قوائم البيانات‬
NAME
TITLE
RECOURD GROUP
AUTOMATIC DISPLAY GROUP
AUTOMATIC POSITION
FILTER BEFOR DISPLAY
‫خصائص البند المرتبط بالقائمة والذي سيتم اسقاط القيم المختارة فيه عند الختيار‬

VALIDATE FROM LIST


LIST X POSITION
LIST Y POSITION
‫انشاء مجموعة سجلت‬
‫في شاشة المستكشف اذهب الى ‪ RECORD GROUP‬ثم‬
‫‪CREAT‬‬

‫تظهر النافذة التالية والتي من خلله نحدد نوع القائمة‬


‫الختيار يعني‬
‫انشاء مجموعة‬
‫سجلت غير‬
‫معتمدة على جملة‬
‫استعلم‬

‫عنرد اختيار هذا الختيار يترم كتابرة جملرة اسرتعلم فري المربرع المسمى ‪QUERY‬‬
‫‪TEXT‬‬
‫والن حدد الختيار الول لنشاء مجموعة سجلت من النوع ‪ STATIC‬أي ثابت ثم‬
‫‪OK‬‬
‫اكتب اسم العمود‬

‫حدد نوع بيانات العمود‬

‫اكتب قيمة العمود‬

‫كرر خطوات كتابة اسم العمود وقيمته لكل العمدة المطلوبة ثم انقر ‪OK‬‬
‫لحظ انه يتم انشاء مجموعة سجلت جديدة باسم افتراضي يمكن النقر نقرا مزدوجا‬
‫على اسم القائمة لعرض خصائص القائمة ثم تعديل خصائصها حسب المطلوب‬
‫عند اختيار الختيار الثاني يمكن كتابة جملة استعلم كما هو محدد لتستخدم مع‬
‫جملة الستعلم التعبير * ولكن استخدم اسماء الحقول التابعة للجدول‬
‫انشاء مجموعة سجلت برمجيا وربطها بقائمة‬

‫الكد يكتب في زر ‪BUSH-BUTTON‬‬


‫العلقة بين الكتل‬
‫انشاء ‪DATA BLOCK MASTER DETAIL‬‬

‫سوف نقوم بعرض طريقة انشاء بلك بيانات رئيسي وهو بلك الدارات وبلك اخر‬
‫تابع وهو بلك الموظفين حيث سيتم الربط عن طريق المفتاح ‪ DEPTNO‬رقم‬
‫الدارة‬
‫‪ -1‬قم بانشاء بلك بيانات لجدول الدارات مثل )البلك الرئيسي( باحد الطرق‬
‫السابق شرحها)طريقة المعالج او يدويا(‬
‫قررم بانشاء بلررك اخررر مبنرري علررى جدول الموظفيررن باختياررالجدول‬
‫‪ EMP‬كما في الشاشة التالية‬
‫قررم بالنقررر علررى ‪ AUTO-JOIN DATA BLOCKS‬لنشاء علقررة‬
‫بشكرل الري وهنرا سريتم النشاء بشكرل سرليم لوجود علقرة بيرن جدول الدارات‬
‫وجدول الموظفيرن وهري علقرة مفتاح رئيسري واجنربي ولكرن اذا لرم يكرن هناك‬
‫مفتاح رئسي واجنبي فانه يتم انشاء العلقة يدويا كما يلي‬
‫قم بالنقر على ‪ AUTO-JOIN DATA BLOCKS‬لزالة التحديد‬
‫ثم انقر الزر ‪ CREATE RALATIONSHAP‬يظهر مربع حوار‬
‫نريررر انشاء علقررةر‬
‫كنررر د‬
‫• الختيار الول يسرررال اذا ا‬
‫مبنية على بناءا على شرط معين‬
‫•الختيار الثانري يسرال اذا كنرا نريرد انشاء العلقرة علرى‬
‫مرجع )مفتاح رئيسي واجنبي(‬
‫•قم بتحديد الختيار الول هذا الختيار ثم ‪OK‬‬
‫•تظهر النافذة المقابلة حدد البلك الرئيسي ثم ‪OK‬‬
‫من‬ ‫تظهر النافذة التالية‬
‫القائمة ‪ DETAIL ITEM‬قم باختيار المفتاح‬
‫الجنبي لحدول التفاصي او التابع وهو هنا‬
‫من‬ ‫‪DEPTNO‬‬
‫القائمة ‪ MASTER ITEM‬قم باختيار‬
‫المفتاح الرئيسي للجدول الرئيسي وهو هنا‬
‫)‪(DEPTNO‬‬
‫• لحظ ظهور شرط الربط كما يلي‬
‫‪EMP.DEPTNO=DEPT.DEPTNO‬‬
‫أي بالصورة ‪-:‬‬
‫‪DETAIL.FORIGNKEY=MASTER.PRIMARY KEY‬‬
‫والنقررررر‬
‫ر‬ ‫التحديررررر‬
‫د‬ ‫ازالررررر‬
‫ة‬ ‫حالرررررعدم‬
‫ة‬ ‫فررررر‬
‫ي‬
‫يظهرررر‬
‫ر‬ ‫‪CREATE RELATIONSHIP‬‬
‫قائمرة باسرماء البلكات الرئيسرية علرى البسراط مثل‬
‫هنرر يظهررر بلررك الدارات ومقابلررة تظهررر الكلمررة‬ ‫ا‬
‫ير‬
‫ير ان هلرررر مفتاح رئيسررر‬ ‫‪ FK_DEPTNO‬أررر‬
‫بواسرررررر الحقل‬
‫طة‬ ‫اجنرررررر‬
‫بي‬ ‫مرتبرررررربمفتاح‬
‫ط‬
‫‪ DEPTNO‬قم باختار البلك المطلوب ثم ‪OK‬‬
‫لحظ ظهور شرط الربط هنا‬
‫خصائص العلقة‬
‫في البلك الرئيسي لحظ ظهور العلقة تحت‬
‫البلك الرئيسي )‪ (DEPT‬تحت بند‬
‫‪ RELATIONS‬بالسم ‪ DEPT_EMP‬أي‬
‫جدول الدارات وجدول الموظفين وعند‬
‫الوقوف عليه ثم ظغط المفتاح ‪ F4‬يتم عرض‬
‫لوح الخصائص الخاص بالعلقة )والتي يمكن‬
‫تعديلها والتحكم بها( واهمها‬
‫اسم البلك التابع‬ ‫‪DETAIL DATA BLOCK‬‬

‫شرط الربط‬ ‫‪JOIN CONDITION‬‬


‫‪ DELETE RECORD BEHAVIOR‬الخاصية لها ثلث خيارات تحدد‬
‫العلقة بين البلك الرئيسي والتابع‬
‫عند عملية الحذف‬
‫لحظ ظهور رسالة الخطا عند محاولة الحذف من البلك‬
‫الرئيسي عند تحديد العلقة بالعزل )‪NON‬‬
‫‪(ISOLATED‬‬

‫الل عزل أي عدم السماح بالحذف من الجدول‬ ‫‪NON ISOLATED‬‬


‫الرئيسي عند وجود سجلت مرتبطة في الجدول‬
‫التابع بالسجل المحذوف‬
‫العزل أي السماح بالحذف من الجدول الرئيسي مع‬ ‫‪ISOLATED‬‬
‫وجود سجلت مرتبطة‬
‫عدم السماح بالحذف في حالة وجود سجلت‬ ‫‪CASECADING‬‬
‫مرتبطة ال من الجدول الرئيسي‬
‫تابع خواص العلقة‬
‫‪ PREVENT MASTERLESS OPERATIONS‬الخيار ‪ NO‬يسمح‬
‫بالستعلم من البلك‬
‫التابع مع عدم وجود أي‬
‫سجل في البلك الرئيسي‬
‫والخيار ‪ YES‬ل يسمح‬
‫بالستعلم من البلك‬
‫التابع العند وجود على‬
‫القل سجل واحد ظاهر‬
‫في البلك الرئيسي‬
‫وعند محاولة الستعلم‬
‫فانه سيظهر رسالة خطا‬
‫كما هو موضح في المثال‬
‫المقابل‬
‫انشاء علقة يدويا بعد انشاء البلك الرئسي والتابع‬
‫حدد علرى ‪ RELATIONS‬فري البلرك الرئيسري‬
‫ثم ‪CREATE‬‬

‫تظهر النافذة التالية اكتب شرط الربط في المربع‬


‫ترم بالصرورة التري‬ ‫‪JOIN CONDATION‬‬
‫شرحهرا مسربقا ثرم اكترب اسرم البلرك التابرع فري المربرع‬
‫‪ DETAIL BLOCK‬حدد ثم‬
‫خصائص العلقة )عند عملية الحذف( من‬
‫خيارات القائمة ‪MASTER DELETES‬‬
‫بعد تحديد الخصائص انقر ‪OK‬‬
‫انواع البساط‬

CONTENT- 1
STACKED-2
TAB-3
)TOOLBAR (HORIZONTAL&VERTICAL-4
‫لمعرفة الفرق بين انواع البساط سوف نقوم بعمل المثال التالي‬

‫بساط بالسم ‪ V‬والنوع‬ ‫بساط بالسم ‪DEPT‬‬ ‫بساط بالسم ‪ H‬والنوع‬ ‫بساط بالسم ‪EMP‬‬ ‫‪WINDOW1‬‬
‫‪HORIZONTAL‬‬ ‫والنوع ‪CONTENT‬‬ ‫‪VERTICAL‬‬ ‫والنوع‬
‫‪TOOLBAR‬‬ ‫‪TOOLBAR‬‬ ‫‪SACKED‬‬
‫قم بانشاء نموذج مبني على جدول الدارات فقط وتلقائيا سيتم‬
‫انشاء بساط من النوع ‪ CONTENT‬أي الحاوي غير اسمه الى‬
‫‪ DEPT‬بالنقر على ‪ CANVASES‬في شاشة ‪OPJET‬‬
‫‪ NAVAGITOR‬ثم حدد البساط الذي تم انشائه من قبل‬
‫المطور ثم ‪ F4‬لعرض خصائصه ثم غير اسمه قي خاصية‬
‫‪NAME‬‬
‫والن لنشاء بساط جديد انقر على ‪ CANVASES‬ثم‬
‫‪ CREATE‬غير اسمه الى ‪ EMP‬انشاء بساط اخر وسمه ‪ H‬ثم‬
‫انشاء بساط اخر وسمه ‪ V‬ثم انشاء بساط اخر وسمه ‪TABEMP‬‬

‫الكوادالمثال معر‬
‫المتغيرات‬
‫هناك متغيرات المستخدم وهناك متغيرات النظام وسوف نتاول‬
‫الن متغيرات المستخدم وهي المتغيرات التي يقوم المستخدم‬
‫بتعريفه بهدف تبادل البيانات بين عناصر النموذج او بين النماذج‬
‫او لغرض حفظ بيانات معينة واستخدامها في اجراء عمليات‬
‫معينة يمكن للمستخدم ان يتعامل مع المتغيرات باستخدام‬
‫المتغيرات العامة او ما يسمى بالبارامترات وسوف نتناول هنا‬
‫المتغيرات العامة )‪(GLOBAL VARIABLES‬‬
‫المتغير العام يبقي في الذاكرة طوال تنفيذ البرنامج ويتم تعريفه في أي وحدة‬
‫برمجية بالطريقة التالية‬

‫يجب كتابة‬
‫النقطتان قبل‬
‫تعريف المتغير‬

‫كلمة محجوزة‬ ‫بيانات اسم‬


‫يجب كتابتها‬ ‫المتغير المتغير‬
‫لتعريف متغير‬
‫اذا كانت بانات المتغير حرفية يتم كتابتها داخل تنصيص مفرد عند واذا كانت رقمية تكتب‬
‫مباشرة‬
‫يتم تعريف المتغير واعطائة قيمة ابتدائية مباشرة ويستخدم بنفس الطريقة دون أي تغير‬
‫البارامترات‬
‫سوف نقوم بانشاء نموذج وبلك بيانات‬
‫مبني على جدول الداررات ثم يتم انشاء‬
‫بارامتر بالنقر على ‪parameteres‬‬
‫في نافذة المستكشف ثم ‪ create‬يتم‬
‫تغير اسمه الى ‪ p_deptno‬وبارامتر‬
‫اخر باسم ‪p_dname‬‬
‫ثم سيتم انشاء نموذج اخر وفيه بلك مبني‬
‫على جدول الموظفين ويتم انشاء‬
‫البارامترات السابقة بنفس السماء‬
‫وبنفس الطريقة كما في النافذة المقابلة‬
‫في نموذج الدارات قم باضافة زر ثم اضف الكود التالي في الزناد الموضح اعله‬
‫انقر نقر مزدوج على البارامتر الول وغير الخاصية المحدد كما هو محدد في‬
‫النافذة التالية الخاصية سوف تعطي قيمة ابتدائية للبرامتر‬

‫بنفس الطريقة حدد لكل بارامتر في كل من النموذجين قيمة ابتدائية‬


‫في البارامتر ‪ p_dname‬اجعله قيمة نصية ولتكن احد اسماء الدارات‬
‫الموجودة في الجدول ويكن ان تكون أي سلسلة نصية والبارمتر السابق أي رقم‬
‫ادارة‬
‫في نموذج الموظفين اكتب الكود التالي كما هو موضح في الشاشة التالية‬
‫اذهب الى خصائص بلك الموظفين في نموذج الموظفين ثم اكتب الكود كما‬
‫هو موضح ادناه‬
‫والن نفررذ ولحررظ ان نموذج الموظفيررن يتررم فتحررة وجلررب الرربيانات الخاصررة‬
‫بموظفري الدارة الترى ترم اختيارهرا فري نموذج الدارات حيرث ترم ارسرال رقرم‬
‫واسرم الدارة الرى نموذج الموظفيرن وترم عرض رسرالة باسرم الدارة وعرض‬
‫بيانات موظفري الدارة بناءرا علرى رقرم الدارة القادم مرن نموذج الدارات عربر‬
‫البارامتر ‪p_deptno‬‬
‫لظهار رسالة فيرنموذج الموظفين عند فتحه اكتب‬
‫الكود التالي في الزناد‬
‫‪WHEN-NEW-BLOCK-INSTANCE‬‬
‫‪;(message(:parameter.p_dname‬‬

‫الرسالة تظهر اسم الدارة‬


‫وفق ال الجميع لما فيه خير‬
‫هذه المرة‬
‫والى ال قصد السبيل‬
‫تابعونا في الجزء الثاني‬
‫أحسنا فمن ال وان اسأنا فمن الشيطان‬ ‫إن‬
‫وانفسنا نسأل ال التورفيق والسداد‬
‫للتواصل معنا راسلونا على‬
‫البريد‪WALEAD_YAHYA@YAHOO.C‬‬
‫‪OM‬‬

You might also like