الانتقال إلى المحتوى

مثبت دروس فورم من الألف الى الياء


miash80

Recommended Posts

السلام عليكم ورحمة الله

 

الأخ / موسى 

 

مرحبا بك مرة أخرى ... بعد طول غياب ... دائما متميز ومتألق كما عهدناك في مشاركاتك السابقة بالمنتديات 

 

الجميع ينتظر منك الكثير 

 

جزاك الله خيرا 

 

يالتأكيد ... سيتم تثبيت الموضوع 

 

 

وعليكم السلام ورحمة الله وبركاته

 

مشكور اخي واستاذي امجد على هذا الكلام الطيب

 

وشرف كبير مرورك 

 

وان شاء الله مستمر الى النهاية

رابط هذا التعليق
شارك

  • الردود 216
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

  • miash80

    125

  • Bosaeed

    6

  • mohamed mustafa

    4

  • jedghaleb

    4

List of Value 

 

تعريفها هي عبارة عن قائمة اختيارات تظهر عن الدخول على حقل معين ((قائمة من القيم )) ولا ننسى علاقتها مع Record Groups

 

Record Groups

تعريفه هو عبارة عن وسيط LOV يكتب داخله جملة الــSelect  الخاصة بقائمة الاختيارات ويمكن التعديل عليه .

 

خطوات انشاء قائمة جديدة كالتالي .

1) Create Record Groupانشاء واحد جديد

2) Create LOV /Connect Record group انشاء قائمة جديدة مع ربطها مع Record Group

3) Connect LOVs with filed ربط القائمة مع حقل معين

4) Return Value. ارجاع القيم

 

Lovs Type:

 

1.    Staticيستخدم في الشغلات الثابتة في الحياة مثل ايام الاسبوع    

2.    Dynamicيستخدم في جملة الاستعلام ويأخذ كل شيئ جديد

سنأخذ مثال على كل نوع .

 

اريد انشاء قائمة جديدة من نوع Static تأخذ قيم لأسماء الاقسام باسماء انا احددها كالتالي .

 

انشاء Record Group  جديدة تخرج هذه الشاشة

 

 

 

 

 

953993794.jpg

 

 

نختار الخيار الاول ثم Ok  ثم تخرج هذه الشاشة 

 

 

 

662381497.jpg

 

هذه الشاشة نقوم بأدخال قيم قائمة الاختيارات كالتالي .

 

اول نحدد حقل رقم القسم مع القيم الجديدة كالتالي 

 

 

 

124997274.jpg

 

قيم ارقام الاقسام جديدة (100,200,300)  بدلا من (10,20,30)

 

ثم نحدد حقل اسماء الاقسام مع القيم الجديدة كالتالي .

 

488068493.jpg

قيم جديدة لاسماء الاقسام انا احددها .

 

ثم نضغط OK وتصبح عندنا Record Group جديدة نعمل على اعادة تسميتها MY_REC_GRO

 

 

595115479.jpg

 

رابط هذا التعليق
شارك

 

 ثم نقوم بأنشاء LOVs جديدة للربطها مع الــ Record Group التي قمنا بأنشائها

 

نذهب الى Object Navigator ونضغط عليها وتخرج لنا هذه الشاشة 

 

706714867.jpg

 

نختار الخيار الثاني الــ manually ثم OK

 

تم انشاء قائمة جديدة نعمل على اعادة تسميتها MY_LOV كالتالي

 

 

 

752311061.jpg

 

نذهب الى خصائص القائمة عن طريق F4 الى خاصية Record Group

 

ونحدد الـ Record Group الذي نريد ربطه على هذه القائمة كالتالي 

 

544573012.jpg 

 

ونذهب الى خاصية Column Mapping Properties لنحدد كل حقل في القائمة

 

لأي حقل يعود على الفورم من خلال Browse كالتالي

 

754592182.jpg

 

 

 

 

788861310.jpg

 

   ثم نضغط على OK تم انشاء القائمة وربطها مع الــ  Record Group 

 

طريقة استدعاء القائمة في الفورم كالتالي .

 

نعمل تنفيذ للفورم ثم نقوم بالدخول على حقل رقم القسم واستدعاء القائمة عن طريق F9 

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

 

 

 

 

