الانتقال إلى المحتوى
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

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

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

الدرس الثالث عشر : إجبار المستخدم على إدخال نص

الغرض من هذا الدرس أنه إذا أدخل المستخدم رقم على حقل نص تظهر رسالة بأنه لايمكن إدخال رقم .

تم تطبيق هذا الدرس على نموذج Emp اسكيما scott/tiger

من الحدث WHEN-VALIDATE-ITEM للبلوك نكتب الكود التالي :

declare
CH varchar2(30);
begin
if :emp.ename is not null then

FOR I IN 1..LENGTH(:emp.ename) LOOP
CH:=SUBSTR(:ename,I,1);
IF CH  BETWEEN '1' AND '9' THEN
       message('غير مسموح بإدخال رقم');
       message('غير مسموح بإدخال رقم');
raise form_trigger_failure;
end if;
END LOOP;
end if;
end;

اجبار المستخدم على ادخال نص.rar

  • بعد 2 أسابيع...
  • الردود 53
  • المشاهدات 21.5k
  • البداية
  • اخر رد

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

Most Popular Posts

  • الدرس الأول : عمل إضافة تلقائية وحفظ تلقائي لنفرض أن لدي شاشة تكويد المناطق وتحتوي على 2 culomn الأول رقم المنطقة والثاني اسم المنطقة وعند الخروج من الصف الحالي وبعد تعبئة البيانات اريد من البرنام

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

  • السلام عليكم ورحمة الله وبركاته وكل عام وانتم بخير الدرس السادس عشر : طريقة عمل LIST ديناميكية راح يكون شغلنا على الجدولين EMP & DEPT من اسكيما SCOTT/TIGER من الفورم بلدر ننزل حقل رقم الق

الصور المنشورة

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

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

الدرس الرابع عشر : عمل ترقيم تلقائي مع إضافة تاريخ السنة بالهجري

ننشئ جدول باسم emp يحتوي على الأعمدة التالية :

emp_count number لعمل ترقيم تلقائي
date_h varchar2 لإظهار التاريخ الهجري
emp_ser varchar لااستعراض الرقم التلقائي مع التاريخ الهجري
emp_name varchar2
job varchar2

ومن شاشة الفورم بلدر وبعد استدعاء البلوك نجعل emp_count & date_h visible = no

وبعد ذلك ندرج button وعند الحدث WHEN-BUTTON-PRESSED نكتب الكود التالي :

create_record;
declare
x number;
begin

select to_char(sysdate,'YYYY','NLS_CALENDAR = ''ARABIC HIJRAH'''),
nvl(max(emp_COUNT),0)+1 into :date_h,x
 from dual,emp;
:emp_count:=x;
:emp_ser:=x ||'/'||:date_h;
end;

 



ولعرض التاريخ ميلادي بدلاً من الهجري نقوم بتغيير data type = date date_h ونكتب الكود التالي :

create_record;
declare
x number;
begin

select to_date(sysdate,'dd-mm-yyyy'),
nvl(max(emp_COUNT),0)+1 into :date_h,x
 from dual,emp;
:emp_count:=x;
:emp_ser:=x ||'/'||:date_h;
end;

ترقيم تلقائي مع تاريخ السنة.rar

  • بعد 4 أسابيع...
بتاريخ:

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

  • بعد 1 شهر...
بتاريخ:
  • كاتب الموضوع

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

الدرس الخامس عشر : مهارات متقدمة في RECORD GROUP

في هذا الدرس سنقوم بإنشاء 3 جداول :

1- جدول الطلاب بإسم STUD ويحتوي على عامودين STUD_ID , STUD_NAME ومن ثم ندخل البيانات .
2- جدول المواد بإسم SUBJ_CODE ويحتوي على عامودين SUBJ_ID , SUBJ_NAME ومن ثم ندخل البيانات .
3- جدول بإسم SUBJ ويحتوي على 3 أعمدة STUD_ID , SUBJ_ID , SUBJ_NAME ونتركه فارغاً لأن بياناته سندخلها من الشاشة .
وبعد ذلك نعمل ربط CONSTRAINT بين الجدول SUTD و SUBJ من خلال الحقل STUD_ID في كلا الجدولين .

ومن خلال الفورم بلدر سوف نبني شاشة مكونة من بلوك STUD وبلوك SUBJ ونربط البلوك الثاني بـ LOV للمواد SUBJ_CODE

