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

دروس متواضعه حول Forms

Featured Replies

بتاريخ:

شكرا اخي علي اهتمامك ولكن لم افهم كود الEdit و ال Save وال ايز افهم الProcedures لو تسمح وشكرا

  • الردود 52
  • المشاهدات 16.7k
  • البداية
  • اخر رد

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

بتاريخ:

السلام عليكم ورحمة الله وبركاته
اخي الكريم / محمد الحيلان

اذا ممكن رفع الفورم الخاص بالمشروع على اي سيرفر
لكي يكون فيه فائدة لجميع الاعضاء
وشكراً

بتاريخ:

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

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

احبتي
السلام عليكم ورحمة الله وبركاتة:-
ستجدون ال FORM.FMB
على هذا الموقع
http://www.4shared.com/dir/1530972/3990630/sharing.html

تحياتي ،،،،

بتاريخ:

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

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

بتاريخ:

جزاك الله خيراً
عندى مشكله فى الكود إنه مقلوب وبعدله بصعوبه على التيكست فهل هناك طريقه أسهل
ثانياأ أنا كمبتدىء عندى مشكله فى فهم الكثير من أجزاء الفورم فلو فى إمكانيه لشرح كل جزء على حدى ستكتمل الفائده
تحياتى

بتاريخ:

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

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

احبتي اعضاء منتدانا الرائع الذي تعلمنا منه الكثير والكثير بفضل الله ثم بفضل جهود القائمين عليه
وانني بصراحة فخور بهذا المنتداى
السلام عليكم ورحمة الله وبركاتة :-
سوف احاول انشاء الله على تقسيم المشروع الى اجزاء شرحا وصورة
مع ملاحظة ان ال FORM.FMB بأسم button
تم رفعة على هذا الرابط
http://www.4shared.com/dir/1530972/3990630/sharing.html

تحياتي،،،،،

بتاريخ:

الف شكر للأخ العزيز ولكن اريد ان اوضح ان لدي مشكلة فى الجمل الاتية فى الكون
disable_navigable;
fetch_record('FIRST');
هل هناك مايفيد هذة الكواد فى البروجرم يونت ام لا


نسيت ان اوضح انى استعمل devloper 6i

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

اخي Ahmed El Kilnay
السلام عليكم ورحمة الله وبركاتة :-
بالنسبة ل disable_navigable;
فهذا اجراء PROCEDURE عادي وعملة لجعل بعض الازرار Bush Buttons enabled=FALSE أي غير فعالة بالكود عند التشغيل وليست وقت التصميم عن طريق الخاصائص اذ انه وقت التصميم يبقى ثابت 0
متى نستخدم هذا الاجراء ؟؟
نستخدمه اذا ضغط المستخدم على زر تعديل وزر جديد تكون ازارار الاول – والتالي – والسابق- والاخير غير فعالة 00
اما بالنسبة لـ fetch_record('FIRST'); ايضا هذا اجراء عادي وعمل هذا الاجراء
بشكل عام انه عندما يضغط المستخدم على زر الاول يختار اصغر رقم ويضعه في المتغير المسمى :global.prmkey_col ويتم نسخة الى التكست المسماة dummy_item واذا ضغط على زر التالية يختار اكبر من الرقم الموجود في dummy_item وهكذا والعكس صحيح في زر السابق وذا ضغط المستخدم
على زر الاخير يختار اكبر رقم وهذه العملية تتم عن طريق هذا الاجراء بعد ان تمر على زناد PRE-FORM لانها تتغير في المتغير المسمى :global.prmkey_col
اما لماذا هذا الكود هكذا fetch_record('FIRST'); فانت طبعا تعرف هذا الكود
Do_Key('First_Record');
Do_Key('Lastt_Record');
Do_Key('Next_Record');
Do_Key('Previous_Record');
فنحن استعرنا هذا الاجراء بدل الكود السابق وهذه من اوامر PL/SQL Option
نعم يفيد وممكن على أي اصدار من oracle ومجرب على 10g
هذا على حد علمي والله اعلم،،
بالتوفيق،،،،

