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

بتاريخ:

السلام عليكم
أنا عندي أبليكيشن موديول يحتوي خمسة views
وهي مصممة كجداول ضمن خمسة صفحات من نوع فريجمنت وذلك لوضعها ضمن region
يتم التنقل بين هذه الصفحات من خلال بوتون موجودة على الصفحة الرئيسية التي تتضمن region
ويتم عمل تعليمات الإضافة والتعديل والحذف على الجداول ضمن هذه الصفحات بشكل صحيح تماما
المطلوب:
كيف يمكنني أن أمنع التنقل بين الصفحات في حال كان هناك عمليات dml منفذة على أحد هذه الصفحات ولم يتم تنفيذ تعليمة commit بعد
حيث يجب منع الانتقال إلى صفحة أخرى وإظهار عبارة مثل "يجب حفظ التغيرات أولا"

الرجاء المساعدة من الخبراء مع الشكر

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

بتاريخ:

السلام عليكم
أنا عندي أبليكيشن موديول يحتوي خمسة views
وهي مصممة كجداول ضمن خمسة صفحات من نوع فريجمنت وذلك لوضعها ضمن region
يتم التنقل بين هذه الصفحات من خلال بوتون موجودة على الصفحة الرئيسية التي تتضمن region
ويتم عمل تعليمات الإضافة والتعديل والحذف على الجداول ضمن هذه الصفحات بشكل صحيح تماما
المطلوب:
كيف يمكنني أن أمنع التنقل بين الصفحات في حال كان هناك عمليات dml منفذة على أحد هذه الصفحات ولم يتم تنفيذ تعليمة commit بعد
حيث يجب منع الانتقال إلى صفحة أخرى وإظهار عبارة مثل "يجب حفظ التغيرات أولا"

الرجاء المساعدة من الخبراء مع الشكر


Warning of Uncommitted/Unsaved Changes in ADF Faces Pages
بتاريخ:
  • كاتب الموضوع

مشكور أخ ahmniny
كلامك صحيح في حال الإنتقال من صفحة إلى أخرى أو عند إغلاق المستعرض
ولكن حالتي هي أنني أريد الانتقال من فريجمنت إلى آخر ضمن نفس الصفحة الرئيسية أي ضمن region
وقد شاهدت فيديو للأخ مصطفى يعرض فيه رسالة تنبيه خاصة لهذه العملية
ولكن لم يتحدث ضمن الدورة عن كيفية عملها
لذلك أرجو منه أن يتفضل بشرح هذه الآلية إذا أمكن (أو أي شخص يعرف ذلك)
ولكم الشكر

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

مشكور أخي رح جرب اللينك

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

لو حللنا الموضوع حتلاقى ان اسنخدام ال UnCommited Data Warning لن يفلح باى حال من الاحوال لانك بتتعامل مع Fragment وليس مع Document ولكن السؤال هنا كيف يتم الانتقال من Fragment الى اخر وهل تقصد عدد من الFragments فى نفس التاسك فلو ام ان ال Fragments كلها فى Task flows مختلف وبتعملهم Drag فى الصفحة عن طريق Dynamic Region عموما سواء باى حالة من الحالتين اذا كنت بتعمل ال Navigation عن طريق Managed Bean فكل اللى عليك ان فى الكلاس نفسها حتعمل Check على getApplicationModule.isDirty()

لو الميثود دى رجعت true بمعنى ان حدثت تغييرات فى الصفحة اظهره رسالة بحفظ التغييرات اولا لو رجعت false اذهب على ال Fragment على طول

مثال

احصل على الابليكيشن موديول عن طريق الميثود الاتيه


private ApplicationModule getApplicationModule(String dataProvider) {
	FacesContext fc = FacesContext.getCurrentInstance();
	Application app = fc.getApplication();
	ExpressionFactory elFactory = app.getExpressionFactory();
	ELContext elContext = fc.getELContext();
	ValueExpression valueExp = elFactory.createValueExpression(elContext, dataProvider, Object.class);
	  
	return (ApplicationModule)valueExp.getValue(elContext);
}



اعمل Check على وجود تغييرات عن طريق الميثود الاتيه

   private boolean pendingChangesExist() {
    return this.getApplicationModule("#{data.AppModuleDataControl.dataProvider}").getTransaction().isDirty();
   }



