الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

بتاريخ:

ابدعت ووفيت وكفيت نتمنى الان اكمال البرنامج بعمل شاشة رئيشة للدخول ..... وشاشة رئيسة للبرنامج .... ويا ريت لو تم تحويل هذه الدروس الى كتيب حتى نستفيد منه ...............شكرا وجزاك الله خيراً ،،،،،،،،،،،

  • الردود 216
  • المشاهدات 93.3k
  • البداية
  • اخر رد

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

Most Popular Posts

  • انا بعتذر عن التأخر عن كتابة باقي الدروس بسبب انقطاع الكهرباء للمدة 4 ايام بسبب الثلوج   وان شاء الله سأكمل باقي الدروس بداية الاسبوع القادم

  • جزاك الله عنا كل خير وجعله في ميزان حسناتك وإلى الأمام فكله في ميزان حسناتك وان شاء الله يكون علم نافع ينتفع به وهو مما ينفع المرء بعد موته وإني اسأل الله العلي القدير أن يغفر لك ما تقدم من ذنبك وأن

  • اليوم ان شاء الله سنقوم بشرح خصائص الــ Items      بسم الله نبدء   نذهب على خصائص اي حقل من خلال الضغط رايت كليك ثم Property Palette   او من خلال الضغط على F4 وعند الدخول نرى هذه الخصائص .    

بتاريخ:
  • كاتب الموضوع

يعطيك العافيه اخوي

 

سؤال عندي اذا كان التاب الاول لادخال بيانات مثل بيانات العميل

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

 

 

الله يعافيك اخي العزيز

 

الموضوع بسيط اخي العزيز

 

سنأخذ على سبيل المثال الاقسام والموظفين

 

سيكون التاب الاول تاب الاقسام والتاب الثاني تاب الموظفين

 

اريد عند تحديد رقم قسم في التاب الاول ان ياتي بالموظفين الموجودين في التاب الثاني 

 

اول ننشأ التاب الاول وهو تاب الاقسام

 

ثم نقوم وننشأ التاب الثاني وهو تاب الموظفين 

 

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

 

197426334.jpg

 

ثم علينا الذهاب الى فورم ثم ترجير اسمه  WHEN-NEW-FORM-INSTANCE  وكتابة هذا الكود

 


go_block('dept');
execute_query;

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

 

639558763.jpg

 

نذهب الى تاب الموظفين وتكون النتيجة كالتالي

 

233121108.jpg

 

 

سنجرب رقم قسم ثاني على سبيل المثال كالتالي

 

412220540.jpg

 

 

 

نذهب الى تاب الموظفين وتكون النتيجة كالتالي

 

921075179.jpg

 

 

 

أتمنى ان اكون اوصلت الفكرة اخي العزيز

 

 

بتاريخ:
  • كاتب الموضوع

ابدعت ووفيت وكفيت نتمنى الان اكمال البرنامج بعمل شاشة رئيشة للدخول ..... وشاشة رئيسة للبرنامج .... ويا ريت لو تم تحويل هذه الدروس الى كتيب حتى نستفيد منه ...............شكرا وجزاك الله خيراً ،،،،،،،،،،،

 

 

اهلا باخي العزيز

 

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

 

وفي نهاية الدروس ان شاء الله ساقوم بتجيعها في ملف PDF

بتاريخ:

يعطيك العافيه اخوي

 

سؤال عندي اذا كان التاب الاول لادخال بيانات مثل بيانات العميل

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

 

 

الله يعافيك اخي العزيز

 

الموضوع بسيط اخي العزيز

 

سنأخذ على سبيل المثال الاقسام والموظفين

 

سيكون التاب الاول تاب الاقسام والتاب الثاني تاب الموظفين

 

اريد عند تحديد رقم قسم في التاب الاول ان ياتي بالموظفين الموجودين في التاب الثاني 

 

اول ننشأ التاب الاول وهو تاب الاقسام

 

ثم نقوم وننشأ التاب الثاني وهو تاب الموظفين 

 

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

 

197426334.jpg

 

ثم علينا الذهاب الى فورم ثم ترجير اسمه  WHEN-NEW-FORM-INSTANCE  وكتابة هذا الكود

 

go_block('dept');
execute_query;

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

 

639558763.jpg

 

نذهب الى تاب الموظفين وتكون النتيجة كالتالي

 

