بتاريخ: 8 أكتوبر 201213 سنة comment_227869 السلام عليكم ورحمة الله وبركاتهسوف اقوم اليوم بشرح كيفية عمل قوائم اكثر ديناميكيةمثال على القوائم الديناميكية :الجنس ( ذكر او انثى ) - الحالة الاجتماعية ( اعزب،غير متزوج) ... الخسوف نقوم بعمل جدولين الاول يحتوي اسم القائمة والكود الخاص فيهاوالجدول الثاني يحتوي العناصر التي تحتويها هذه القائمةانشاء الجدول الاول CREATE TABLE SETUP_LIST_MSTR ( LIST_CODE VARCHAR2(100) NOT NULL, DESC_A VARCHAR2(100), DESC_E VARCHAR2(100) ) نقوم بوضع المحددات Constraints ALTER TABLE SETUP_LIST_MSTR ADD ( CONSTRAINT SETUP_LIST_MSTR_PK PRIMARY KEY (LIST_CODE)) انشاء الجدول الثاني CREATE TABLE SETUP_LIST_DETL ( LIST_CODE VARCHAR2(100 ), DESC_ARABIC VARCHAR2(100 ), DESC_ENGLISH VARCHAR2(100 ), COLUMN_VALUE VARCHAR2(20 ), SEQ_NO NUMBER ) ملاحظة: SEQ_NO يعني ترتيب العنصر في القائمةنقوم بوضع المحددات Constraints ALTER TABLE SETUP_LIST_DETL ADD CONSTRAINT SETUP_LIST_DETL_R01 FOREIGN KEY (LIST_CODE) REFERENCES SETUP_LIST_MSTR (LIST_CODE)); اضافة بعض البيانات على الجدولين Insert into SETUP_LIST_MSTR (LIST_CODE, DESC_A, DESC_E) Values ('GENDER', 'الجنس', NULL); Insert into SETUP_LIST_MSTR (LIST_CODE, DESC_A, DESC_E) Values ('MARITAL_STATUS', 'الحالة الاجتماعية', NULL); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('GENDER', 'ذكر', 'Male', '1', 1); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('GENDER', 'انثى', 'Female', '2', 2); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('MARITAL_STATUS', 'اعزب', 'Single', '1', 1); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('MARITAL_STATUS', 'متزوج', 'Married', '2', 2); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('MARITAL_STATUS', 'ارمل', 'Divorced', '3', 3); Insert into SETUP_LIST_DETL (LIST_CODE, DESC_ARABIC, DESC_ENGLISH, COLUMN_VALUE, SEQ_NO) Values ('MARITAL_STATUS', 'مطلق', 'Divorced', '4', 4); نقوم بعمل البروسيجر التالي في pll library حتى يمكننا استدعائه من اي فورم PROCEDURE CREATE_STATIC_LIST ( LIST_CODE VARCHAR2 ,FILD_NAME VARCHAR2, RECORD_GROUP VARCHAR2 DEFAULT 'rg') is RG RECORDGROUP ; N NUMBER; v_cha_lang NUMBER (1) := 1; BEGIN if NAME_IN('GLOBAL.P_USER_LANGUAGE') = 1 then v_cha_lang := 1; else v_cha_lang := 2; end if; --- Make sure group doesn't already exist rg := Find_Group(record_group); /* ** If it does not exist, create it and add the two ** necessary columns to it. */ if not id_null(rg) then delete_group(rg); end if; RG:= CREATE_GROUP_FROM_QUERY(record_group,'SELECT DECODE('||v_cha_lang||', 1, DESC_ARABIC, DESC_ENGLISH) COLUMN_DESC, COLUMN_VALUE from SETUP_LIST_DETL where LIST_CODE ='''||LIST_CODE||''' order by SEQ_NO, COLUMN_DESC'); N := POPULATE_GROUP(RG); POPULATE_LIST(FILD_NAME,RG); END; الان في فورم قم بكتابة الكود التالي في التريغر WHEN-NEW-FORM-INSTANCE CREATE_STATIC_LIST ( LIST_CODE,FIELD_NAME ) ; اتمنى ان اكون قد وفقت لشرح هذه الطريقة لتعبئة القوائم بطريقة ديناميكيةوالسلام عليكم ورحمة الله وبركاته تقديم بلاغ
بتاريخ: 8 أكتوبر 201213 سنة comment_227876 السلام عليكم ورحمة الله وبركاتهجزاك الله كل خير تقديم بلاغ
بتاريخ: 8 أكتوبر 201213 سنة comment_227883 وعليكم السلام ورحمة اللهالاخ / ماهر كما عودتنا دائماً تأتي بما هو مفيد وجديد لأعضاء المنتدى شكرًا لك جزاك الله خيرا تقديم بلاغ
بتاريخ: 10 أكتوبر 201213 سنة كاتب الموضوع comment_227901 شكرا لكم جميعا مع تمنياتي بالاستفادة للجميع تقديم بلاغ
بتاريخ: 10 أكتوبر 201213 سنة comment_227929 كم انت ماهر يأخي اماهر دائماً خلاق للأفكار المبدعة والرائعة تستحق كل الشكر والتقدير على كل ابداعاتكأخوك,,, تقديم بلاغ
بتاريخ: 11 فبراير 201511 سنة comment_259550 موضوع جميل يا أخي .... جزاك الله خير ... وإن شاء الله في ميزان حسناتك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.