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

بتاريخ:

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

اخواني الاعضاء الكرام

عندي 2 بلوك احدهما داتابيز  عبارة عن tabular form  به رقم الموظف وتاريخ اليوم وزمن الحضور وزمن الانصراف

والاخر كنترول بلوك به تكست ايتم لادخال تاريخ معين .. وزر when button pressed عملت عليه كيرسور لجلب الموظفين + go_block(employees)   execute_query

اريد الاستعلام عن حضور الموظفين في تاريخ معين باستخدام الكنترول بلوك .. بمعني ادخل التاريخ المعين في التكست ايتم اللي على الكنترول بلوك يعطيني الموظفين الحضور في هذا التاريخ على بلوك الموظفين

المشكلة عند التنفيذ لا بقوم بفلترة الداتا وانما يجلب كل الموظفين.. وكأنما الكنترول بلوك لا يعمل

مع العلم اني  استخدمت خاصية default_where على تريقر pre_text_item

 

SET_BLOCK_PROPERTY('emp_attendance', DEFAULT_WHERE, 'emp_attendance.attendance_date=:b2.attendance_date1' );

 

ولم تنفع كذلك ضبطت خاصية WHERE CLAUSE و نفس النتيجة

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

 

بتاريخ:

انا مفهمتش التفاصيل بس لو مشكلتك فى set_item_property  عدليها لـ 

SET_BLOCK_PROPERTY('emp_attendance', DEFAULT_WHERE, 'emp_attendance.attendance_date='||:b2.attendance_date1);

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

 

انا مفهمتش التفاصيل بس لو مشكلتك فى set_item_property  عدليها لـ 

SET_BLOCK_PROPERTY('emp_attendance', DEFAULT_WHERE, 'emp_attendance.attendance_date='||:b2.attendance_date1);

مشكور استاذ اسلام على متابعتك ..انا عندي فورم به 2 بلوك الاول كنترول بلوك به حقل مفروض ادخل فيه تاريخ معين بناء عليه يعرض لي في البلوك التاني بيانات الموظفين اللي حضروا في هذا التاريخ

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

السؤال على اي تريقر يتم كتابة الكيرسور لجلب بيانات الموظف؟ انا كنت كاتباه على when button  pressed  اما جملة set_item_property كتبتها على  تريقر pre_text_item

 

دا الكود اللي بيجلب بيانات الموظفين  كاتباه على الزر في الكنترول بلوك

DECLARE
cursor c2 is
select E.EMP_ID,E.NAME,ATTENDANCE_DATE,A.ARRIVE_TIME,A.LEAVE_TIME,A.STATUS_ID,A.ATTENDANCE_NOTE
FROM EMPLOYEES E,EMP_ATTENDANCE A 
WHERE E.EMP_ID = A.EMP_ID;  
BEGIN
go_block('emp_attendance');
execute_query;
first_record;
for r in C2 
loop
:EMP_ATTENDANCE.emp_id:=r.emp_id;
  :EMP_ATTENDANCE.EMP_NAME:=R.NAME;
:EMP_ATTENDANCE.ATTENDANCE_DATE:=r.ATTENDANCE_DATE;
:EMP_ATTENDANCE.ARRIVE_TIME:=r.ARRIVE_TIME;
:EMP_ATTENDANCE.LEAVE_TIME:=r.LEAVE_TIME;
:EMP_ATTENDANCE.ATTENDANCE_NOTE:=r.ATTENDANCE_NOTE;
:EMP_ATTENDANCE.STATUS_ID:=R.STATUS_ID;
next_record;
end loop;
END;

 

مرفق صورة من الفورم 

post-117057-0-32588500-1510605100_thumb.jpeg

بتاريخ:

الكرسور ملوش لزمة.
عدلى شرط البلوك فى تريجر الزرار وروحى البلوك نفذى الكويرى زرجعى شرط اابلوك تانى زى ما كان.
فى تفاصيل تانية طبعا بس بكتب من الموبايل.
جربى واغلطى وصلحى.

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

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

الكرسور ملوش لزمة.

عدلى شرط البلوك فى تريجر الزرار وروحى البلوك نفذى الكويرى زرجعى شرط اابلوك تانى زى ما كان.

فى تفاصيل تانية طبعا بس بكتب من الموبايل.

جربى واغلطى وصلحى.

عدلت على الكود استغنيت عن الكيرسور ب for loop 

عدلت كذلك على شرط البلوك وغيرت مكانه من الزر الى تريقرات اخرى واعدته مرة اخرة للزر والمشكلة قائمة تظهر معي كل السجلات .. ماالحل؟

بتاريخ:

بتعملى كرسور ولا لووب ليه! انتى مش بتجيبى الداتا فى داتابيز بلوك؟
واديكى بتنفذى الكويرى اهه.

بتاريخ:

عذرا مش واخد بالى انه تاريخ. اى تاريخ او كاراكتر لازم تستخدمى Quotes 

جربيها كده 

set_block_property('emp',DEFAULT_WHERE,'HIREDATE='''||:B.T||''''); 

واستخدمى

MESSAGE(GET_BLOCK_PROPERTY('EMP',DEFAULT_WHERE)); 
PAUSE;

عشان تشوفى نتيجة الخاصية بقت ايه. 

واحتمال متشتغلش عشان الفورمات ماسك. لو حصل, استخدمى to_char. 

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

بتعملى كرسور ولا لووب ليه! انتى مش بتجيبى الداتا فى داتابيز بلوك؟

واديكى بتنفذى الكويرى اهه.

 علشان الداتابيز بلوك من النوع tabular و عند الاستعلام بجملة سلكت العادية  بيظهر خطأ برجوع اكتر من صف

 

كنت مستخدمة ال Quotes على خصائص البلوك وكمان ال to_char

واضفت ال get_block وعند الاستعلام تظهر  please acknowledge 

ولازال الاسترجاع كامل

SET_BLOCK_PROPERTY('emp_attendance', DEFAULT_WHERE,'to_char(ATTENDANCE_DATE,)='||''''||to_char(:b2.att1_date)||'');
  message(get_block_property('emp_attendance',default_where));
  pause;

هل الكنترول بلوك بيحتاج يتعمل له relation مع الداتابيز بلوك

بتاريخ:

يا اختى انتى لا هتعملى كرسور ولا لووب ولا سيليكت. 

هو انتى لما تعملى 

go_block('any_block'); 

execute_query; 

هيجيب داتا ولا لا؟!

-------------------

انسى الـ to_char دلوقتى لحد ما تشوفى نتيجة تغيير الخاصية عشان تعرفى هتعملى ايه. انا قلتلك ممكن تحتاجيها وممكن لا. 

- يعنى ايه لا يزال الاسترجاع كامل؟

- انا مش كاتب كود عشان تخديه Copy&Past, انا كاتبه عشان انتى توظفيه على حسب التاسك بتعتك. 

- غيرى الخاصية بالكود وشوفى نتيجة التغيير ايه باظهار رسالة.

- ملحوظة:

جملة الـ set_block الى كتباها غلط خالص.

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

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

يا اختى انتى لا هتعملى كرسور ولا لووب ولا سيليكت. 

هو انتى لما تعملى 

go_block('any_block'); 

execute_query; 

هيجيب داتا ولا لا؟!

-------------------

انسى الـ to_char دلوقتى لحد ما تشوفى نتيجة تغيير الخاصية عشان تعرفى هتعملى ايه. انا قلتلك ممكن تحتاجيها وممكن لا. 

- يعنى ايه لا يزال الاسترجاع كامل؟

- انا مش كاتب كود عشان تخديه Copy&Past, انا كاتبه عشان انتى توظفيه على حسب التاسك بتعتك. 

- غيرى الخاصية بالكود وشوفى نتيجة التغيير ايه باظهار رسالة.

- ملحوظة:

جملة الـ set_block الى كتباها غلط خالص.

كلامك صح انا خليت الزر يروح للبلوك الديتيل ويعمل اكسسيوت للكويري من غير كتابة اي جمل استرجاع .. بس لسه بيستدعي كل الداتا

بالنسبة لل to_char من غير استخدامها كان بيعطيني ايرور invalid month ولما استخدمتها بقى يجيب داتا

استرجاع كامل قصدت به يجيب لي كل الموظفين في كل التواريخ يعني مابيفلتر حسب التاريخ المعطى

انا ماخدتش الكود كوبي بيست كنت كاتباه من الاول وكل شوية بعدل عليه

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

بتاريخ:

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

- طلعتى رسالة وشفتى نتيجة تغيير الخاصية ايه؟

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

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

- طلعتى رسالة وشفتى نتيجة تغيير الخاصية ايه؟

لا العفو مش قصدي خالص وماخدتش حتى بالي من علامات التعجب .. مافي اي مشكلة انت استاذنا ومعلمنا

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

بتاريخ:

لازم هتقابلك مشكلة فى الكاراكتر والحروف عشان الـ Quotes, وفى التاريخ احتمال تقابلك مشكلة الفورمات ماسك عشان كده بقلك اظهرى الرسالة وشوفى قيمة الخاصية بعد تغييرها.

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

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

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

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

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

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.