233121108.jpg

 

 

سنجرب رقم قسم ثاني على سبيل المثال كالتالي

 

412220540.jpg

 

 

 

نذهب الى تاب الموظفين وتكون النتيجة كالتالي

 

921075179.jpg

 

 

 

أتمنى ان اكون اوصلت الفكرة اخي العزيز

الفكره اللي عندي

عندي جدول عملاء وجدول عقود

يتم الادخال في جدول العلاء الرقم والاسم وباقي المعلومات

جدول العقود رقم العقد ورقم العميل وباقي معلومات العقد

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

حاولت وزبط معاي كل شي الا انه اذا جيت اخرج وانا ماعدلت او ما اضفت اي شي يطلب مني حفظ

بتاريخ:
  • كاتب الموضوع

اخي العزيز اتبع الخطوات السابقة وان شاء الله تنحل المشكلة

 

واذا لم تنحل المشكلة نريد نسخة من الفورم الموجود فيه المشكلة

بتاريخ:

اخي العزيز اتبع الخطوات السابقة وان شاء الله تنحل المشكلة

 

واذا لم تنحل المشكلة نريد نسخة من الفورم الموجود فيه المشكلة

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

شكرا لك

بتاريخ:
  • كاتب الموضوع

 

اخي العزيز اتبع الخطوات السابقة وان شاء الله تنحل المشكلة

 

واذا لم تنحل المشكلة نريد نسخة من الفورم الموجود فيه المشكلة

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

شكرا لك

 

 

 

بالتوفيق اخي العزيز 

 

وان شاء الله في الخدمة دائما

بتاريخ:
  • كاتب الموضوع

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

 

موضوع اليوم Dynamic List Item

 

على فرض عندي بلوك خاص بالموظفين

 

أذهب الى حقل رقم القسم الى خاصية Item Type ونغيرها الى خاصية List Item

 

ثم نذهب الى خاصية Elements in List  ونضع  في  List Elements  صفر وفي  List Item Value صفر

 

ثم نذهب الى فورم وننشأ ترجير WHEN-NEW-FORM-INSTANCE ونتكب داخله هذا الكود



 declare
 	v_id recordgroup;
 	n_id number;
 begin

   v_id :=create_group_from_query('q1','select dname,to_char(deptno) from dept');
   n_id:=populate_group('q1');
   populate_list('emp.deptno','q1');
 	end;

create_group_from_query نكتب داخلها جملة Select التي نريد ان تظهر في القائمة ونحدد اسم الــ Query

 

populate_group   تنفيذ جملة الــ Select

 

populate_list  وضع البيانات في القائمة

 

طبعا يوجد شروط لكتابة جملة الــ Select 

 

1 ) يجب ان ناتي بحقلين فقط لا اكثر ولا اقل

 

2 ) يجب ان تكون البيانات من نوع Char  واذا لم تكن Char نحولها الى Char  عن طريق To_Char 

 

3 ) الترتيب مهم لانه هنالك قيمة تظهر على القائمة وقيمة تخزن في قاعدة البيانات

 

 

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

 

747097593.jpg

 

 

 

 

بتاريخ:
  • كاتب الموضوع

أذا لم تكن هنالك اسئلة سنبدء غدا في موضوع مهم جدا

 

 

وهو شاشة الدخول   Login

بتاريخ:

الاخ الكريم نفعك الله واياك بالعلم الذى تنشرة واصل ونحن معك

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

تم تعديل بواسطة mohamed mustafa

بتاريخ:
  • كاتب الموضوع

الاخ الكريم نفعك الله واياك بالعلم الذى تنشرة واصل ونحن معك

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

 

 

اهلا بك اخي العزيز

 

وان شاء الله مستمرون

بتاريخ:

جزاك الله عنا كل خير ورضي الله عن والديك وعن ساير المسلمين

بتاريخ:
  • كاتب الموضوع

الله يبارك فيك اخي العزيز حسام

 

ولك بالمثل ان شاء الله

بتاريخ:
  • كاتب الموضوع

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

 

موضوع اليوم موضوع مهم جدا 

 

موضوع اليوم هو عن شاشة الدخول   Login

 

اول خطوات عمل شاشة الدخول هو عمل جدول خاص بشاشة الدخول

 