وبعدين فى الميثود اللى بتعمل من خلالها ال Navigation الى Fragment مختلفه بتقوله


public String departmentsflow() {
	if (!this.pendingChangesExist()) {
		make navigation-
	} else {
		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Save Pending Changes !", null));
	}
	return null;
}

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

مشكورة أخت هالة هذا هو الشغل وإلا بلا (مع الشكر لجميع المشاركين في هذا المنتدى الرائع)
في الحقيقة هذا هو الكود الذي كنت أبحث عنه وقد أدى الغرض على أكمل وجه ولكن لدي بعض التساؤلات إذا سمحت:
1- لماذا هذا الإختلاف في حل مشكلة عامة مثل هذه المشكلة هل لأن المثود getApplicationModule().getTransaction().isDirty() لم يكن موجود في النسخ السابقة أم ماذا؟؟
2- ظهرت مشكلة صغيرة وهي أنني عندما أقوم بتغيير بيانات أحد السجلات ضمن فريجمنت معين ولا أضغط على المفتاح enter أو لا أقوم بنقل المؤشر إلى سجل آخر، ثم أقوم مباشرة بمحاولة الانتقال إلى فريجمنت آخر عندها لا يشعر بوجود تعديل على الفريجمنت الأول وينتقل إلى الفريجمنت الثاني بدون رسالة التحذير، كيف الحل؟؟؟!!
3- النظام الذي أعمل عليه هو يدعم اللغة العربية والانكليزية والسؤال هو عن كيفية جعل رسالة التحذير انكليزي وعربي وأظهار الرسالة المناسبة وفقا للغة الصفحة الحالية؟

مع الشكر سلفا يا ملكة الــ adf.

بتاريخ:

بالنسبة لسؤالك الاول :لا يوجد اى اختلاف فى حل المشكلة و is data Dirty موجوده فى جميع النسخ لانها ميثود مرتبطة بالابليكيشن موديول اما UnCommited Data Warning هى اللى جديده ظهرت فى النسخ الحديثه من الجى ديف ولها قيود معينة حيث انها تعمل على الصفحات فقط عموما توجد طرق عديده لاظهار هذه الرسائل المهم هو ال Use Case اللى على اساسها بنختار الطريقه

بالنسبة لسؤالك الثانى: الحقيقة لا اعرف سببا لمشكلتك انا جربت عندى وعملت اتنين Task flowsواحد فيه Fragment خاصة بالموظفين واخر فيه fragment خاصة بالاقسام ونزلتهم فى الصفحة الرئيسيه ك Dynamic Region وفى كل navigation Item استدعيت الميثود الخاصة بال navigation وعملت check على isDirty وجربت لقيت ان بمجرد التعديل فى اى input Text دون الضغط على اى شىء سواء enter او tab وعمل ال navigation بتظهر الرسالة فورا عموما تاكد انك بتستدعى ميثود pendingChangesExist على كل ميثود بتقوم فيها بال navigation واذا استمرت المشكلة قولى بالظبط السيناريو والخطوات اللى بتعملها والكود اللى بتكتبة على كل navigation Item

بالنسبة لسؤالك الثالث: لا يوجد اى مشكلة بالنسبة لموضوع اللغه ضع رسالة التحذير فى ال Resource Bundle الخاصة بك ثم قم باستدعاء ال Resource Bundle فى ال managed Bean عن طريق هذه الميثود

private String getValueFromResourceBundle(String resourceBundleName, String key) {
	if (resourceBundleName != null) {
		ResourceBundle resourceBundle = BundleFactory.getBundle(resourceBundleName);
		if (resourceBundle != null && key != null) {
			String value = resourceBundle.getString(key);
			return value;
		}
	}
	return null;
}




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


		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(null,  new FacesMessage(FacesMessage.SEVERITY_WARN, getValueFromResourceBundle("UIResource","key.message"), null));
										  
										  




UIResource اسم ال Resource Bundle
key.message اسم ال Key الخاص بالرسالة

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

