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

كيفية تغيير خاصية Disabled من خلال ناتج Method يقوم بعملية Query معينة

Featured Replies

بتاريخ:

السلام عليكم
أنا لدي جدولين أساسي/فرعي وهما مبنيان على صفحة واحدة على شكل table/table
يوجد مفتاح ضمن الجدول الرئيسي يقوم بعملية حذف السجلات من الجدول الرئيسي
المطلوب:
جعل هذا المفتاح غير فعال (Disabled=true) في حال يوجد سجلات فرعية للسجل المحدد ضمن الجدول الرئيسي
وبالتالي جعله فعال في حال كان لا يوجد سجلات فرعية للسجل المحدد ضمن الجدول الرئيسي

أرجو الحل النموذجي من الخبراء

بتاريخ:

بفرض ان اسم (Iterator) الخاص بالسجلات الفرعية هو DetailView1Iterator

#{bindings.DetailView1Iterator.estimatedRowCount != 0}

بتاريخ:

الاخ /mhawad

من ناحية الحل فالحل اللى عطهولك الاخ / miro_aer صحيح يعنى حتضع ال EL expression اللى كتبهولك على مفتاح ال Delete وكمان خلى ال partial trigger للمفتاح هو ال ID الخاص بال Master Table وبكده كل ما المستخدم يتنقل بين الRows مفتاح الحذف سيحدث له refresh من جديد

ده بالنسبة للحل ولكن بوجه عام ما تريد تطبيقه حيسبب لك مشاكل فى بيئة ال multi_User Environment ودى بيئة الويب بمعنى انك عندك عدد من المستخدمين المتزامنين ما هو الحال اذا كان فى مثلا users 2 شايفين فى نفس الوقت نفس ال master و ال delete معموله active وبعدين احد المستخدمين أضاف detail لل master ولسه معملش commit ؟؟؟؟

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

مشكور أخ / miro_aer


ده بالنسبة للحل ولكن بوجه عام ما تريد تطبيقه حيسبب لك مشاكل فى بيئة ال multi_User Environment ودى بيئة الويب بمعنى انك عندك عدد من المستخدمين المتزامنين ما هو الحال اذا كان فى مثلا users 2 شايفين فى نفس الوقت نفس ال master و ال delete معموله active وبعدين احد المستخدمين أضاف detail لل master ولسه معملش commit ؟؟؟؟


مشكورة أخت هالة
بس المشكلة التي تتحدثين عندها هي مشكلة قائمة سواء استخدمت هذا الحل أو لم أستخدمه وطريقة معالجتي لها هي (كما أعتقد) تكون بإحدى طريقتين:
1- أن أقوم بإجراء استعلام للتأكد من عدم وجود سجلات ضمن الجدول الفرعي قبل إتمام عملية الحذف للسجل في الجدول الرئيسي (أي ضمن doDML() كما هو معروف).
والفكرة التي كنت أحاول أن أنفذها هي هل يمكن أن أجعل هذا الاستعلام ضمن ميثود معينة يعيد قيمة بوليانية بحيث نعرف هل يوجد سجلات فرعية أم لا لسجل الجدول الرئيسي المحدد ومن ثم نقوم باستدعاء هذا الميثود (بطريقة ما لا أعرفها) ضمن خاصية Disabled لمفتاح delete.

2- أن لا أعمل شيء وبالتالي ستظهر رسالة خطأ افتراضية من قاعدة البيانات تدل على وجود FK مرتبط مع PK الحالي.
بتاريخ:

أسرع طريقة هي التأكد من وجود Foreign Key ومن ثم يمكنك إظهار رسالة أن هذا السجل مرتبط ببيانات أخرى

بتاريخ:

الاخ /mhawad

من الواضح ان فكرتى لم تصل اليك انا هنا لا اتحدث عن انك ازاى تمنع مسح master وهو له detail لان الموضوع ده ال framework بيعمله لوحده وكمان عندك العديد من الطرق السهله اللى ممكن تعملها بنفسك وابسطها هو عمل override على الداله remove فى ال master Entity

