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

بتاريخ:

السلام عليكم
في عميلة البحث عن طريق ال j developer
تكون مثلا كلمة Search في أقصى اليمين فهل من الممكن سحبها إلى أقصى اليسار للتسهيل على المستخدمين
وأيضا هل يمكن التحكم بتنسيق ال حقول البحث Search Field لأنها تضاف وقت التنفيذ

وشكرا لكم

بتاريخ:

التحكم الكامل في وضع الحقول في الـ Query component غير ممكن ولكن يمكنك استخدام Search Form بحيث تقوم بإنشاء form عادية وبالتالي تستطيع التحكم الكامل فيها

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

ولكن كيف نكتب شروط البحث في Search Form
مثل like start with between

وشكرا لك مهندس مصظطفى

بتاريخ:

إنك تبني الـ view criteria في الـ view object ثم تقوم بسحبها في الصفحة على هيئة Search form ومن هنا يمكنك تعديل وتنسيق الحقول كما تريد

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

أستاذي العزيز المهندس مااجد
كيف نبني الـ view criteria في الـ view object
أنا أبني view criteria من query ومن ثم اذا سحبتها في الصفحة لا يظهر search form

وشكرا لك

بتاريخ:

السلام عليكم ورحمة الله وبركاته
يمكنك عمل بحث كالاتي:
1- قم بسحب من Data conrols
view object المراد عمل بحث به وضعه على الصفحه ك Search Form
2-قم بسحب نفس ال view وضعه ع الصفحه ك Table Read Only
3- قم بالدخول ع page defintion فتلاحظ ان attribute values ,tree لها نفس Iterator
قم بوضع tree ع Iterator اخر
4-قم بعمل invoke action وضع لها id , واختر في binds
find
وضع في Retresh Condition
{bindings.<iterator_name>.findMode == false}#
وضع في Refresh
ifNeeded
5-اذهب الى panel Form الخاصه ب Search Form واذهب الى property
Rendered وضع
{bindings.<iterator>.findMode == true}#
6-قم بتعديل Execute لتعمل ع Iterator الخاص ب Table من page defintion وذلك بتعديل binds Iter
ثم اعمل run للصفحه
وهذه الطريقه تفيدك في عمل تنسيق على شاشة البحث
وشكرا

تم تعديل بواسطة amr.computerscience

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

أنا كنت أقصد سحب الـ View Object المنشأ عليه الـ query

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

يمكن التحكم فى جميع خصائص ال query وال quick query عن طريق استخدام خاصية ال Skinning فمثلا



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


اذا كنت تستخدم ال Jdeveloper R2 فكل اللى عليك انك تعمل new ADF Skin وفى ال Css File تكتب كده

af|query::content-footer{
float:left;
 width: 80px;
}


خللى بالك ان width: 80px حتى تعمل مع ال IE



وأيضا هل يمكن التحكم بتنسيق حقول البحث Search Field لأنها تضاف وقت التنفيذ


يمكن التحكم فى تنسيق حقول ال af :query حتى لو كانت تضاف فى ال Run Time فمثلا اذا كانت ال search field عباره عن input لادخال معيار البحث literally فلو عاوز تعملها التنسيق بتاعها حتكتب فى ال css كالتالى

.cutomstyle tr[_rowkey='0'] input{
width: 130px !important ;
}
.cutomstyle  tr[_rowkey='1'] input{
width: 130px !important;
}



cutomstyle. اسم ال Style class الخاصة بال query
tr[_rowkey=0] ده رقم ال criteria حسب ال criteria Fields اللى عندك ويبدا من الصفر
Input ده نوع ال criteria Field بمعنى ان لو ال query اللى عندك مثلا فيه select او Lov حيبقى تنسيق الحقل كالاتى

.cutomstyle  tr[_rowkey='5'] select{
width: 90px !important;
}



وطبعا فى ال Style Class الخاصة بال af:query حتشاور على اسم الكلاس اللى فى ال Custom Skin واللى اسمها هنا cutomstyle