بتاريخ:

[email protected]

شكـــــراااااااااا على االدروس وجزاك الله ألف خير :) :rolleyes: :)

بتاريخ:

اخي محمد علي الحيلان جزاك الله كل خير علي هذه الدروس المفيدة.
ولو تسمح اريد ان افهم كود ال edit و الsave
وشكرا

بتاريخ:

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

ايهاب وجدى

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

الاخ poor
السلام عليكم ورحمة الله وبركاتة:-
كل عام وانت وجميع الاعضاء بخير0
ارجو المعذره على التاخير
شرح كود EDIT
عند الضغط على امر EDIT يحدث الاتي :-

Declare
هنا عرفنا المتغير CT على انه عملية منطقية False او True هذا المتغير اساسا موجودفي الوظيفة check_dup_val وفي هذه الوظيفة من المفروض ان تكتب جملة select الاتية
على سبيل المثال
Select 1 into del from dept where DEPT.DEPTNO = :DEPT.dummy_item;
من اجل ان ترجع الوظفية بالخطاء او الصحيح (( حتى تتضح حالة السجل ))
فان كانت ( خاطئة ) رسالة 000 وان كانت صحيحة يبقى السجل مهيأ للتعديل0 كما سيأتي
Begin ابداء
هنا جعلنا الامر EDIT :global.option := 'EDIT'; على انه خيار عام لانه يوجد في لغة PL/SQL خيار عام ممكن نستعملة لاي امر او أي عملية اخرى
--
اذهب الى بلوك go_block('block2');
نفذ الاجراء disable_button; هذا الاجراء مهمته ان يجعل الازرار تعديل – جديد – وحذف – والخروج غير فعالة false
--
نفذ الاجراء disable_navigable هذا الاجراء مهمته ان يجعل ازرار – الاول والتالي والسابق والاخير غير فعالة false
--
اجعل ازرار حفظ والغاء – نشطة true
--
اجعل المتغير CT ياخذ خيار الوظيفة العام ct:=check_dup_val(:global.option);
--
استخدم جملة IF
اذا كان CT False عرض رسالة0000000
والا
نفذ الاجراء enable_DEPT; ومهملة هذا الاجراء ان يجعل بلوك DEPT وبلك EMP نشط قابل للتعديل
--
اجعل ال ITEM المسماة dummy_item غير نشطة حتى لايكتب بها المستخدم شيء
--
اذهب الى البلوك go_block('DEPT');
--
اجعل المتغير :global.query_val ياخذ قيمة dummy_item
لماذا حتى يجلب السجل الذي تم اجراء التعديل عليه مرة اخرى0
ويعرض رسالة تم حفظ التعديل الموجودة في زناد ON-MESSAGE
--
النهاية END
وكما تعرف ياخي ان التعديل والتعامل مع البلوك سهل ليس كمثل FORM_DDL
اذ بها الزام عليك ان تجلب السجل وتقف عليه حتى تتمكن من التعديل ب SQL
--
بالتوفيق ،،،
يتبع انشاء الله شرح كود SAVE

بتاريخ:

جزاك الله كل خير اخي الحبيب
ومنتظرين SAVE

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