والفكرة في هذا الدرس أن أي مادة أدخلها لطالب معين لاتظهر في LOV وتعطيني فقط المواد التي لم يتم اختيارها , وتتم هذه الطريقة من خلال كتابة الكود التالي في RECORD GROUP

SELECT ALL SUBJ_CODE.SUBJ_ID, SUBJ_CODE.SUBJ_NAME
FROM SUBJ_CODE WHERE
SUBJ_ID NOT IN (SELECT SUBJ_ID FROM SUBJ   WHERE
SUBJ.STUD_ID = :STUD.STUD_ID)

خصائص متقدمة في RECORD GROUP.rar

  • بعد 2 أسابيع...
بتاريخ:

:)

أنا كنت من شغلي القديم مجمعة كودات زي مانت عامل هون

بس الفلاشه الي عليها كلشي صابها فيروس ولشي راح

اتحرق دمي صراحه بالأول بس الحمدلله لقيت كودات شبهها

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

بتاريخ:

شنو هاي الاقام الي تستخدمها بالكود زي<pre class="prettyprint">'واي اصدار من الاوركل عمل تشتغل</pre>

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

شنو هاي الاقام الي تستخدمها بالكود زي<pre class="prettyprint">'واي اصدار من الاوركل عمل تشتغل</pre>

آسف على التأخر في الرد , لي فترة مادخلت على المنتدى .

بالتسبة للكود المذكور ماأدري انتي من وين جبتيه يعني ماليش دعوة فيه .

وأنا استخدم 10g data base & dev 6i
بتاريخ:

create_record;
declare
x number;
begin

select to_date(sysdate,'dd-mm-yyyy'),
nvl(max(emp_COUNT),0)+1 into :date_h,x
 from dual,emp;
:emp_count:=x;
:emp_ser:=x ||'/'||:date_h;
end;



والله هادا كود موجود بالمشاركه رقم 27
شوف الأرقام 39#

بتاريخ:

لأ لأ في شي غلط الكود هلأ وضح بس مشاركاتك القديمه مش هيك بتظهر عندي

هادا السطر emp_ser:=x ||'/'||:date_h;

بيظهر هيك :emp_ser:=x || ' ; / ' ; ||:date_h

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

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

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

وكل عام وانتم بخير

الدرس السادس عشر : طريقة عمل LIST ديناميكية

راح يكون شغلنا على الجدولين EMP & DEPT من اسكيما SCOTT/TIGER

من الفورم بلدر ننزل حقل رقم القسم من جدول الاقسام ونضعه بالأعلى ومن ثم نضيف الحقول من جدول الموظفين على أن يكون البلوك تابلور طبعاً بعد

ما نربطه بجدول الاقسام من خلال حقل DEPTNO .

ثم نقوم بتحويل حقل رقم القسم في بلوك الاقسام الى LIST ITEM ومن الخاصية Elements in list نضع القيمة التالية

ALL_DEPARTMENT

ومن الحدث WHEN-LIST-CHANGED نكتب الكود التالي :

GO_BLOCK('EMP');
EXECUTE_QUERY;
GO_BLOCK('DEPT');



ومن الحدث الخاص بالقورم WHEN-NEW-FORM-INSTANCE نكتب الكود التالي :

declare
RR recordgroup;
n number;
begin
RR:=create_group_from_query('QQ','select  dname,to_char(deptno)from dept');
n:=populate_group(RR);
populate_list('dept.deptno','QQ');
end;



مع تمنياتي للجميع بالتوفيق
وتقبلوا تحياتي

LIST_DYNAMIC.rar

  • بعد 4 أسابيع...
بتاريخ:

رائع ألف شكر لحضرتك

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

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

الدرس السابع عشر : طريقة إخفاء Url من خصائص shotcut الخاص بالمشروع

أي برنامج للأوراكل يعمل له إختصار على سطح المكتب لسرعة الوصول ولايمكن الدخول عليه حتى يتم كتابة المسار و كتابة user_name و password

التابعة لقاعدة البيانات في خصائص shotcut حتى نستطيع الدخول على الشاشة الرئيسية للبرنامج , ولكن عيب هذه الطريقة أنها تكون مكشوفة للعميل

. وفي هذا الدرس سنتعلم الطريقة الأفضل والآمنة .

من شاشة الدخول على النظام في الفورم بلدر نضيف trigger on_logon ثم نكتب الكود التالي :