وهذا الجدول يحتوي اسم المستخدم مع الرقم السري للهذا المستخدم كالتالي

CREATE TABLE LOGIN
(
ID 	NUMBER(5) PRIMARY KEY,
USER_NAME		VARCHAR2(20),
USER_PASSWORD		VARCHAR2(20)
);

ثم نذهب ونعمل فورم خاص بتعبئة بيانات المستخدم من اسم ورقم سري

 

ونضيف بيانات كالتالي

 

813908611.jpg

 

 

 

كلام جميل  الان نخزن هذه الشاشة ونخرج منها

 

اريد الان ان اعمل شاشة دخول خاصة بفورم الموظفين

 

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

 

اذا كان الاسم والرقم السري صحيحين يدخل على شاشة الموظفين

 

واذا ادخل الاسم او الرقم خطأ نحسب كم مرة أخطأ واذا أخطأ ثلاث مرات يخرج من الشاشة

 

وبعد كل محاولة خاطئة يعمل Clear  للأسم والرقم السري

 

ويرجع المؤشر الى حقل اسم المستخدم

 

وأذا كبس على Exit  يخرج من الشاشة

 

خطوات العمل ...

 

1 ) افتح فورم جديد

 

2 ) أنشاء بلوك جديد خاص بالموظفين فيه 5 سجلات

 

3 ) اعد تسمية الــ Canvas  الخاصة بالموظفين بأسم  Emp_Can

 

4 ) اعد تسمية الــ  Window الخاصة بالموظفين بأسم Emp_Win

 

5 ) قم بأنشاء بلوك جديد Manually خاص بشاشة الدخول طبعا مش تابع للقاعدة البيانات

 

6 ) قم بأضافة حقلين على شاشة الدخول  ونغير فيهم بعض الخصلئص كالتالي

 

426052246.jpg

 

7 ) قم بأضافة كبستين على شاشة الدخول  ونغير فيهم بعض الخصلئص كالتالي

 

126101969.jpg

 

 

ويكون الشكل عند عمل تنفيذ للبرنامج كالتالي

 

911207800.jpg

 

 

كلام جميل

 

الان اريد متغير اضع فيه عدد المحاولات الخطا عند الادخال

 

من خلال معرفتنا بالمتغيرات افضل متغير لهذه الحالة هو Global Variable 

 

احتاج الى  Global Variable  لكي اخزن فيه عدد المحاولات الخطأ

 

اول ما يفتح الفورم اعرف متغير يأخذ قيمة صفر كالتالي

 

اذهب الى فورم ثم انشاء ترجير اسمه  WHEN-NEW-FORM-INSTANCE واكتب داخله

  :Global.cnt := 0;

 ثم اذهب الى كبسة Login وأنشاء ترجير اسمه WHEN-BUTTON-PRESSED  اكتب داخله هذا الكود

 



declare	
	cursor c is
	select *
	from login
	where upper(USER_NAME)=upper(:USER)  
	and   upper(USER_PASSWORD)=upper(:PWD);
	v c%rowtype;
	n number;
begin	
 open c;
 fetch c
 into v;
 if c%found then
 	go_block('emp');
 	execute_query;
 else
 	n:= :Global.cnt;
 	n:=n+1;
 	 :Global.cnt := n; 	 
 	 if n >=3 then
 	 	exit_form;
 	 else
 	 	message('You Failed In Login '||n||' '||'Time');
 	 	message(' ');
 	 	:USER :=null;
 	 	:PWD :=null;
 	 	go_item('user');
 	 end if;
 end if;
 close c;
	end;
	

 ثم اذهب الى كبسة Exit وأنشاء ترجير اسمه WHEN-BUTTON-PRESSED  اكتب داخله هذا الكود

exit_form;

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

 

سأقوم بكتابة الاسم صح والرقم السري خطأ وتكون النتيجة كالتالي

 

778495796.jpg

 

ساقوم بكتابة الاسم خطأ والرقم السري صح وتكون النتيجة كالتالي

 

272377746.jpg

 

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

 

 

ساقوم بكتابة الاسم والرقم السري صح كالتالي

 

508082985.jpg

 

 

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

 

 

214407986.jpg

 

 

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

 

 

 

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

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

 

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

بتاريخ:

لك كل الشكر والنفدير الاخ الكريم وعلى انتظار التكمله وجزاك الله خير