368067507.jpg

 

 

خرج لنا رسالة ان لا يوجد قائمة تابعة للهذا الحقل للذا يجب تحديد هذه القائمة للهذا الحقل عن طريق الذهاب الى خصائص الحقل التالية

 

 

574497863.jpg

 

 

 

نقوم بتحديد القائمة التابعة للهذا الحقل كالتالي 

 

 

846182709.jpg

 

 

ثم نرجع نعمل تنفيذ للفورم من جديد ونستدعي القائمة من خلال F9

 

وهذه هي النتيجة 

 

384937093.jpg

 

 

 

 كما قلت في السابق الــ  Static يستخدم في الشغلات الثابتة التي لا تتغير في الحياة مثل ايام الاسبوع

 

تم تعديل بواسطة miash80
رابط هذا التعليق
شارك

بسم الله نبدء

 

اريد انشاء قائمة جديدة من نوع  Dynamic تستخدم فيها جملة الاستعلام  

 

في المثال السابق قمنا بأنشاء Record Group ثم قمنا بأنشاء قائمة وربطهما معا

 

الان سنقوم بانشاء القائمة مباشرة وخلال التنفيذ سنكتب جملة الاستعلام الخاصة بــ Record Group

 

نذهب الى Object Navigator ونعمل على اضافة LOVs جديدة وتخرج لنا هذه الشاشة 

 

220777493.jpg

 

 

 

ثم تخرج شاشة للأختيار Record Group جديدة ام  Record Group مخزنة من قبل 

 

 

782820664.jpg

 سنختار Record Group جديدة ثم Next

 

ثم تخرج لنا شاشة يوجد فيها اكثر من طريقة لكتابة جملة الاستعلام

 

Build SQL Query: طريقة استدعاء الجدول واختيار الحقول التي اريد ان تظهر في القائمة

 

Import SQL Query: طريقة استدعاء ملف نصي مخزن فيه مسبقا جملة استعلام

 

او كتابة جملة الاستعلام مباشرة في النص 

 

835838314.jpg

بالامكان استخدام اي طريقة وجميعها نفس النتيجة

 

ان سأختار Build SQL Query سيطلب مني تحديد الجدول الذي سيرجع بيانات القائمة كالتالي

 

899790294.jpg

 

حددنا اسم الجدول وهو جدول الاقسام Dept  ثم علينا تحديد الحقول الموجودة داخل القائمة كالتالي

 

258874527.jpg

 

 

 

 

وتكون النتيجة بهذا الشكل  (( جملة الاستعلام ))

 

 

632243294.jpg

 

ثم Next  وتخرج شاشة للتحديد اي حقول تظهر في القائمة 

 

273942898.jpg

 

ثم  نحدد اي نرجع قيمة حقول القائمة على الشاشة كالتالي

 

 

757671552.jpg

تم تعديل بواسطة miash80
رابط هذا التعليق
شارك

 

ثم تخرج شاشة نحدد فيها عنوان القائمة مع تحديد طول وعرض القائمة

 

843989642.jpg

ثم

 

 

182250865.jpg

 

ثم تعيين الحقول في القائمة

 

 

105607671.jpg\

ثم  Finish

 

 

 

 

467525178.jpg

 

تم انشاء القائمة وانشاء record group من خلالها كالتالي 

 

 

496485437.jpg

 

 

نقوم باعادة تسمية القائمة بالاسم المناسب 

 

طبعا اعادة التسمية غير اجبارية ولكنها للتوضيح عمل كل قائمة من خلال اسمها كالتالي 

 

578719689.jpg

 

 

 

 

طريقة استدعاء القائمة في الفورم نفس طريقة المثال السابق

 

نعمل تنفيذ للفورم ثم نقوم بالدخول على حقل رقم القسم

 

واستدعاء القائمة عن طريق F9 

 

 

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

 

909620607.jpg

 

 

تم المطلوب بنجاح والحمدلله

رابط هذا التعليق
شارك

ان شاء الله المرة القادمة سأقوم بشرح خصائص القائمة وبعدها ابدأ في موضوع جديد

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

مثال سريع ...

 

 

اريد ان اضيف موظف جديد 

 