logon('scott','tiger'||'@'||'orcl');



وهذا الكود يفتح على اسكيما scott/tiger وقاعدة البيانات orcl .

ومن خصائص shotcut الخاص بالمشروع وفي خانة targer أو الهدف نكتب مسار البرنامج , مثال

C:\orant\BIN\ifdbg60.EXE D:\scott\logon.fmx

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

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

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

الدرس الثامن عشر : بناء شاشة استعلام

في هذا الدرس سنقوم بعمل شاشة استعلام ندخل فيها رقم القسم لتظهر بيانات الموظفين التابعين للقسم .

أولاً : من module في الفورم بلدر نضيف بلوك بإسم srsh غير متصل بقاعدة البيانات ثم نضيف فيه text_item بإسم deptno

ومن النوع Number و Database item = no , ومن الحدث (trigerr : key-next-item)

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

next_block;
execute_query;



ثانياً : نضيف بلوك emp من الجدول emp في اسكيما scott نختار الحقول المطلوبة ومن ضمنها deptno ومن خصائص البلوك emp

نذهب إلى الخاصية Where clause ونكتب بداخلها الشرط التالي :

emp.deptno = :srsh.deptno



وعند تنفيذ الفورم ندخل رقم القسم في البلوك srsh ثم enter ينتقل المؤشر إلى البلوك emp ثم تعرض البيانات .

شاشة استعلام.rar

  • بعد 4 شهور...
بتاريخ:

مشششششششششششششششششششششكور على المجهود الرائع

  • بعد 6 شهور...
بتاريخ:

شكراً جزيلاً
اتمنى ان يكون ذلك في ميزان حسناتكم

  • بعد 4 شهور...
بتاريخ:

شكراً جزيلاً

بتاريخ:

جزيت خيرا

  • بعد 6 شهور...
بتاريخ:

بارك الله فيك

بتاريخ:

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

  • بعد 1 سنة...
بتاريخ:

جزاك الله خير

  • بعد 3 أسابيع...
بتاريخ:

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

 

الدرس الثامن عشر : بناء شاشة استعلام

 

في هذا الدرس سنقوم بعمل شاشة استعلام ندخل فيها رقم القسم لتظهر بيانات الموظفين التابعين للقسم .

 

أولاً : من module في الفورم بلدر نضيف بلوك بإسم srsh غير متصل بقاعدة البيانات ثم نضيف فيه text_item بإسم deptno

 

ومن النوع Number و Database item = no , ومن الحدث (trigerr : key-next-item)

 

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

 

next_block;
execute_query;
ثانياً : نضيف بلوك emp من الجدول emp في اسكيما scott نختار الحقول المطلوبة ومن ضمنها deptno ومن خصائص البلوك emp

 

نذهب إلى الخاصية Where clause ونكتب بداخلها الشرط التالي :

 

emp.deptno = :srsh.deptno
وعند تنفيذ الفورم ندخل رقم القسم في البلوك srsh ثم enter ينتقل المؤشر إلى البلوك emp ثم تعرض البيانات .

مجهود رائع وشرح ممتاز 

بتاريخ:

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

 

أخوكم مبتدأ في الأوراكل ومن قبل كم شهر بدأت بالتطبيق والبركة بهذا المنتدى الكريم

 

حيث استفدت كثيراً وأعطاني الثقة في نفسي وقد اتفقت مع إحدى الشركات لعمل نظام خاص

 

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

 

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

 

أخوكم/ فؤاد عبده

 

 

 

بعد أربعه سنوات من المشاركة الاولى .... والإجتهاد والمساهمة في إفادة الأخوة الأعضاء من خلال عرض ثمانية عشر درسا 

ولازالت الدعوات مستمرة لك ولوالديك ... وسوف تستمر إن شاء الله 

 

اللهم تقبل عمله ... صدقة جارية منه ولوالدية ولأسرته ولكل من له حق علينا 

اللهم أمين 

 

اللهم تقبل عمل كل من ساهم بحرف أو كلمة أفاد وساعد بها الآخرين ونفع بها الأمة الإسلامية 

وبارك له في صحتة ورزقة وأهلة 

  • بعد 3 أسابيع...
بتاريخ:

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

  • بعد 1 شهر...
بتاريخ:

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

  • بعد 2 شهور...
بتاريخ:

جزاك الله خيراً وربنا يجعله في ميزان حسناتك

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

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

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

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

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

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.