اما الفكرة الاساسيه اللى قصدتها ان المتطلب الخاص بال Disable وال Enable لن يعمل بشكل صحيح فى حالة التزامن لان الdelete حيبقى Enable رغم وجود Details فى ال cache ولم يحدث لها commit والعكس صحيح فى حالة ال disable

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

اما الفكرة الاساسيه اللى قصدتها ان المتطلب الخاص بال Disable وال Enable لن يعمل بشكل صحيح فى حالة التزامن لان الdelete حيبقى Enable رغم وجود Details فى ال cache ولم يحدث لها commit والعكس صحيح فى حالة ال disable


أنا في الحقيقة فهمت قصدك منذ البداية ولكني كنت أرغب بتغيير حالة مفتاح الحذف فقط كخطوة استباقية على سبيل (friendly user interface) وحتما سوف أعالج عدم السماح بالحذف في حال يوجد سجلات فرعية (تم ادخالها من قبل مستخدم آخر).
  • بعد 1 شهر...
بتاريخ:

اخواني بحب استغل اجتماع خبراء الإي دي إف في هذا الموضوع علشان عندي سؤالين مش لاقيلهم حل.

السؤال الأول: عملت كونكشن بالجي ديفيلوبر على داتابيس قديمة بكراكترسيت AMERICAN_AMERICA.AR8ISO8859P6 المشلكة إن الداتا بتطلع غير مقروءة ومش عارف إيه الحل.

السؤال التاني: عايز أعرف إيه البديل للأوراكل ديزاينر في الـ إي دي إف.

بتاريخ:

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

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

أما في حال كنت تقصد أنك كنت تستخدم أوراكل ديزاينر لتصميم واجهات الفورم ديفيلوبر فأعتقد أن البديل في adf هو باستخدام الأداة Jheadstart التي تقوم بتحويل الـ views إلى صفحات jsf

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

الاخ /mhawad

من ناحية الحل فالحل اللى عطهولك الاخ / miro_aer صحيح يعنى حتضع ال EL expression اللى كتبهولك على مفتاح ال Delete وكمان خلى ال partial trigger للمفتاح هو ال ID الخاص بال Master Table وبكده كل ما المستخدم يتنقل بين الRows مفتاح الحذف سيحدث له refresh من جديد

ده بالنسبة للحل ولكن بوجه عام ما تريد تطبيقه حيسبب لك مشاكل فى بيئة ال multi_User Environment ودى بيئة الويب بمعنى انك عندك عدد من المستخدمين المتزامنين ما هو الحال اذا كان فى مثلا users 2 شايفين فى نفس الوقت نفس ال master و ال delete معموله active وبعدين احد المستخدمين أضاف detail لل master ولسه معملش commit ؟؟؟؟


السلام عليكم
اين اضع هذ ال expreesion في خصائص الزار ياباشمهندسة

جزاكم الله خيرا
بتاريخ:

فى خاصية disabled الخاصه بال button

بتاريخ:

الاخ /mhawad

من ناحية الحل فالحل اللى عطهولك الاخ / miro_aer صحيح يعنى حتضع ال EL expression اللى كتبهولك على مفتاح ال Delete وكمان خلى ال partial trigger للمفتاح هو ال ID الخاص بال Master Table وبكده كل ما المستخدم يتنقل بين الRows مفتاح الحذف سيحدث له refresh من جديد

ده بالنسبة للحل ولكن بوجه عام ما تريد تطبيقه حيسبب لك مشاكل فى بيئة ال multi_User Environment ودى بيئة الويب بمعنى انك عندك عدد من المستخدمين المتزامنين ما هو الحال اذا كان فى مثلا users 2 شايفين فى نفس الوقت نفس ال master و ال delete معموله active وبعدين احد المستخدمين أضاف detail لل master ولسه معملش commit ؟؟؟؟



السلام عليكم

شكرا باشمهندسة حالة شكرا اخي miro_aer

اشتغلت معي كويس
لكن السؤال
ماذا لو الجزء الماستر ليس ب table انا ساحبه على شكل form
ماذا اجعل قيمة ال partial trigger

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

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

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

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

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

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

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.