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

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


تيسير نافع

Recommended Posts

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

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

عندي 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, وفى التاريخ احتمال تقابلك مشكلة الفورمات ماسك عشان كده بقلك اظهرى الرسالة وشوفى قيمة الخاصية بعد تغييرها.

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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