بتاريخ: 10 فبراير 200422 سنة comment_1091 السلام عليكمهذه هي طريقة عمل generic lov بحيث يكون لديك One lov تستخدم لاظهار بيانات مختلفة لحقول مختلفةمثلاً افرض ان لديك 1- حقل اكواد البلادان2- حقل اكواد العملات3- حقل اكواد الاقسامبالطريقة الإعتيادية يجب ان تقوم بعمل عدد 3 Lov وعدد 3 record group واحد لك حقل يحوي الـQuery الخاص بالحقل .في هذا المثال الذي سوف اقدمه سوف نعمل عدد 1 lov تعمل لكل الحقول بحيث يتم انشاء الـ Record group تلقائياً عند الـتنفيذالخطوات :الخطوة الاولى أنشاء Lov و Record Group1- اعمل Record Group من الـ Object navigator ثم ضع به الـ Query التالي SELECT to_char(null) col1, to_char(null) col2 from dual 2- من الـ Object navigator قم بانشاء Lov وضع لها الـ Record group المنشى في الخطوه 13- في الـ Column maping property الخاص بالـ Lov -ضع عدد 2 Columns باسم Col1 , col2-في حقل الـReturn item الخاص بالـ Col1 ضع GLOBAL.RETURN_ITEMبهذه الطريق نكون قد قمنا بعمل record group يحوي عدد 2 حقول Col1 , col2ثم حددنا عدد 2 column في الـ Lov بنفس لاسماء Col1 , Col2 على اعتبار ان الـ Col1 هو الكود والـ Col2هو الوصف او التسمية الخاصة بالـكود ثم عملنا global variable باسم GLOBAL.RETURN_ITEM لارجاع قيمة الكود عن اختيار اي قيمة من الـ Lovالخطوة الثانية عمل Procedure يقوم بانشاء record group عند التنفيذ ويضع بياناته في الـ Lov على حسبالـ Item الذي كان محددا عندما ضغطنا f9وهذا هو الـ Procedure PROCEDURE Populate_Lov (p_Item_name varchar2,p_Query varchar2) Is R_id recordgroup; Begin R_id := find_group('multi'); if not id_null(R_id) then delete_group('multi'); end if; R_id:=Create_Group_from_query('multi',p_Query); Set_lov_property('lov',group_name,R_id); list_values(NO_RESTRICT); copy(name_in('global.Return_item'), p_Item_name); End; لاحظ الـ Procedure يستقبل قيمتين الاولى اسم الحقل والثانية الـQuery الخاص به وهذه القيم متغيره حسب الحقل الذي كان محدد عندما نضغط المفتاح F9فمثلاً لو اردت ان تضع الـ Lov لحقل الـ Deptno لاظهار الكود والاسماء اعمل Trigger لهذا الحقل من نوع KEY-LISTVAL ثم ضع به الـProcedure كالاتي Populate_lov(:system.trigger_item,'select to_char(deptno) col1 ,to_char(dname) col2 from dept'); بحيث نمرر له اسم الـ Item والـ Query وهكذا واذ اردت ان تضع الـ Lov لحقل الـ Empno لاظهار الكود والاسماء اعمل Trigger لهذا الحقل من نوع KEY-LISTVAL ثم ضع به الـProcedure كالاتي Populate_lov(:system.trigger_item,'select to_char(empno) col1 , to_char(ename) col2 from emp'); وهذا Form جاهز يعمل على المتسخدم scott/tiger GENERIC_LOV.fmb تقديم بلاغ
بتاريخ: 10 فبراير 200422 سنة comment_1092 وعليكم السلامأخي خالد فكرة ممتازة بدل من ان يكون في النموذج أكثر من lov وراح اجرب واشوف .تحياتي تقديم بلاغ
بتاريخ: 11 فبراير 200422 سنة comment_1115 مجهودك لهذا المنتدى فوق الرائعالله يوفقك أستاذ خالد ... تقديم بلاغ
بتاريخ: 11 فبراير 200422 سنة كاتب الموضوع comment_1117 شكراً لكم جميعاً وانا فخور بهذا التفاعل الممتازهناك افكار اخرى ممكن ان نضيفها للمثال السابق وخاصاً عندما نتحدث عن تطبيق هذه الفكره لـ Application متكامل يحوي عدد كبير من الشاشات وبالطبع سوف يكون به عدد اكبر من الـ Lov وهي كالاتي :1- ان نقوم بعمل جدول في الـ Database بحيث يحوي الحقول التالية:item_name لحفظ اسم الحقل الذي سوف يكون له Lov Block_name يحوي اسم الـBlock الموجود به الـitem name Form_name يحوي اسم الـForm الموجود به الـ block و الـ item Query يحوي الـQuery text الخاص لهذ الـitemطبعاً الهدف من وضع اسم الـForm و اسم الـBlock هو احتمال ان يكون لدينا text item معين بنفس الاسم موجود في اكثر من Block او اكثرمن Form ولكن الـQuery الخاص به مختلف .2- نغير الـCode الخاص بالـ Procedure بحيث ياخذ الـQuery من الجدول .3- نضع الـLov والـ Record Group والـProcedure في object library بحيث نستطيع ان نتسخدمه في اكثر من formوشكراً تقديم بلاغ
بتاريخ: 12 فبراير 200422 سنة comment_1182 جزاكم الله خير الجزاء على هذا المجهود الرائعوربنا يجعله في ميزان حسناتك تقديم بلاغ
بتاريخ: 19 يوليو 200421 سنة comment_9765 بسم الله الرحمن الرحيماولا اود ان اشكر الاخ خالد جزيل الشكر للفكرة الرائعة جدا ولكن اود ان اطلب من الاخ خالد المزيد من الافكار النيرة التى تزيد شباب العرب والمسلمين خبرة تميزهم عن الغرب واليهود ان شاء الله وشكرا تقديم بلاغ
بتاريخ: 18 أغسطس 200619 سنة comment_76836 مشكورآآآآآآآآآآآآ جدآ على هذه الافكار الممتازه يأستاذ خالد و نتمنى ان تعطينى الافكار و نحن نفكر فى طريقة العمل اذ لم يكن لديك وقت .مشكور مره اخرىايهاب وجدى تقديم بلاغ
بتاريخ: 12 فبراير 200719 سنة comment_91503 شكرا لكوجعلها الله في ميزان حسناتكونتمنى لك التقدمكما انني لم استطع تحميل الملف الرجاء تعديل الوصلة وشكرا تقديم بلاغ
بتاريخ: 1 مارس 201115 سنة comment_209891 تسلم اخي على هذة الفكرة الرائعة .. تصدق قبل ما افتح هذة الصفحة كان معي شاشة فيها اكثر من 5 LOV محتار كيف اسوى بهم تقديم بلاغ
بتاريخ: 28 نوفمبر 201114 سنة comment_218076 شكرا لكوجعلها الله في ميزان حسناتكونتمنى لك التقدمكما انني لم استطع تحميل الملف الرجاء تعديل الوصلة وشكرا تقديم بلاغ
بتاريخ: 29 نوفمبر 201114 سنة comment_218102 جزاك الله خير اخي الكريم والله موضوع متميز جداً وحصلنا منه على فائده وفقك الله الى ما فيه الخير وزادك الله علماً تقديم بلاغ
بتاريخ: 8 ديسمبر 201114 سنة comment_218364 يظهر ان الملف المرفق تم حذفه ،، الرجاء تحميله مرة اخرى لان الموضوع متميز تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.