مشكورة أخت هالة على ردودك السريعة والكاملة
أما بالنسبة للسؤال الثاني فقد حللت المشكلة (بالتجربة) عن طريق جعل الخاصية في immediate=false navigation Item وجعلها تساوي true في عنصر الجدول table
و لا أعرف إذا كان هذا هو الحل المثالي ولكنه يعمل على كل حال (علما أنني أعمل ضمن region واحد وليس Dynamic Region).
أريد أن اسألك سؤالا يتعلق بنفس الموضوع إذا سمحت :unsure: :
أنا لدي في أحد الفريجمنت جدولين بعلاقة رئيسي/فرعي وأريد أيضاً عندما أقوم بتعديل أحد سجلات الجدول الفرعي ثم أنتقل إلى الجدول الرئيسي وأقف على سجل لا يكون أب للسجل الذي قمت بتعديله ضمن الجدول الفرعي أن تظهر رسالة التنبيه لكي يقوم الموظف بحفظ التعديلات الحاصلة على الجدول الفرعي قبل أن يقوم بالانتقال إلى سجلات مختلفة ضمن الجدول الرئيسي
مع جزيل الشكر والامتنان

بتاريخ:

اولا لا اعرف سبب عمل ال Immediate ب true لل navigation فال default هى false وموضوع عملها ب true بيلغى موضوع ال validation لان ال model لا يحدث له update وبالتالى ال ADF لن تكون قادره على اكتشاف انها Dirty اما ال immediate للجدول فلا داعى له سيبه على ال Default ايضا

من ناحية سؤالك الاخر فما تطلبة هو Strange Behavor لان الفكرة اللى بنعملها هى عمل check على ال Transaction كله وليس على جدول معين حتى نسمح للمستخدم بالتعديل ام لا حسب الRow اللى واقف عليه علاوه على ان ما تطلبه هو فى نفس ال fragment وليس عند ال navigation اعتقد ان لعمل هذا الموضوع تحتاج الى java Script تكون فى ال client Side عشان تقدر تعمل track للتغييرات اللى عملها المستخدم بس للاسف معنديش رابط اقدر اساعدك به لانى لم اجربه ولا احبذ استخدام الجافا سكريبت لعمل ال track

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

اعتقد ان لعمل هذا الموضوع تحتاج الى java Script تكون فى ال client Side

كنت أظن أن العملية أبسط بكثير لأننا كنا نستخدم عند كتابة البرامج ضمن form builder الزناد when-new-record-instance على مستوى البلوك الذي هو يعبر بدوره عن جدول معين، وبالتالي أستطيع أن أفحص حدوث تغيرات ضمن الفورم على مستوى كل سجل من سجلات الجدول (البلوك)، وبالتالي أستطيع صياغة سؤالي بطريقة أخرى ألا يوجد ضمن adf حدث أو زناد أو متنصت يعمل نفس عمل الزناد when-new-record-instance ويمكن تطبيقه على عنصر الـ table بحيث أفحص isDirty() ضمن ذلك الحدث.
مع الشكر وآسف على الإطالة
بتاريخ:

اولا يا ريت ننسى موضوع الفورم خالص لانك فى بيئة ويب الفورمه دى حاجة عند الClient لكن فى الADF انت بتتعامل مع السيرفر هنا انت عاوز اول ما تضغط على اى Row فى Table يعمل check على شىء معين افضل طريقه للموضوع ده هو الجافا سكريبت حتى تتجنب عمل Submit للصفحة عند الوقوف على كل Row وبالتالى حتضع Client listener على ال table يقوم باستدعاء function زى دى مثلا

function handleTableClick(evt) {
var table = evt.getSource();
AdfCustomEvent.queue(table, "TableClickEvent",
{
},
true);
}



وكمان حتضع عليه server Listener او server side جافا والسبب وراه كده اننا هنا بنعمل access على ال ADF Binding والحكاية دى اسهل من على السيرفر وبالتالى حيبقى على ال Client Listener) table و server listener ) كالاتى

<af:clientListener method="handleTableClick" type="click"/>
<af:serverListener type="TableClickEvent" method="#{TableEvent.handleTableClick}"/>



وعلى الميثود اللى اسمها handleTableClick اكتب الكود اللى عاوزه عشان يعمل ال check

الحقيقه انى لم اجربها نظرا لانشغالى الشديد حاليا لكن اعتقد انها حتشتغل معاك

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

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