شرح كود SAVE
declare
return_stat boolean;
هنا عرفنا حالة السجل بانه عملية منطقية صحيح او خاطي FALSE or TRUE
والمتغير هذا موجود ضمن الاجراء check_valid ومهمتة ان يشيك على حالة السجل
المعروض --- فيه سجل والا مافية سجل ؟؟؟؟؟
ابداء begin
استخدم IF للتأكد
اذا كان الخيار العام :global.option يساوي NEW أو EDIT بمعنى هل ضغط المستخدم على احد الزرارين السابقين نعم ضغط OK
والا
اجعل اجعل كود الزناد باطل فاشل
ELSE
raise form_trigger_failure;
نعم ضغظ
نفذ الاجراء المسمى check_valid(return_stat);
استخدم IF مرة اخرى
اذا كان الخيار العام :global.option يساوي NEW وفي نفس الوقت تم تنفيذ الاجراء واتضحت حالت السجل return_stat
ابداء مرة ثانية BEGIN
ملاحظة هامة – هناء تبداء عملية اضافة سجل جديد وتنتهي ب END
--
اختار اكبر رقم وضف عليه واحد وادخله في ال dummy_item
تم اجعل حقل المفتاح الاساسي يساوي dummy_item
ملاحظة --- اوستخدم SEQUANCES انت بالخيار ------
استثناء
ا ذا لم تجد سجلات رسالة 00000
EXCEPTION
نهاية
ب BEGIN الثانية
المستخدم عبا الحقول ملها بالبيانات ونحن اخذنا اكبر رقم وزدنا عليه واحد للترقيم التلقائي
او ان المستخدم عدل في البيانات اذا تحقق احد الشرطين
OK
استخدم IF مرة اخرى
اذهب الى البلوك الاساسي go_block('DEPT');
احفظ البيانات ثبتها commit_form; سواء جديد او تعديل لاننا اعطينا المستخدم خيارين في البداية0
--
استخدم IF مرة اخرى
اذا كان الخيار العام :global.option يساوي NEW أي تحقق الشرط الاول
اعرض للمستخدم رسالة تظهر الرقم الجديد الموجود في dummy_item
نهاية IF القريبة
--
نفذ الاجراء default_button ; الذي يجعل الازرار نشطة
اذهب الى زرار NEW --- GO_ITEM('BUTTON.new');
--
نفذ الاجراء disable_DEPT; لجعل البلوك الاساسي نشط
--
اجعل التكست dummy_item نشطة وقابلة للكتابة
--
اجعل العلم او المميز العام غير نشط :global.flag := 'FALSE';
--
اجعل المتغير العام للبحث يساوي دمي ايتم :global.query_val := :DEPT.dummy_item;
--
جعل الايتم المسماة ريس استات قيمتها فاشلة :DEPT.rec_stat := 'VALID';
وهذا الايتم نضع بها حالة السجل المعروض
--
اجعل الخيار العام يساوي زرار سيف :global.option := 'SAVE';
--
هذا الذي استطيع تقديمة ولست موهوب في ايصال المعلومة بالطريقة العلمية وانما شرحت على قدر علم ومعرفتي 0
وانني ارجو وبكل صراحة وليه الشرف ان يتفضل احد الاخوة بشرح الكود بطريقة افضل
لان استاذي غير موجود حاليا يحفظه الله
وكما قيل(( ليس من العيب ان تسأل ولكن العيب الاصرار على الخطاء ))
(( وسالوا اهل الذكر ان كنتم لاتعلمون )
بالتوفيق للجميع ،،،

بتاريخ:

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

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

اهلا وسهلا فيك ياخي POOR
انا من المملكة العربية السعودية
الرياض
ولك تحياتي وتقديري ،،،،،

بتاريخ:

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

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

شكراً أخي الكريم محمد علي الحيلان وجزاك الله خيراً
لكن لدي أسئلة منها أنا أعمل على developer 6 والتابع check_dup_val هي غير موجودة ممكن شرح هذه التعليمة مفصلاً وأعطائي التابع المقابل لها في developer 6

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

اخي / Mouhamad
السلام عليكم ورحمة الله وبركاتة :-
آسف ياخي لم أرى مشاركتك حيث مرت ولم اشاهدها في ذلك اليوم
بالنسبة لسوالك
فانني ياخي لم افهم غير موجودة check_dup_val على العموم
هذه function وظيفة تعود بقيمة من نوع boolean اذا مررت لها مؤشر صريح حسب الحاجة
كما هو موضح في التعليق داخل الوظييفة
please write table name ,primary key column and delete column in real palce
بالتوفيق

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

بارك الله فيك وانار لك طريق الهداية

بتاريخ:

مشكور اخي وجزاك الله خير
والمزيد من الدروس المفيده

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

جزاك الله ألف خير و جعل ذلك في ميزان حسناتك و نتمنى المواصلة و الاستمرار في العطاء

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

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

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

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

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

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.