تم تعديل بواسطة mohamed mustafa

بتاريخ:
  • كاتب الموضوع

لك كل الشكر والنفدير الاخ الكريم وعلى انتظار التكمله وجزاك الله خير

 

 

العفو اخي العزيز محمد

بتاريخ:
  • كاتب الموضوع

مجهود متميز من انسان متميز.

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

 

 

الله يبارك فيك استاذ احمد

بتاريخ:
  • كاتب الموضوع

ان شاء الله غدا سنشرح اخر موضوع في الفورم وهو Property Classes

بتاريخ:
  • كاتب الموضوع

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

 

موضوع اليوم عن Property Classes وهو من المواضيع المهمة في الفورم

 

وكما قلنا سابقا تعريف Property Classes 

 

هي عبارة عن مجموعة من الخصائص النظرية وغير النظرية نقوم ببنائها بهدف توريثها لعناصر مختلفة

 

توضيح فكرة Property Classes

 

عند عمل مشروع معين للجهة معينة نأخذ مواصفات الفورم من المستخدم

 

وهذه المواصفات تشمل اي شيئ في الفورم

 

نوع او طول او عرض او لون او صفحة او اطار او مواصفات حقل

 

او مواصفات بلوك او فورم ...الخ أي شي داخل الفورم 

 

ولفهم الموضوع سنأخذ مثال على ذلك

 

على فرض طلبت منا شركة ما عمل مشروع خاص بها

 

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

 

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

 

باقي الحقول لها خلفية زرقاء والكتابة بلون اصفر وحجم الخط 12 ونوعه Arial

 

Window بعرض  500 وارتفاع 300 اسمها  Major_Wind

 

Canvas بعرض  500 وارتفاع 300 اسمها Major_Can 

 

بسم الله نبدء

 

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

 

ثم نذهب الى Property Classes ونضعط + والنتيجة كالتالي

 

 

485721078.jpg

 

 

اول نحدد مواصفات حقل المفتاح الرئيسي 

 

نعمل على اعادة تسمية Property Classes ونسميها Item_pk

 

ثم نذهب الى الخصائص عن طريق F4  كالتالي

 

944596548.jpg

 

عن طريق +  في القائمة نعمل على اضافة خصائص جديدة بهدف توريثها

 

 

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

 

سنحدد اول خاصية وهي خلفية رمادية نعمل اضافة ونبحث عن 

 

744730580.jpg

 

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

 

750324747.jpg

 

نحدد اللون الذي نريد وهو الرمادي في مثالنا

 

الان نريد تحديد لون الكتابة وهو اللون الابيض في مثالنا

 

نذهب ونعمل اضافة خاصية جديدة ونبحث عن 

 

 

102802744.jpg

ونحدد اللون الابيض 

 

الان نريد تحديد خاصية عدم الكتابة داخل الحقل 

 

نذهب ونعمل اضافة خاصية جديدة ونبحث عن 

146613727.jpg

 

ونضع في هذه الخاصية NO

 

ويكون الشكل النهائي للمواصفات حقل المفتاح الرئيسي كالتالي

 

917852216.jpg

 

 

بتاريخ:
  • كاتب الموضوع

الان نعمل خاصية الحقول لها خلفية زرقاء والكتابة بلون اصفر وحجم الخط 12 ونوعه Arial

 

 

نذهب الى Property Classes ونضعط + والنتيجة كالتالي

 

805814376.jpg

 

نعمل على اعادة تسمية Property Classes ونسميها Item_Defulat

 

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

 

عن طريق +  في القائمة نعمل على اضافة خصائص جديدة بهدف توريثها

 

 

كما قلنا سابقا نريد اعطاء الحقل العادي خاصية خلفية زرقاء والكتابة بلون اصفر وحجم الخط 12 ونوعه Arial

 

سنحدد اول خاصية وهي خلفية زرقاء 

 

بعدها نحدد لون الكتابة وهو اللون الاصفر في مثالنا

 

بعدها نحدد حجم الخط 12 باضافة خاصية وهي 

 

124250204.jpg

 

 

 ونحدد حجم الخط 12

 

ثم نحدد نوع الخط بأختيار نوع الخط باضافة خاصية 

 

182701038.jpg

 

ونحدد نوع الخط  Arial

 

ويكون الشكل النهائي للمواصفات الحقل كالتالي