بس في كمان هذا السؤال البسيط إذا سمحت:
أنا كنت أنتقل بين سجلات الجدول من خلال مفاتيح الكيبورد up, down بكل بساطة وسهولة وسرعة، لكن عندما قمت بسحب Next, NextSet operations من data controls إلى panelCollection الخاص بالجدول نتج مايلي:
1- عندما أقوم بالضغط على مفتاح Next ينتقل المؤشر إلى السجل التالي بشكل صحيح ولكن تظهر عبارة fetching data... مما يعني بطء غير مبرر (لماذا؟).
2- بقي مفتاح Next Set غير فعال رغم أنه يوجد سجلات أكثر من السجلات المعروضة على الشاشة.
3- عندما أقوم بالتنقل بين السجلات من خلال لوحة الكيبورد يجب علي أن أقوم بعمل click بالماوس على السجل ضمن الجدول بعد كل عملية تنقل مما يعني عدم جدوى التنقل من خلال لوحة الكيبورد (علما أنها كانت تتم بكل يسر وسهولة وسرعة) لماذا تغير سلوك مفاتيح التنقل في لوحة الكيبورد.

مع جزيل الشكر والامتنان

بتاريخ:

اولا يا ريت لما يبقى سؤالك بعيد عن الموضوع تفتح موضوع جديد بالسؤال الجديد وذلك للتيسير على مستخدمي عملية البحث فى ايجاد المواضيع بسهوله لان سؤالك ليس له علاقه بالموضوع فالموضوع عن اظهار رسائل الحفظ والان انت تتحدث عن ال View Object Tuning عموما ساحاول الرد على سؤالك لكن لو لك اى استفسار تانى افتحه فى موضوع مستقل

بالنسبة للسؤال الاول:
لا اعرف ما هى الباراميتر اللى عاملها فى ال Tuning الخاص بالView Object او سايبها على ال default ولكن لو هى متسابه على الDefault فمعنى كده انها بتكون as Needed يعنى مش كل ال Rows بيحصلها fetch من الداتابيز فى الحال ولكن بيتم الحصول عليها اثناء عمل ال navigation وفى هذا الاثناء بتظل ال Result Set مفتوحه وعندما يصل المستخدم الى اخر row فى ال Row set بيتم غلق ال result Set وبالتالى فى حالتك عندما تضغط next من ال View Object iterator عشان تجيب ال Next Row بيحصل check هل ال Row اللى انت طالبه ده من ال Collection ام لا اذا لم يكن من ال Collection ال Row ده بيحصله fetch من الداتابيز عموما اقره عن ال tuning لل VO وافضل البارامتير اللى مفروض تستخدمهم حسب حجم الداتا اللى عندك من هنا

بالنسبة للسؤال الثانى
لا اعرف ما فهمك ل Next Set operation ولكن معناها ان عند استدعائها بالضغط عليها بتقف على اول row فى ال Row set الجديد لان الView object عباره عن مجموعه من ال Row sets

بالنسبة للسؤال الثالث:
الحقيقه انى جربت على ال IE وال FireFox ولم الاحظ هذا السلوك الذى تتحدث عنه

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

آسف أخت هالة، الحق معك هذا موضوع جديد (وسأراعي ذلك في المناقشات القادمة) ولكن للتوضيح ولإنهاء الفكرة لقد أجريت بعض التجارب وبحثت عن مشكلتي في النت فوجدت أنه لا علاقة لها بعملية Tuning، ولكن كنت أريد أن ينتقل الفوكس مباشرة إلى السطر التالي عند الضغط على مفتاح next وهذا يحتاج إلى java script مرتبط مع المفتاح next ضمن actionListener وهذا هو الكود :

   public void nextRecordAndSetFocus(ActionEvent ae) {
  BindingContainer bindings = getBindings();
  OperationBinding operationBinding = bindings.getOperationBinding("Next");
  Object result = operationBinding.execute();
   
  FacesContext facesContext = FacesContext.getCurrentInstance();
  RichTable table = getTableNavigation();
  String tableId = table.getClientId(facesContext);
  RowKeySet rks = table.getSelectedRowKeys();
  String inputId="";
  if(rks != null && rks.size() > 0) {
	  Object rowKey = rks.iterator().next();
	  String rowId = table.getClientRowKeyManager().getClientRowKey(facesContext, table, rowKey);
	  inputId = tableId + ":" + rowId + ":" + "it7";
  } else {
	  // handle error
  }
	
  ExtendedRenderKitService service = Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
  String script = "AdfPage.PAGE.findComponent('" + inputId + "').focus();";	 
  service.addScript(facesContext, script);	 
   }


