بتاريخ: 19 يناير 20197 سنة comment_297679 عندى نموذج وبه قائمتين listitem واحدة بتعرض تاريخ الحجز والاخرى بتعرض نوع الحجز ( موقت - دائم- احيتاطي) . اريد عندما يقوم المستخدم باختيار تاريخ من قائمة التواريخ ويكون هذا التاريخ موجود مسبقا فى قاعدة البيانات يتم استبدال عناصر قائمة التى تعرض انواع الحجز الى قائمة بها عنصر واحد وهو حجز احتياطي . المطلوب هو عرض القيمة احتياطى فقط فى القائمة عندما يكون التاريخ المختار به حجز اى ان اليوم تم اختياره مسبقا . تقديم بلاغ
بتاريخ: 19 يناير 20197 سنة comment_297684 عندى نموذج وبه قائمتين listitem واحدة بتعرض تاريخ الحجز والاخرى بتعرض نوع الحجز ( موقت - دائم- احيتاطي) . اريد عندما يقوم المستخدم باختيار تاريخ من قائمة التواريخ ويكون هذا التاريخ موجود مسبقا فى قاعدة البيانات يتم استبدال عناصر قائمة التى تعرض انواع الحجز الى قائمة بها عنصر واحد وهو حجز احتياطي . المطلوب هو عرض القيمة احتياطى فقط فى القائمة عندما يكون التاريخ المختار به حجز اى ان اليوم تم اختياره مسبقا . السلام عليكم ورحمه الله وبركاته مبدئيا هذا مثال ناجح لقائمة تعتمد على قائمة أخرى فقط قم بالتغيرات اللازمة فى أسماء أعمدة الجداول، ولنفترض أن هناء جدول لبيانات أو أنواع الحجوزات، reservation_type وجدول لتسجيل بيانات الحجز لعميل، reservation_transaction فلابد أن يكون لعملية الحجز رقم حجز، وتاريخ حجز، فلابد أن يتم تحديد تاريخ الحجز، فى القائمة الأولى، فى جملة الشرط التالية، ويفضل أن يكون تاريخ الحجز فى القائمة الأولى ملحوظة الكود مجرد مثال rg_city :=CREATE_GROUP_FROM_QUERY(rg_name , 'SELECT reserv_desc,reserv_desc FROM reservation_type WHERE reservation_type.reservation_date = ''''|| :reservation_transaction.reservation_date); تم تعديل 19 يناير 20197 سنة بواسطة Neveen Ebrahim تقديم بلاغ
بتاريخ: 19 يناير 20197 سنة كاتب الموضوع comment_297689 اشكرك خالص الشكر ولكن اننى قمت بعمل RECORD GROUP تحمل القائمة المراد عرضها عند تحقق الشرط وهو ان هذا التاريخ وهذا التوقيت فيه حجز اى القائمة التى تحتوى على نوع الحجز الاحتياطي فقط وكتبت الكود ادنا فى حدث WHEN-LIST-CHANGED بالنسبة للقائمة التى سيتم منها اختيار التوقيت DECLAREX NUMBER;CURSOR A ISSELECT GAME_TIME ,GAME_DATE FROM CUST_GAME_INFOWHEREGAME_TIME=(:BL_CUST_GAME_INFO.GAME_TIME) AND GAME_DATE= (:BL_CUST_GAME_INFO.GAME_DATE) ; AA A%rowtype; begin open A; fetch A into AA ; if A%found then MESSAGE('FOUND DATE AND TIME '); MESSAGE('FOUND DATE AND TIME ');/*----*/ X:= POPULATE_GROUP('XXX'); POPULATE_LIST('BL_CUST_GAME_INFO.REG_TYPE','XXX'); ELSE X:= POPULATE_GROUP('RG'); POPULATE_LIST('BL_CUST_GAME_INFO.REG_TYPE','RG');/*----*/ raise form_trigger_failure; close A; end if;end; عند التنفيذ تظهر رسالة تفيد بان : خطا فى مجموعة التعبئة FRM-41076 تقديم بلاغ
بتاريخ: 20 يناير 20197 سنة comment_297690 اشكرك خالص الشكر ولكن اننى قمت بعمل RECORD GROUP تحمل القائمة المراد عرضها عند تحقق الشرط وهو ان هذا التاريخ وهذا التوقيت فيه حجز اى القائمة التى تحتوى على نوع الحجز الاحتياطي فقط وكتبت الكود ادنا فى حدث WHEN-LIST-CHANGED بالنسبة للقائمة التى سيتم منها اختيار التوقيت DECLARE X NUMBER; CURSOR A IS SELECT GAME_TIME ,GAME_DATE FROM CUST_GAME_INFO WHERE GAME_TIME=(:BL_CUST_GAME_INFO.GAME_TIME) AND GAME_DATE= (:BL_CUST_GAME_INFO.GAME_DATE) ; AA A%rowtype; begin open A; fetch A into AA ; if A%found then MESSAGE('FOUND DATE AND TIME '); MESSAGE('FOUND DATE AND TIME '); /*----*/ X:= POPULATE_GROUP('XXX'); POPULATE_LIST('BL_CUST_GAME_INFO.REG_TYPE','XXX'); ELSE X:= POPULATE_GROUP('RG'); POPULATE_LIST('BL_CUST_GAME_INFO.REG_TYPE','RG'); /*----*/ raise form_trigger_failure; close A; end if; end; عند التنفيذ تظهر رسالة تفيد بان : خطا فى مجموعة التعبئة FRM-41076 أنت أدرى بالبيزنس منى لكن مبدئيا يفضل إستخدام نتيجة فى التاريخ، ومن التاريخ فقط يمكنك أن تحصل على التوقيت أيضا كماهو مخزن فى فاعدة البيانات أما إذا كان ضرورى الليست فلا بد من تكرار التاريخ مرتان الأول يتم تخزينة فى قاعدة البيانات أو إستدعاءه والثانى يتم عرضة فى القائمة مثال CREATE_GROUP_FROM_QUERY(rg_name , 'SELECT ENAME , ENAME FROM EMP وتجنب إستخدام الكيرسور الأفضل CREATE_GROUP_FROM_QUERY وإتباع نفس المثال الموجود فى البلوج مع حذف سطر لأنه يصلح لتهيئة القائمة الثانية لا الاولى SET_RECORD_PROPERTY(:system.cursor_record,'EMP',status,new_status); تم تعديل 20 يناير 20197 سنة بواسطة Neveen Ebrahim تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.