ومع السرعة اخطأت وادخلت رقم قسم 99 وهو غير موجود

 

خرجت لنا رسالة رقم القسم غير موجود كالتالي

 

 

497294926.jpg

 

اريد حل هذه المشكلة نهائيا 

 

لحل هذه المشكلة يوجد خاصية في البلوك لفحص بيانات القائمة

 

وهي Validate from List تكون No نغيرها الى Yes

 

Validate from List :Yes

 

نجرب هذه المرة ان ندخل رقم خطأ وهو 99

 

215157296.jpg

 

 

خرجت لنا القائمة لنختار رقم قسم صحيح.

 

الحمدلله تم المطلوب 

 

في الدرس القادم ان شاء الله سنشرح موضوع الــ List Item

تم تعديل بواسطة miash80
رابط هذا التعليق
شارك

سنشرح اليوم الــ  List Item

 

بسم الله نبدأ

 

ما هو  الــ  List Item ...؟

 

 List Item هو احد انواع  Text Item

 

نذهب على خصائص Text Item الى خاصية Item type ونغيرها

 

Item type :List Item

 

ثم نذهب الى خاصية Elements in List وندخل فيها بيانات قائمة الحقل كالتالي

 

729079719.jpg

 

نعمل تنفيذ للبرنامح لنرى النتيجة كالتالي 

 

 

 

482244490.jpg

 

 

يوجد الـ  List Item بثلاث أشكال نذهب على خاصية List Style لنرى هذه الاشكال

 

* Poplist وهذا الشكل نفس المثال السابق

 

* Tlist ويوجد فيها Toll bar لتغير قيم القائمة

 

* Combo Box 

 

بإمكان تجربة كل واحدة للمشاهدة ومعرفة الفرق بينهما .

 

الموضوع التالي هو Check Box

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

جزاك الله خير وعقب الخير جنات النعيم

واصل شرحك أخي الكريم في ميزان حسناتك إن شاء الله ..

رابط هذا التعليق
شارك

سنشرح اليوم الــ  Check Box

 

بسم الله نبدء

 

ما هو  الــ  Check Box ...؟

 

 Check Box هو احد انواع  Text Item

 

 Check Box  نحتاج الى حقل جديد

 

سأضيف حقل اسمه قرض على جدول الموظفين

alter table emp
add Loan number(1);

هل الموظف اخذ قرض من الشركة ام لا

 

نضيف هذا الحقل على شاشة الموظفين 

 

 

نذهب على خصائص Text Item الى خاصية Item type ونغيرها

 

Item type : Check Box

 

ونغير بعض الخصائص كالتالي 

 

463269655.jpg

 

 

معناها اذا وضعنا صح يعطي قيمة للحقل واحد

 

واذا غيرنا وحذفنا الصح يعطي قيمة صفر

 

وان تكون القيمة الاولية للحقل فاضية

 

وعند التنفيذ يكون هذا شكل الشاشة

 

406406563.jpg

 

 

بمجرد ان اضع صح يكون هذا الموظف استلم قرض من الشركة .

 

الموضوع القادم هو Radio Group ان شاء الله

تم تعديل بواسطة miash80
رابط هذا التعليق
شارك

سنشرح اليوم الــ  Radio Group

 

بسم الله نبدأ

 

ما هو  الــ  Radio Group ...؟

 

 Radio Group هو احد انواع  Text Item

 

نذهب على خصائص Text Item الى خاصية Item type ونغيرها

 

Item type :Radio Group

 

نذهب الى خصائص رقم القسم ونضعها Radio Group ويظهر الحقل بهذا الشكل 

 

749176225.jpg

 

 

ثم نضيف اربعة Radio Buttons كالتالي 
 
 
747322237.jpg
 
 
 
ندخل على خصائص كل Button ونغير في خصائصه كالتالي .
 
 
 
 
991111992.jpg
 
 
هذه بيانات كل Button 
 
360321519.jpg
 
ويكون شكل الــ Radio Button كالتالي 
 
647584464.jpg
 
 
وبعد التنفيذ يخرج معنا هذا الشكل 
 
585457974.jpg
 
 
 