وهو يعمل بشكل ممتاز، ولكن للأسف يوجد مشكلة أخرى وهي أن الفوكس عند يصل إلى آخر سجل معروض على الشاشة ضمن الجدول (وليس إلى آخر سجل في الجدول) ومن ثم أضغط على المفتاح next مرة أخرى عندها لا يتم انتقال الفوكس إلى السجل التالي (وبالتالي لا يتم مشاهدة بيانات ذلك السجل) وذلك لأنه لم يتحريك scrollbar الخاص بالجدول وبالتالي سوف يضطر المستخدم إلى النقر بالماوس على scrollbar لمشاهدة بيانات السجلات التالية.
أي بالنتيجة أنا لم أجد فائدة حقيقية لوجود مفاتيح للتنقل خاصة بالجداول وسؤالي هو:
هل يوجد إمكانية للتحكم بحركة scrollbar وفقا للسجلات المعروضة أم أن فكرتي صحيحية حول عدم وجود فائدة عملية لمفاتيح التنقل الخاصة بالجدول وبالتالي سأزيلها من الشاشات التي يتم عرض البيانات فيها على شكل جداول.

بتاريخ:

الاخ / mhawad

سؤالك الاول ضمن ثلاثة اسئله فى المشاركه اللى فاتت كان هكذا

عندما أقوم بالضغط على مفتاح Next ينتقل المؤشر إلى السجل التالي بشكل صحيح ولكن تظهر عبارة fetching data... مما يعني بطء غير مبرر (لماذا؟).


البطىء ده و fetching Data موضوع tuning ايه اللى دخل الجافا سكريبت فى الموضوع وبعدين انت كنت بتقول فى المشاركه اللى فاتت ان المؤشر بيتنقل بشكل صحيح عند الضغط على next وان مشكلتك كانت عن عدم جدوى التنقل بمفاتيح الكيبورد دلوقتى سؤالك اتغيرتماما والمشكلة بقيت فى ال next ؟؟؟

عموما شوف

اولا:ياريت يبقى سؤالك فى حاجة واحده فقط لتجنب اللخبطة اللى حصلت دلوقتى
ثانيا:لا افهم جدوى استخدام هذه الميثود السابقه لحاجة بتحصل By default عند الضغط على next operation

ثالثا: اقترح عليك فتح موضوع جديد تماما وتحدد ايه مشكلتك بالظبط فى الكيبورد ولا فى ال next وتشرحها (ده اذا لم تجد لها حلا )
بتاريخ:
  • كاتب الموضوع

لا افهم جدوى استخدام هذه الميثود السابقه لحاجة بتحصل By default عند الضغط على next operation

الحق معك أخت هالة أنا يمكن من دون قصد حكيت بأكثر من موضوع بس بليززز خليني ألخص أهم مشكلة (فكرة) عندي وهي أن next operation تقوم بنقل highlight إلى السجل التالي ولا تقوم بنقل الفوكس (أي لا يتم وضع مؤشر الفأرة عند أول حقل في السجل الذي تم الانتقال إليه ) والميثود السابق يقوم بهذه العملية.
وكذلك أعود وأقول أن next operation لا تقوم بتحريك scrollbar عند الوصول إلى السجلات الغير معروضة على الشاشة (أي في حال الجدول يتضمن مئة سجل مثلا وكان معروض على الشاشة أول عشرة سجلات فقط، وعند وصول highlight الخاص بالسجل إلى السجل العاشر وتم الضغط على مفتاح next operation عندها ينتقل highlight إلى السجل الحادي عشر ولكن لا يستطيع المستخدم مشاهدة بيانات السجل الحادي عشر حتى يقوم بالنقر على scrollbar لتحريك السجلات المعروضة) وبالتالي
بتاريخ:
  • كاتب الموضوع

لا افهم جدوى استخدام هذه الميثود السابقه لحاجة بتحصل By default عند الضغط على next operation