عموما شوف المثال المرفق اللى فيه طريقة تنسيق عناصر ال af: query كاملة على ال JDeveloper R2

QuerySkin.rar

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

شكرا جزيلا أخت هالة على الشرح الوافي ومساعدتك الدائمة لنا

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

شكرا جزيلا أخت هالة على الشرح الوافي ومساعدتك الدائمة لنا


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

وشكرا لكي
بتاريخ:

من الطبيعى جدا انك عندما تضغط search بدون وضع اى معيار للبحث يجيب لك كل الداتا ما دام انت مش عامل اى bind Variable فى ال View Criteria اما أذا اردت تغيير هذا ال behavior فقم بعمل override على ال Query Listener اللى بتضعه على ال Af:query وفيه الميثود دى بتعمل check على ال View Criteria Items لو كانت null قم باخفاء ال table الذى تظهر فيه النتيجة اما لو لم تكن ب null فقم بتنفيذ هذا ال query واظهار الTable

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

شكرا أخت هالة
ولكن في عملية البحث وضعت bind variable وهو مثلا رقم الموظف
وفي حالة عدم ادخال وضغطنا على زر البحث يأتي بيانات جميع الموظفين.

وهل من الممكن مثال تطبيقي عن الميثود التي تحفي ال Table في حالة وجود null

وشكرا جزيلا لك

بتاريخ:
ولكن في عملية البحث وضعت bind variable وهو مثلا رقم الموظف
وفي حالة عدم ادخال وضغطنا على زر البحث يأتي بيانات جميع الموظفين.


لان ال bind variable انت عامله optional

عموما حتى لو عامله optional وعاوز عدم ظهور ال table الا عند ادخال قيمه فى ال bind variable فاعمل override على ال query Listener كالاتى

اولا اكتب فى الكلاس الاتنين Helper Methods اللى بيستدعوا ال Expression الخاص بتنفيذ ال Query

public Object invokeMethodExpression(String expr, Class returnType, Class[] argTypes, Object[] args){
   FacesContext fc = FacesContext.getCurrentInstance();
   ELContext elctx = fc.getELContext();
   ExpressionFactory elFactory = fc.getApplication().getExpressionFactory();
   MethodExpression methodExpr = elFactory.createMethodExpression(elctx,expr,returnType,argTypes);  
   return methodExpr.invoke(elctx,args);
}
  
public Object invokeMethodExpression(String expr, Class returnType,Class argType, Object argument){
   return invokeMethodExpression(expr, returnType,new Class[]{argType}, new Object[]{argument});
}



2 قم باخفاء ال table وعلى ال query Listener ضع الميثود الاتيه

public void processQuery(QueryEvent queryEvent) {
DCBindingContainer bc = (DCBindingContainer)this.getBindings();
DCIteratorBinding dcIb = bc.findIteratorBinding("EmployeesView1Iterator");
ViewObject vo = dcIb.getViewObject();
Number Empno = (Number)vo.getVariableManager().getVariableValue("empno");
if (Empno!=null){
	this.getTable1().setVisible(true);
}
else {
	this.getTable1().setVisible(false);
}
	invokeMethodExpression("#{bindings.EmployeesViewCriteriaQuery.processQuery}", Object.class, QueryEvent.class, queryEvent);
 
}



empno اسم ال bind Variable
ولا تنسى عمل import ل oracle.jbo.domain.Number

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

شكرا جزيلا جزيلا لك أخت هالة على ه

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

شكرا جزيلا جزيلا لك أخت هالة على هذه المساعدة لي
والآن كل شي تمام

وشكرا لك مرة أخرى

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

أخت هالة
ماهي الطريقة لعمل بعض حقول البحث disable
أي تكون مرئية ولكن المستخدم لا يستطيع تغييرها

وشكرا لك

بتاريخ:

ملحوظه اشرافيه

الاخ /a5hhk

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

واذا تكرر هذا ساقوم بغلق موضوعك

زائر
هذا الموضوع مغلق.

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

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

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.