إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


12 رد (ردود) على هذا الموضوع

#1 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 November 2017 - 10:19 AM

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

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

عندي 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 و نفس النتيجة

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

 



#2 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 November 2017 - 10:46 AM

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

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



#3 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 November 2017 - 11:39 PM

 

انا مفهمتش التفاصيل بس لو مشكلتك فى 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;

 

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

ملف مرفق  WhatsApp Image 2017-11-13 at 10.56.24 PM.jpeg   56.37كيلو   0 عدد مرات التحميل



#4 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 November 2017 - 12:40 AM

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

تم التعديل بواسطة eslam elbyaly, 14 November 2017 - 12:40 AM.


#5 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 03:05 AM

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

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

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



#6 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 09:10 AM

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

#7 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 10:21 AM

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

جربيها كده 

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

واستخدمى

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

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

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



#8 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 01:41 PM

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

 علشان الداتابيز بلوك من النوع 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 مع الداتابيز بلوك



#9 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 01:59 PM

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

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

go_block('any_block'); 

execute_query; 

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

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

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

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

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

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

- ملحوظة:

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


تم التعديل بواسطة eslam elbyaly, 15 November 2017 - 02:00 PM.


#10 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 10:51 PM

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

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

go_block('any_block'); 

execute_query; 

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

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

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

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

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

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

- ملحوظة:

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

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

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

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

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

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



#11 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 11:23 PM

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

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



#12 تيسير نافع

تيسير نافع

    مشترك

  • الأعضــاء
  • 62 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 15 November 2017 - 11:35 PM

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

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

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

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



#13 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,822 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 November 2017 - 09:45 AM

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