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

Tabular Form On Apex حلول ومشاكل

Featured Replies

بتاريخ:

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

الكثير منا جرب التعامل مع Tabular Form  وأعتقد الجميع يتذكر أول مرة تعامل فيها مع Tabular Form  وكم المشاكل التي واجهها ، والكثير منا مازالت تواجهه هذه المشاكل ، إما لعدم دراية وقلة بحث أو لصعوبة الامر ، حتى أن بعض أصدقائي صرح لي يوما أنه لا يستخدم Tabular Form على الإبكس للابتعاد عن حجم مشاكله التي تأخذ منه الكثير .

في هذا المقال الهام سوف أستعرض اغلب المشاكل وحلها التي تواجه مطور الابكس عند استخدامه  فروم من نوع Tabualr Form  .

المشكلة الاولى : Tabular Form  لا يقبل ب join 

نعم هذه حقيقه وربما مطوري الفورم بيلدر يستغربون من هذا الأمر ، وسمعنا كثيرا ان الإصدارات القادمة سوف تعالج هذا الأمر منذ إصدار فيرجن apex 4  وحتى الاصدار apex4.2.4  لم تتم معالجة هذا الأمر والسبب بالتأكيد ان الابكس لا يقبل باكثر من عملية DML  على أكثر من جدول في نفس الصفحة طالما استخدمت process wizard .

حل المشكلة : يمكنك التغلب على هذه المشكلة بأن تقوم بعمل view  على كل الجداول التي تريدها ثم تبني Tabular Form  على هذه View ، وبالتالي سيكون هناك process  واحده على اكثر من جدول .

 

المشكلة الثانية : Tabular Form  لا يقبل إلا بواحد فقط على الصفحة

وهذه حقيقة أخرى طالما تريد ان تستخدم Tabular Form Wizard ، وأيضا هناك وعود من مديري ابكس ان تعالج هذه المشكلة في الإصدار APEX 5  ، رغم أن مطوري الابكس ينادون بهذا الأمر من الاصدارات 3 ولم يتغير شئ ، كن بالتأكيد هناك حل .

حل المشكلة : استخدام Manual Tabular Form  وهو الحل المجدي والمثمر لهذه المشكلة برغم انه يؤثر كثيرا لعى أداء الصفحة خصوصا لو بها حجم بيانات كبيرة في كل فورم إلا أنه مازال الحل الأفضل ، ولا أرجح حلول أخرى نتعامل بها مع Regions  بأن نغير في Template Page  كلها حلول غير مجدية ولن تثمر في التعامل مع صفحة بها أكثر من فورم ، يمكننا استخدام Manual Tabular Form  من خلال الشئ العبقري APEX API Item  مثال على ذلك

SELECT apex_item.checkbox (30,
                           EMPNO,
                           'onclick="highlight_row1(this,' || ROWNUM || ')"',
                           NULL,
                           ':',
                           'f30_' || LPAD (ROWNUM, 4, '0')
                          ) delete_checkbox,
     EMPNO ,
 apex_item.hidden (31, EMPNO) 
 apex_item.text(34,ENAME,5) ENAME
FROM EMP 

ارجو مراجعة الرابط التالي

http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_item.htm#CHDEBCCI

 

المشكلة الثالثة : Cascade Select list لا تعمل على Tabular Form

لو عندي مثلا اكثر من select list  واحدة بها كل الادارات واحتاج عندما أختار إدارة معينة ان تأتي بالموظفين في هذه الإدراة بالSelect  الأخرى .. كلام منطقي جدا لكن للأسف Tabular Form  لا يدعم هذا الأمر على خصوصا الذين تعاملوا مع Form  العادية يجدون هذا الأمر سهل جدا في التعامل مع Items  لكن الامر غير مدعوم هنا في Tabular Form  .

حل المشكلة : هناك حلولا كثيرا جدا من بينها أن نستخدم where condition  داخل manula tabular form  على الليست الاخرى ، لكن الكثير منكم يريد ان يظل على Tabular Form Wizard  لذا هناك حل سريع ومجدي جدا ولا يؤثر على Performance  يقدمه لكم المدون والعبقري Jari  يمكنك متابعته من هنا

http://dbswh.webhop.net/apex/f?p=BLOG:READ:0::::ARTICLE:2003800346210117

 

هناك مشاكل وحلول اخرى يمكن ان نستعرضها في مواضيع اخرى عن Tabular Form  مثل Get Maulti Value From Select list or POP LOV 

أو ربما كل هذه المشاكل تحل في الإصدار المنتظر APEX 5

 

دمتم بخير

 

 

 

بتاريخ:

جزيل الشكر ..على المعلومة وعلى الإفكار التي ذكرتها حضرتك 

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

جزيل الشكر ..على المعلومة وعلى الإفكار التي ذكرتها حضرتك 

شكرا للمرور

بتاريخ:

بارك الله بيك

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

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

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

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

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

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.