كما لاحظنا في الشكل حدد لكل سجل  Radio Group للتحديد في اي قسم يعمل هذا الموظف .
 
تم المطلوب والحمد لله
تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

الموضوع في الدرس القادم مهم جداَ

 

وهو الـــ ( Multi Block )  او المعروف بـــ Master - Detail

 

ان شاء الله اذا لم يكن هنالك اسئلة سأبدء بالشرح والله الموفق

رابط هذا التعليق
شارك

اليوم ان شاء الله سنقوم بشرح موضوع  Master - Detail

 

شرح بسيط : علاقة الماستر والديتل هي نفس علاقة الاب بالابناء

 

الاب هو الماستر والابناء هم الديتل

 

مثال بسيط : علاقة الماستر والديتل هي نفس علاقة جدول الاقسام بجدول الموظفين

 

جدول الاقسام هو الماستر ((الاب)) وجدول الموظفين هو الديتل ((الابناء))

 

كل موظف تابع لقسمه (( كل ابن تابع لاباه ويوجد اكثر من ابن لكل اب))

 

كلام جميل سنأخذ مثال لتوضيح هذه العلاقة .

 

نذهب الى الفورم بلدر ونقوم بأنشاء البلوك الخاص بالموظفين والبلوك الخاص بالاقسام

 

طيب عندي سؤال صغير ....؟

 

هل ترتيب انشاء البلوك مهم ام لا ...؟

 

طبعا ترتيب انشاء البلوك مهم وضروري

 

اذا يجب انشاء الاب اولاً ثم انشاء الاولاد

 

يعني إنشاء الماستر قبل الديتل 

 

بسم الله نبدأ

نبدأ بانشاء بلوك الماستر وهو بلوك الاقسام

 

322669435.jpg

 

 

 

الان سنقوم بأضافة بلوك الديتل وهو بلوك الموظفين

 

وعند اضافة البلوك ستخرج لنا شاشة انشاء العلاقة بين البلوك كالتالي 

949677321.jpg

 

سأترك هذه الشاشة ولن اعمل علاقة لارى ماذا يحصل 

 

ساكمل انشاء الشاشة وبعد قليل ستخرج لي شاشة تحديد الــ Canvas

 

سأحدد الــ Canvas نفس الموجود عليها شاشة الاقسام كالتالي

 

544561515.jpg

 

وبعدها تخرج لنا شاشة لتحديد الحقول التي ستظهر كالتالي

 

619566494.jpg

 

كما نرى حقل رقم القسم موجود في الديتل واصلا موجود في الماستر

 

لذلك لا نستدعي هذا الحقل لعدم تكرار البيانات في الماستر والديتل

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

 

نكمل اضافة شاشة الموظفين كالتالي

 

816391854.jpg

 

وهذه هي النتيجة 

  

 

 

738571560.jpg

 

 

بعدها نعمل تنفيذ للفورم واستعلام للبيانات كالتالي 

 

633985273.jpg

 

 

 

كما نرى وجود بيانات للماستر وعدم وجود بيانات لديتل هذه مشكلة عدم تحديد العلاقة بين الماستر والديتل

 

لحل هذه المشكلة يجب ان نضع علاقة بين الماستر والديتل كالتالي ...

 

نذهب الى  Relations في بلوك الماستر الاقسام ونضغط على + لأضافة علاقة جديدة

 

 

 

 

911481647.jpg

 

 

 

 

ويخرج لنا شاشة كالتالي 

 

 

565526376.jpg

 

ونحدد في هذه الشاشة بلوك الماستر وبلوك الديتل مع تحديد شرط الاستعلام

 

 

812759461.jpg

 

وتكون النتيجة ان شاء علاقة بين البلوكين كالتالي

 

 

 

394480377.jpg

 

 

 

وبعد عمل تنفيذ وعمل استعلام تكون النتيجة

 

 

852421311.jpg

 

 

تم المطلوب والحمدلله

 

في المرة القادمة ان شاء الله سأكمل موضوع  Master - Detail

 

 

 

 

 

تم تعديل بواسطة miash80
رابط هذا التعليق
شارك

الف شكر لك اخي موسى

 

لنفترض اني اريد استعلم عن القسم رقم 10 والموظف رقم 7782 

 

