الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف لما أختار الدولة في القائمة المنسدلة تظهر لي ا

مغلق
بدأه madatata في 17 نوفمبر 2003 · 5 رد · 1,178 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تكويد الدول والمدن

عملت شاشتين

1- شاشة تكويد الدول والمدن:

تم التكويد بها رقم للدولة، رقم لكل مدينة.

2- شاشة الثانية:

وبها اختيار الدولة من القائمة المنسدلة:

وعملت تريجر (WHEN-NEW-FORM-INSTANCE) على الفورمة به:

--Country_City

DECLARE

C11_ID RECORDGROUP;

N NUMBER;

BEGIN

C11_ID:=CREATE_GROUP_FROM_QUERY('C11','SELECT Country_NAME,TO_CHAR(Country_ID)

FROM Country ORDER BY Country_ID');

N:=POPULATE_GROUP('C11');

POPULATE_LIST('Country_ID','C11');

END;

EXECUTE_QUERY;

لكن لما عملت اختيار المدينة قائمة منسدلة: ظهرت لي كل المدن

لم تنجح العملية ترى العملية (اتشلبكت وتكلكعت)

يعني كيف لما أختار الدولة في القائمة المنسدلة تظهر لي المدن

التي تحتها عند الاختيار في القائمة المنسدلة للمدن

وضحت الفكرة

#2

يا اخ madatata

ان شاء الله اكون فاهم سواللك وهو المقصود

الحين وانت بتختار الدولة لازم يطلع في LIST الثانية اسماء المدن

انا اعتقد لازم يكون في جدول المدن FOREIGN KEY للدول بحيث يتم ربطها مع الدول

وبذللك سوف تحصر كل المدن للدولة واحدة ( وهذا من ناحية التحليل)

اما تطبيقي

cOUNTRY TABLE :

ID_NO NUMBER(3);

ID_NAME VARCHAR(30);

CITY TABLE

CITY_NO NUMBER(3);

CITY_NAME VARCHAR(30);

ID_NO NUMBER(3) -----------------> FOREIGN KEY

بمعني

حيكون شرطك

WHERECOUNTRY. ID_NO=:CITY.ID_NO

والله الموفق

علي احمد

مبرمج اوراكل

aaab2000@hotmail.com

#3

الاخ العزيز

اضف تريجر للحقل COUNTRY_ID اسمة WHEN_LIST_CHANGED وضع فيه نفس الكود

الذي وضعته للدول بس للمدن واضف الى الSELECT

WHERE COUNTRY_ID=:DATA_BLOCK2.COUNTRY_ID

وإن شاء الله بتمشي معاك

تحياتي

#4

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

أخواني الأعزاء

جربت ما وصيتم به لكن لم تنجح

لا أعرف الآن أين الخطأ مع أني فحصت خطواتي جيداً

بالنسبة للاستفسار عن الجداول فهي كالآتي:

CREATE TABLE COUNTRY(

COUNTRY_ID NUMBER(3)PRIMARY KEY,

COUNTRY_NAME VARCHAR2(40) NOT NULL);

*****

CREATE TABLE CITY(

COUNTRY_ID NUMBER(3),

CITY_ID NUMBER(3),

CITY_NAME VARCHAR2(40) NOT NULL,

CONSTRAINT CITY_PK1 PRIMARY KEY(COUNTRY_ID,CITY_ID),

CONSTRAINT CITY_FK1 FOREIGN KEY (COUNTRY_ID)REFERENCES COUNTRY(COUNTRY_ID));

هذه جداول شاشة تكويد الدول والمدن

*****

CREATE TABLE COUNTRY_CITY (

COUNTRY_ID NUMBER(3),

CITY_ID NUMBER(3),

OFFICE_NAME VARCHAR2(40));

ALTER TABLE COUNTRY_CITY ADD (

CONSTRAINT COUNTRY_CITY_BRW_P1 PRIMARY KEY(COUNTRY_ID, CITY_ID))

ALTER TABLE COUNTRY_CITY ADD (

CONSTRAINT COUNTRY_CITY_BRW_F1 FOREIGN KEY(COUNTRY_ID, CITY_ID)

REFERENCES CITY(COUNTRY_ID, CITY_ID));

#5

الاخ MADATATA

ضع الكود التالي في تريجر WHEN _LIST_CHANGED للحقل COUNTRY للبلك COUNTRY_CITY

DECLARE

C1_ID RECORDGROUP;

m NUMBER;

BEGIN

C1_ID:=CREATE_GROUP_FROM_QUERY('C1','SELECT CITY_NAME,TO_CHAR(C_ID)

FROM CITY WHERE COUNTRY_ID=:COUNTRY_CITY.COUNTRY );

M:=POPULATE_GROUP('C1');

POPULATE_LIST('Country_CITY.CITY_ID','C1');

END;

اي بمجرد اختيار الدولة تظهر اسماء المدن التابعة لها فقط في الحقل CITY

انا مجرب الطريقة هذه ونجحت معايا

عندي ملاحظة على الPRIMARY KEY في الجدول COUNTRY_CITY

هل يمكن ان يكون هناك اكثر من مكتب في نفس المدينة اذا كان نعم

فيجب ان يكون البرايمري كي (COUNTRY_ID,CITY_ID,OFFICE_ID)

وتقبل تحياتي

#6

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

الأخ العزيز الفاضل: o7oc

يبدو من الكود ان المتغير لم تعرف له رقم (C1_ID RECORDGROUP;)

طيب الطريقة التي جربتها كيف خطواتها

نسيت اقول لك ان الكود اللي اعطيتني هو ما اشتغل

ومعنى نص الخطأ يقول: لا يستطيع تكوين المجموعة C11

اخي الفاضل

أعتقد (لو كلامي صحيح) المطلوب هو عند اختيار الدولة 11 في List1

يكون المتاح في List2 مدن الدولة11 فقط دون ظهور بقية المدن

المشكلة التي لدي:

عند اختيار الدولة 11 في List1

يكون المتاح في List2 مدن الدول كلها

ملاحظة:

الدولة الأولى في List1 تكون مدنها في List2 هي المتاحة فقط في الاختيار دون غيرها، بمعنى عندما الدولة الثانية في List1 تكون مدن الدولة الأولى هي المتاحة فقط مع ظهور مدن الدولة الثانية وعندما تختار مدينة منها يظهر لك في الاختيار اقرب مدينة من المدن الدولة الأولى

أسأل الله عز وجل أن تكون الصورة وضحت

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…