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

POPLIST WITH RECORD GROUP


yamar911

Recommended Posts

صباح الخير شباب في شغلة محيرتني وهي : انه كيف ممكن اخلي
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;

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

الاخ الكريم يوجد طريقة للتعامل مع 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
بالشكل التالي

DECLARE

CURSER C IS
SELECT COURSE_DEPT,course_desc FROM COURSE_TYPE WHERE COURSE_ID=:COURSE_CIVIL.COURSE_ID;

begin
for i in c loop
admin05_recent_list('Name_of_Poplist',i.COURSE_DEPT,i.COURSE_DEPT) ;

end loop;

end;

هذا اكيد 100% يستفاد من هذا PROCEDURE في التحديث على POPLIST وكذلك في الاضافة

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

اخى الكريم /yamar911

الطريقة التى تعمل بها سليمة انشاء الله تعالى
ولكن اظن ان المشكلة فى كيفية تشغيل هذه الخطوات ومتى

يمكنك اخى تحويل الكود كما هو الى Program Unit
واستدعاء وقتما تشاء مثلا
بصورة اساسية فى When-New-Form-Instance لملاء القائمة عند بداية عمل النموذج
فى When-New-Record-Instance لتحديث القائمة عند الانتقال بين السجلات


ولتحويل الكود الذى تستخدمه الى Program Unit
مع عليك الى السطر

procedure Call_list is



بدلا من سطر

Declare



وبذلك يصير اسم الـ Program Unit Call_list

ويمكنك استدعاء بكتابة اسمه فقط

Call_list;



مع تحياتى
اسامه سليمان
القاهرة

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

السلام عليكم
هناك يا اخى طريقة اخرى لعمل 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 ;

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

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

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

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

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

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

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

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