هل استطيع الاستعلام عنه بخطوة واحدة فقط ؟

او يجب ان استعلم عن القسم رقم 10 كخطوة أولى، ثم بعد ذلك استعلم عن الموظف رقم 7782 كخطوة ثانية ؟

رابط هذا التعليق
شارك

العفو اخي العزيز

 

بالإمكان أن تستعلم على أكثر من شرط في الاستعلام الواحد

 

يعني ممكن تضع شرط الاستعلام رقم القسم ورقم الموظف ثم تنفذ الاستعلام

 

لكن لا ارى مناسب وضع اكثر من شرط في هذه الحالة لانه عن طريق رقم الموظف أستطيع إسترجاع رقم القسم

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

 

في الشرح السابق شاهدنا هذه الشاشة عند تكوين علاقة بين الشاشات

 

565526376.jpg

وشاهدنا هذه الخصائص التي يجب معرفتها

 

Cascading : أذا لغيت الماستر يلغي الديتل

 

Isdate :اذا لغيت الماستر الديتل لا يتأثر

 

Non-Isolated : يجب إلغاء الديتل أولا ثم الماستر

 

Join Condition : عملية الربط بينهم

 

الان سنقوم بعمل شاشة جديدة فيها بلوك الاقسام

 

وبلوك الموظفين والربط بينهم بعلاقة مباشرة

 

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

 

نريد عمل شاشة جديدة فيها بلوك الاقسام وبلوك الموظفين والربط بينهم بعلاقة مباشرة

 

قمنا بعمل بعمل بلوك خاص بالاقسام وفي سجل واحد

 

ثم قمنا بعمل بلوك خاص بالموظفين ونريد عمل علاقة بينهم عن طريق هذه الشاشة

 

475279638.jpg

 

نضغط على Create Relationship لانشاء علاقة بين الشاشات

 

ثم تخرج هذه الشاشة للتحديد الماستر 

 

893024572.jpg

 

 

ثم تخرج شاشة نحدد فيها الحقول التي تربط الجداول مع بعض

 

وبالتالي يتم الربط بينها بعلاقة كالتالي

 

 

136790858.jpg

 

هكذا عملنا علاقة بين الماستر والديتل 

 

رابط هذا التعليق
شارك

العفو اخي العزيز

 

بالاستطاع ان تستعلم على اكثر من شرط في الاستعلام الواحد

 

يعني ممكن تضع شرط الاستعلام رقم القسم ورقم الموظف ثم تنفذ الاستعلام

 

لكن لا ارى مناسب وضع اكثر من شرط في هذه الحالة لانه عن طريق رقم الموظف أستطيع إسترجاع رقم القسم

 

 

اخي الفاضل استطيع الاستعلام عن اكثر من شرط في بلوك الماستر، مثلا: (رقم القسم - اسم القسم)

 

ولكن لا استطيع الاستعلام عن طريق الديتل إلا في حالة انني استعلمت عن طريق الماستر، بمعنى انني لا استطيع الانتقال لبلوك الديتل إلا بعد ان استعلم عن الماستر ومن ثم انتقل للديتل واستعلم عن الموظفين.

مثلا:

استعلم عن القسم رقم 10 راح يسترجع لي جميع معلومات الموظفين في القسم 10، بعد ذلك استعلم عن الموظف رقم 7782 في بلوك الديتل.

 

هل هناك شيء في خصائص البلوك يسمح لي بالاستعلام من بلوك الديتل مباشرة؟

تم تعديل بواسطة Bosaeed
رابط هذا التعليق
شارك

للأجابة على سؤال الاخ العزيز ولأكمال شرح العلاقة بين الماستر والديتل

 

نذهب الى خصائص العلاقة عن طريق F4  ستكون عندنا هذه الشاشة

 

331528542.jpg

 

 

 

Prevent Masterless Operations : خاصية الاستعلام عن الديتل دون وجود ماستر

 

Deferred : لا يأتي بالديتل الا لما استعلم عنه 

 

Automatic Query : مجرد ما يدخل على الديتل يأتي بالبيانات

 

 

 

ولتذكير دائما عند بناء علاقة يتم بنائها في بلوك الماستر

تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل



×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية