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

مشكلة في الـ Combo Box


John

Recommended Posts

عندى كومبو بوكس فى الفورم
ولقد عملت Record Group لملئها
و هى تعمل و لكن هناك سؤال
عندما اعمل Run للفورم تظهر الكومبو فارغة
انا اريد ان اجعل لها
Defult Value
كيف ؟؟؟؟؟
عندما اغير فى الــ Initial value
لا يقبل البرنامج القيمة و يقول انها ليست موجودة فى البيانات المدخلة
و شكرا ً :)

تم تعديل بواسطة Oracle
رابط هذا التعليق
شارك

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

اخي John , ممكن ترسل الفورم وياريت يكون معمول على أحد جداول SCOTT

علشان نشوف المشكله أماما ونحاول حلها معك ان شاء الله .

عمر باعقيل
كندا - مونتريال
[email protected]

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

John لقد فتحت الفورم الذي فيه المشكله ولاحظت ان سبب المشكله ليس برمجي فالعمل البرمجي سليم من حيث الـSyntax.
ولكن المشكله تكمن في عده نقاط
1- مشكله منطقية
من الخطى ان تقوم بعمل list في جدول الـ Dept لكونه coding table فانته لا تحتاج لعمل list له ولكن تحتاج ان تعمل list لحقل الـDeptno
الموجود في جدول الموظفين emp حتى يظهر اسماء الاقسام (Accounting,RESEARCH.... لخ ) بدلاً من الاكواد (10,20,30...لخ).
2- الـ Query الذي عملته في الـ Record group هو {select dname,to_char(deptno) from dept} وهذا معناه ان يظهر اسماء
الاقسام في الـ list وعندما تختار اي اسم سوف يقوم بخزن الـCode الخاص به (10,20,30,40 ) وهذا خطى لان سوف يخزن الرقم بدل الاسم في حقل
الـDname الخاص باخزن اسماء الاقسام وليس الارقام .

ولكن اذا ارد ان يعمل المثال الخاص بك فقم والتخلص من رسالة الخطى :
بالنسبة لرسالة الخطى {البرنامج لا يقبل القيمة و يقول انها ليست موجودة فى البيانات المدخلة } سببها انه عندما تعمل Run للفورم تكون
الـ list فارغة في البداية وذلك لان الـ list يتم تعبئتها من خلال ال trigger when-new-form-instanc في ما بعد, فهو في البداية يبحث عن
القيمة التي وضعتها في الـ inital value يبحث عنها في الElements in list ولا يجدها فيعطيك رسالة الخطى .
ولحل هذه المشكله لا تعمل قيمة في الخاصية inital value ولكن اعملها في الtrigger الخاص بتعبئة الـ list كالاتي

	declare
 v_group number;
begin
 v_group := populate_group('rec_dept');
 clear_list('dname');
 populate_list('dname','rec_dept');
 :dname:='RESEARCH';
end;



كرر الكود

:dname:='RESEARCH'; 


في الـTrigger when-create-record

اتمنا ان تكون وصلت الفكره
وشكراً

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

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

اخي john

1- قم بالانتقال الى خصائص الCombo box وقم بالضغط بالماوس أمام الخاصية Elements in list

ستظهر لك شاشه صغيره اسمها List Elements , قم بكتابة القيمه الأفتراضيه التى تريدها

ان تظهر لك عند تشغيل الفورم مرتين , في خانه List Elements وفي خانة List Item Value .

2- إذهب الى خاصية Initial Value واكتب فيها القيمه الافتراضيه نفسها .

شغل الفورم وان شاء الله ستظهر لك القيمة الافتراضيه في الCombo box.

عمر باعقيل
كندا - مونتريال
[email protected]

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

أولا : أستاذ خالد شكراً
ثانيا : بالنسبة الى المشكلة الاولى ( المنطقية ) انا اعلمها انا اضع هذا الكومبوفى فورم الموظفين و ليس فى فورم الأقسام ليختار المستخدم اسم القسم الذى يعمل فية الموظف و يسجل البرنامج الكود الخاص بهذا الأسم ...
- بالنسبة لرسالة الخطأ و الحل بالكود فهى فكرة جميلة و عاملة ( انا جربتها الان ) و لكن سوف افترض انى جعلت قسم الــ Research هو الافتراضى و لا سبب من الاسباب تم تغير اسمه او حذفة ... فسيعطى البرنامج خطأ ... هلى توجد طريقة لجعل مثلا First Recored هو الافتراضى ؟؟؟ ... أظن أن هذه المشكلة و اجهت العديد من المبرمجين و ننتظر المشاركات ..... :)

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

شكرا أخى عمر باعقيل
انا جرب هذه الطريقة فى الأول و لم تفلح لان الكومبو يكون فارغ فى الاول كما هو موضح فى الفورم
شكرا ..

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

السلام عليكم

اخي John , بالنسبه للحل الى وضعته لك وبناء على الفورم الى وضعته انت , لقد اشتغل

عندي بالتمام واول مااعمل رن للفورم تكون هناك قيمه إفتراضيه في الكومبو بوكس

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

هي رقم الدائره وليس اسمها الذي سيظهر في الكومبو بوكس والا لن يتم تخزين السجل الجديد

عمر باعقيل
كندا - مونتريال
[email protected]

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

اخ عمر ممكن ارسال الفورم
و هل يمكن ان احدد رقم الاختيار من القائمة ان يكون هو القيمة الافتراضية
مثل الــ INDEX فى الفيجول بيسك ؟؟؟

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

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

اخ John , هذا الفورم بعد التعديل

للمعلوميه انا استخدم Oracle Developer 10g ويمكن مايشتغل هذا الفورم في الاصدارات الاقدم

طبعا التعديل الى عملته في الفورم هو ماذكرته لك في الاعلى وظهر الكمبو بوكس وبه القيمه

التى حددتها له وهي SALES .


عمر باعقيل
كندا - مونتريال
[email protected]

Combo_Box.fmb

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

فعلا انها لا تعمل عندى
لكن شكرا للمتابعه أخ عمر و ننتظر من حضرتك المتابعه لنستفيد من خبرتك بالاوراكل
شكراً

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

عزيزي john
بالنسبة لطريقة ان تجعل First record هو القيمة الافتراضية فهي ممكنه كالتي

:dname:=get_list_element_label('dname',1);


وسيصبح الكود كاملاً كالتي

	declare
 v_group number;
 First_element varchar2(200);
begin
 v_group := populate_group('rec_dept');
 Clear_list('dname');
 populate_list('dname','rec_dept');
 :dname:=get_list_element_label('dname',1);
 
end;


وشكراً

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

شكككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككككراااااااااااااااااااااااااااااااااااااااا جدا جدا جدا جدا جدا جدا جداجدا يأستاذ خالد لقد وصلت للمطلوب
و الفضل لك
و انا سوف اضح الفورم كاملة للأعضاء لكى تعم الفائدة
شكراً

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

  • بعد 7 شهور...

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

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

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

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

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

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

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