990374818.jpg

 

الان نحدد Window عرض  500 وارتفاع 300 اسمها  Major_Wind

 

نذهب الى Property Classes ونضعط + والنتيجة كالتالي

 

463700244.jpg

 

نعمل على اعادة تسمية Property Classes ونسميها  Major_Wind

 

 

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

 

عن طريق +  في القائمة نعمل على اضافة خصائص جديدة بهدف توريثها

 

الان نحدد Window بطول 500 وارتفاع 300 اسمها  Major_Wind

 

كما قلنا سابقا نريد اعطاء Window  خاصية  العرض 500 وارتفاع 300 

 

سنحدد اول خاصية العرض بأضافة خاصية وهي 

 

476517857.jpg

 

 

ونحدد الطول  500

 

ثم نحدد الارتفاع بأضافة خاصية وهي 

 

589621398.jpg

 

 

ويكون الشكل النهائي للمواصفات الــ Window كالتالي

 

697714275.jpg

بتاريخ:
  • كاتب الموضوع
 

الان نحدد Canvas بطول 500 وارتفاع 300 اسمها Major_Can 

 

نذهب الى Property Classes ونضعط + والنتيجة كالتالي

 

463700244.jpg

 

نعمل على اعادة تسمية Property Classes ونسميها  Major_Can 

 

 

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

 

عن طريق +  في القائمة نعمل على اضافة خصائص جديدة بهدف توريثها

 

الان نحدد Canvas بعرض 500 وارتفاع 300 اسمها  Major_Can 

 

كما قلنا سابقا نريد اعطاء Canvas خاصية  العرض 500 وارتفاع 300 

 

سنحدد اول خاصية العرض بأضافة خاصية وهي Width

 

ونحدد العرض  500

 

ثم نحدد الارتفاع بأضافة خاصية وهي Height

 

ونحدد الارتفاع 300

ويكون الشكل النهائي للمواصفات الــ Canvas كالتالي

 

 

274195964.jpg

 

 

 ويكون الشكل النهائي للمواصفات داخل الفورم كالتالي

 

296019803.jpg

 

تم اللازم والحمدلله

 

الان سنقوم بتوريث هذه الخصائص

 

نقوم بأنشاء بلوك خاص بالموظفين كالتالي

 

588006876.jpg

 

كما نرى لا يوجد اي تغير بالشكل

 

الان سنقوم بالتوريث

 

اول نذهب الى مواصفات حقل رقم الموظف عن طريق F4

 

ونذهب الى خاصية Subclass Information

 

ونحدد خاصية الرقم الرئيسي عن طريق الضغط على Subclass Information كالتالي

 

944337988.jpg

 

 

ثم نذهب الى باقي الحقول ونغيرمواصفاتها عن طريق F4

 

ونذهب الى خاصية Subclass Information

 

ونحدد خاصية الحقل عن طريق الضغط على Subclass Information كالتالي

 

145657740.jpg

 

 

ثم نذهب الى مواصفات الــ Window عن طريق F4 

 

 

ونذهب الى خاصية Subclass Information

 

ونحدد خاصية الــ Window ن طريق الضغط على Subclass Information كالتالي

 

295595375.jpg

 

 

 

ثم نذهب الى مواصفات الــ Canvas عن طريق F4 

 

 

ونذهب الى خاصية Subclass Information

 

ونحدد خاصية الــ Canvas  ن طريق الضغط على Subclass Information كالتالي

 

304903171.jpg

 

 

 

نعمل تنفيذ للفورم وتكون النتيجة كالتالي

 

 

تم اللازم والحمدلله

 

وللفهم الموضوع اكثر يجب تجربة اكثر من خاصية للتوريثها.

 

670258056.jpg

 

ان شاء الله اذا لم يكن هنالك اسئلة سأبدء بعمل مشروع صغير في نهاية هذه الدورة

 

وان شاء الله سأضع جميع النقاط المهمة في الفورم في هذا المشروع 

 
بتاريخ:

يعجز اللسان عن الشكر بارك الله فيك وفى علمك وزادك علما

بتاريخ:
  • كاتب الموضوع

يعجز اللسان عن الشكر بارك الله فيك وفى علمك وزادك علما

 

 

الله يبارك فيك اخي العزيز

 

ولك بالمثل ان شاء الله

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.