بتاريخ: 24 يوليو 200520 سنة comment_42425 صباح الخير شباب في شغلة محيرتني وهي : انه كيف ممكن اخلي LIST ITEM POPLIST تقرا من جملة SELECT علما باني كتبت كود وبعطيني ارروروروDECLARE ID_DPET RECORDGROUP; ERR_NO NUMBER; BEGIN ID_DEPT:=CREATE_GROUP_FROM_QUERY('RG_DEPT','SELECT COURSE_DEPT FROM COURSE_TYPE WHERE COURSE_ID=:COURSE_CIVIL.COURSE_ID'); ERR_NO:=POPULATE_GROUP('ID_DEPT'); IF ERR_NO=0 THEN POPULATE_LIST('COURSE_CIVIL.COURSE_DEPT',ID_DEPT); END IF; DELETE_GROUP(ID_DEPT);END; تقديم بلاغ
بتاريخ: 24 يوليو 200520 سنة comment_42427 والله ما عندي خلفيه على سؤالك واتمنى ان يفيدووك الاخوة تقديم بلاغ
بتاريخ: 24 يوليو 200520 سنة comment_42433 الاخ الكريم يوجد طريقة للتعامل مع pOPLIST وانا اضعها بين يديك وهيعمل PROCEDURE على مستوى الفورم وليكن اسمه كالتالي ADMIN05_RECENT_LIST وتكتب فيه التاليprocedure ADMIN05_RECENT_LIST (pin_list_name IN varchar2, pin_list_value IN varchar2, pin_list_label IN varchar2) is /* Working variables */ t_list_id item ; t_list_count number(3) ; t_loop_count number(3) ; t_list_label varchar2(60) ; t_list_value varchar2(60) ; t_label_match boolean := FALSE ; t_value_match boolean := FALSE ;begin /* Find the list item */ << find_list >> t_list_id := find_item(pin_list_name) ; if id_null(t_list_id) then message(pin_list_name||' is not found.') ; return ; end if ; /* Determine the total number of list elements. */ t_list_count := nvl(Get_List_Element_Count(t_list_id),0) ; if t_list_count = 1 then goto add_element ; end if ; /* Compare the current list item labels with the label that will be added. */ << compare_labels >> t_loop_count := 1 ; loop t_list_label := Get_List_Element_Label(t_list_id, t_loop_count) ; if upper(pin_list_label) = upper(t_list_label) then t_label_match := TRUE ; end if ; exit when (t_label_match or t_loop_count = t_list_count) ; t_loop_count := t_loop_count + 1 ; end loop ; /* Compare the current list item values with the value that will be added. */ << compare_values >> t_loop_count := 1; loop t_list_value := Get_List_Element_Value(t_list_id, t_loop_count) ; t_loop_count := t_loop_count + 1 ; if upper(pin_list_value) = upper(t_list_value) then t_value_match := TRUE ; end if ; exit when (t_value_match or t_loop_count = t_list_count) ; end loop ; /* Add the element and value if it is not in the current list */ << add_element >> if not (t_label_match OR t_value_match) then Add_List_Element(t_list_id, t_list_count+1, pin_list_label, pin_list_value); end if ;end ADMIN05_RECENT_LIST ;ثم تعمل جملة SELECT في اي BUTTONوتعمل فيها LOOPبالشكل التاليDECLARECURSER C IS SELECT COURSE_DEPT,course_desc FROM COURSE_TYPE WHERE COURSE_ID=:COURSE_CIVIL.COURSE_ID;beginfor i in c loopadmin05_recent_list('Name_of_Poplist',i.COURSE_DEPT,i.COURSE_DEPT) ;end loop;end;هذا اكيد 100% يستفاد من هذا PROCEDURE في التحديث على POPLIST وكذلك في الاضافة تم تعديل 24 يوليو 200520 سنة بواسطة Admin05 تقديم بلاغ
بتاريخ: 24 يوليو 200520 سنة comment_42545 اخى الكريم /yamar911الطريقة التى تعمل بها سليمة انشاء الله تعالىولكن اظن ان المشكلة فى كيفية تشغيل هذه الخطوات ومتىيمكنك اخى تحويل الكود كما هو الى Program Unitواستدعاء وقتما تشاء مثلابصورة اساسية فى When-New-Form-Instance لملاء القائمة عند بداية عمل النموذجفى When-New-Record-Instance لتحديث القائمة عند الانتقال بين السجلاتولتحويل الكود الذى تستخدمه الى Program Unitمع عليك الى السطر procedure Call_list is بدلا من سطر Declare وبذلك يصير اسم الـ Program Unit Call_listويمكنك استدعاء بكتابة اسمه فقط Call_list; مع تحياتىاسامه سليمانالقاهرة تقديم بلاغ
بتاريخ: 25 يوليو 200520 سنة comment_42572 مشكور على الافادة تم تعديل 25 يوليو 200520 سنة بواسطة Admin05 تقديم بلاغ
بتاريخ: 26 يوليو 200520 سنة كاتب الموضوع comment_42737 شكرا جدا شباب على اهتمامكم وانا اعتذر لاني اتاخرت بالرد ومشكورين جدا تقديم بلاغ
بتاريخ: 27 يوليو 200520 سنة comment_42903 السلام عليكمهناك يا اخى طريقة اخرى لعمل LIST ITEM وملئه من جدول عن طريق CURSORفى ال DECLAR نعرف الكارسورCURSOR name_cur IS SELECT field1,field2,.... from table;name_rec name_cur%rowtype;مع العلم ان name_cur هو اسم الكارسور و name_rec هو object من الكارسورفى ال begin نكتب الكودopen name_cur ; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.