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

mmsalman87

Recommended Posts

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

سوف اقوم اليوم بشرح كيفية عمل قوائم اكثر ديناميكية
مثال على القوائم الديناميكية :
الجنس ( ذكر او انثى ) - الحالة الاجتماعية ( اعزب،غير متزوج) ... الخ
سوف نقوم بعمل جدولين الاول يحتوي اسم القائمة والكود الخاص فيها
والجدول الثاني يحتوي العناصر التي تحتويها هذه القائمة

انشاء الجدول الاول

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 ) ;


اتمنى ان اكون قد وفقت لشرح هذه الطريقة لتعبئة القوائم بطريقة ديناميكية
والسلام عليكم ورحمة الله وبركاته

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

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

الاخ / ماهر

كما عودتنا دائماً تأتي بما هو مفيد وجديد لأعضاء المنتدى

شكرًا لك

جزاك الله خيرا

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

كم انت ماهر يأخي اماهر دائماً خلاق للأفكار المبدعة والرائعة تستحق كل الشكر والتقدير على كل ابداعاتك
أخوك,,,

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

  • بعد 1 سنة...
  • بعد 5 شهور...

موضوع جميل يا أخي .... جزاك الله خير ... وإن شاء الله في ميزان حسناتك :)

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

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

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

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

×   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.

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

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

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