الحق معك أخت هالة أنا يمكن من دون قصد حكيت بأكثر من موضوع بس بليززز خليني ألخص أهم مشكلة (فكرة) عندي وهي أن next operation تقوم بنقل highlight إلى السجل التالي ولا تقوم بنقل الفوكس (أي لا يتم وضع مؤشر الفأرة عند أول حقل في السجل الذي تم الانتقال إليه ) والميثود السابق يقوم بهذه العملية.
وكذلك أعود وأقول أن next operation لا تقوم بتحريك scrollbar عند الوصول إلى السجلات الغير معروضة على الشاشة (أي في حال الجدول يتضمن مئة سجل مثلا وكان معروض على الشاشة أول عشرة سجلات فقط، وعند وصول highlight الخاص بالسجل إلى السجل العاشر وتم الضغط على مفتاح next operation عندها ينتقل highlight إلى السجل الحادي عشر ولكن لا يستطيع المستخدم مشاهدة بيانات السجل الحادي عشر حتى يقوم بالنقر على scrollbar لتحريك السجلات المعروضة) وبالتالي فهل النظرية التي توصلت إليها وهي بعدم وجود فائدة عملية لمفاتيح التنقل الخاصة بالجدول (ضمن بيئة الويب) وبالتالي يمكن إزالتها (غير مأسوف عليها) من الشاشات التي يتم عرض البيانات فيها على شكل جداول، هل هذه النظرية (الفكرة) صحيحة أم لا؟؟!!
بتاريخ:

شوف ال ADF Rich Table فى 11 مختلف كليأً عن ال Trinidad table اللى كنا بنستخدمه فى 10 هناك كنا بنعتمد كليأً على next وال previous فى عملية ال navigation وكانت بتحصل حاجة زى ال pagination بالظبط لو عارفها ومعناها ان لو عندك فى الداتابيز 100 row مثلا ممكن تعرض منهم 10 فى المره الواحده وتضغط على next عشان تعرض العشره التانيين وبعدين العشره اللى بعدهم واللى بعدهم وهكذا ده مفهوم ال pagination لكن فى 11 بنستخدم ال scroll bar للتنقل بين ال records زى ال excel بالظبط يعنى اصبح الموضوع scrolling وتحميل الداتا بيتم من خلال ال Scrolling ده يعنى مثلا فى الاول بيجيبلك اول 25 row او حسب ال fetch size اللى عامله بعد كده اثناء ال Navigation بيعمل fetch تانى لل Range اللى بعده وهكذا وبالتالى قدامك حلين

لو انت عاوز فكرة الnext وال Prevoius ممكن تطبق مفهوم ال pagination زى ما هو عامل هنا
الحل الثانى انك تحذف الnext من ال table مكتفيا بال scroll العادى

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

الحل الثانى انك تحذف الnext من ال table مكتفيا بال scroll العادى

مشكورة أخت هالة هذا هو الكلام الشافي وأنا بالنسبة إلي سوف أستخدم الحل الثاني
ولتعم الفائدة لرواد المنتدى:
1- فقد عرفت أن مشكلة الفوكس الخاص بمفتاح next operation هو بسبب أنني أعمل على jdev 11.1.1.4.0 ويجب الانتقال إلى إصدار أحدث وهذا ماتوصلت إليه من خلال تواصلي مع المنتدى الخاص بأوراكل وهو على الرابط التالي:
https://forums.oracle.com/forums/thread.jspa?messageID=10083227

2- عوداً على بدء بالنسبة لظهور عبارة يوجد تغيرات ضمن الصفحة فقد وجدت التحديث التالي وهو:
In Oracle JDeveloper 11.1.2, a new client behavior tag af:checkUncommittedDataBehavior is provided to check for uncommitted data when navigating away from a page using a command button that has its immediate property set to true. The tag can be applied as a child of any command component, like
, af:commandButton
,af:commandLink
,af:commandMenuItem
,af:commandToolbarButton
ويمكن قراءة المزيد من خلال الرابط التالي:
http://download.oracle.com/docs/cd/E16162_01/apirefs.1112/e17491/tagdoc/af_checkUncommittedDataBehavior.html

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

عفواً
وبالنسبة للكود السابق الذي يقوم بوضع الفوكس على أحد حقول الجدول فالاستخدام المفيد له هو في عمليات الإدخال، حيث أنه عندما يقوم المستخدم بالضغط على مفتاح إضافة سجل جديد عندها يتم إنشاء سجل جديد فارغ وبعدها يتم وضع المؤشر عند أول حقل ضمن السجل الجديد وذلك كميزة إضافة لتسريع عمليات الادخال
والله الموفق

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

thanks.it is a good method for UNCommitedData warning programmatically but can we extend this to include a rollback also?

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

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

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

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

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

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

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.