بتاريخ: 4 يونيو 201411 سنة comment_251549 tlist بتاخد قيمتها من tlist تانيه فى نفس الcanaves تقديم بلاغ
بتاريخ: 4 يونيو 201411 سنة comment_251551 السلام عليكم اخى الكريمتستطيع اضافة trigger على الlist 1WHEN-LIST-CHANGEDبحيث كلما اختلفت القيمة يعمل Populate_list مرة اخرى تقديم بلاغ
بتاريخ: 4 يونيو 201411 سنة كاتب الموضوع comment_251553 انا مش عامل record group اصلا انا عامل button كل ما اضغط عليه يدخلى قيمه فى ال tlist الاولى انا عاوز لما تدخل قيمه فى الاولى اضيف قيمه فى التانيه تقديم بلاغ
بتاريخ: 5 يونيو 201411 سنة كاتب الموضوع comment_251621 زى ما فى الصوره انا عامل data block ,button and two tlist وعامل ال button navigation with no وعن طريق add_list_element بقدر اضيف فى ال tlist الاولى من الdatablock وعاوز اول ما اضيف فى الاولى تروح القيمه فى التانيه انا كتبت كود فى when_list_changed لكن دا مبيحصلش الا لما اضغط انا على القيمه اللى فى الاولى تروح فى التانيه زى ما فى الصوره تقديم بلاغ
بتاريخ: 5 يونيو 201411 سنة كاتب الموضوع comment_251623 ADD_LIST_ELEMENT('list13', 1, :DEPARTMENT_name, :DEPARTMENT_ID); next_record; if :departments.department_id is null and :departments.department_name is null then message('NO MORE DATA'); raise form_trigger_failure; end if; دا الكود اللى انا كاتبه فى ال BUTTON ودا الكود اللى انا كاتبه فى WHEN_LIST_CHANGED DECLARE VNAME VARCHAR2(60); VAL NUMBER; BEGIN IF :LIST13 IS NOT NULL THEN VNAME:=GET_LIST_ELEMENT_LABEL('LIST13', 1); VAL :=GET_LIST_ELEMENT_VALUE('LIST13', 1); ADD_LIST_ELEMENT('LIST2',1,VNAME,VAL); ELSE NULL; END IF; END; تقديم بلاغ
بتاريخ: 26 يونيو 201411 سنة comment_252461 اذا اردت أن تنقل كل القيم من الليست الأوله الى الليست الثانيه ممكن تعبي الليست الثانية زي ما عبيت الأولة وبعدبن تمسح الأوله : 1- عبي الليست الثانية بنفس الطريقة اللي قمت بتعبئة الولة 2- مسح محتويات االليست الأولة CLEAR_LIST('sound_tlist'); أما اذا أردت أن تقوم بنقل فقيمة من ليسته الى أخرى فبأمكانك استخدام الكود المرق في هذا التعليق وهو عبارة عن function + procedure مكتوب داخل program unit of develper ويمشي مع 6i + 11g قم بالأستدعاء كالتالي : Pick_Lst( p_lst1 => 'first_tlist' , p_lst2 => 'scond_tlist'); حيث ان هذا الاجؤاء يستخدم بداخلة ايضا داله تعيد تسلسل القيمة المراد نقلها وهي تعمل بصورة سليمة بالتوفيق تقديم بلاغ
بتاريخ: 26 يونيو 201411 سنة comment_252462 اذا اردت أن تنقل كل القيم من الليست الأوله الى الليست الثانيه ممكن تعبي الليست الثانية زي ما عبيت الأولة وبعدبن تمسح الأوله : 1- عبي الليست الثانية بنفس الطريقة اللي قمت بتعبئة الولة 2- مسح محتويات االليست الأولة CLEAR_LIST('sound_tlist'); أما اذا أردت أن تقوم بنقل فقيمة من ليسته الى أخرى فبأمكانك استخدام الكود المرق في هذا التعليق وهو عبارة عن function + procedure مكتوب داخل program unit of develper ويمشي مع 6i + 11g قم بالأستدعاء كالتالي : Pick_Lst( p_lst1 => 'first_tlist' , p_lst2 => 'scond_tlist'); حيث ان هذا الاجؤاء يستخدم بداخلة ايضا داله تعيد تسلسل القيمة المراد نقلها وهي تعمل بصورة سليمة بالتوفيق FUNCTION Get_Lst_indx(p_lst_nm Varchar2 , p_elmnt_val varchar2) RETURN number IS list_id ITEM ;-- List item that We will add to loop_index_var NUMBER := 1; total_list_count NUMBER ; list_index NUMBER; list_element VARCHAR(500); list_element_value VARCHAR(500); value_found BOOLEAN:= FALSE; BEGIN list_id := Find_item(p_lst_nm); -- List item that We will add to If ID_NULL(list_id) THEN RETURN NULL; END IF; /* ** Determine the total number of list elements that will added to. */ total_list_count := Get_List_Element_Count(list_id); /* ** Compare the current list item values with the value that ** will be added. */ loop_index_var := 1; LOOP list_element_value:= Get_List_Element_Value(list_id,loop_index_var); list_element := Get_List_Element_Label(list_id,loop_index_var); IF p_elmnt_val = list_element_value THEN value_found := TRUE; END IF; EXIT WHEN value_found OR loop_index_var = total_list_count; loop_index_var := loop_index_var +1; END LOOP; --================================================ IF value_found tHEN RETURN loop_index_var ; ELSE RETURN -1 ; END IF; --================================================ EXCEPTION WHEN OTHERS THEN RETURN -1 ; END Get_Lst_indx; PROCEDURE Pick_Lst( p_lst1 VARCHAR2, p_lst2 VARCHAR2) IS group_id RecordGroup; group_name VARCHAR2(100):= 'NEWLIST'; Status NUMBER; ----------------------------- list_id1 ITEM ;-- List item that We will add from list_id2 ITEM ;-- List item that We will add to Curr_index_val NUMBER(3) := Get_Lst_indx(p_lst_nm => p_lst1 , p_elmnt_val =>Name_in(p_lst1) ); loop_index_var1 NUMBER(3) := 1; loop_index_var2 NUMBER(3) := 1; total_list_count1 NUMBER ; total_list_count2 NUMBER ; list_index1 NUMBER; list_index2 NUMBER; list_element1 VARCHAR2(200); list_element2 VARCHAR2(200); list_element_value1 VARCHAR2(500); list_element_value2 VARCHAR2(500); -- element lable & element Value to add list_element_to_add VARCHAR2(200); list_value_to_add VARCHAR2(500); value_found VARCHAR2(5) := 'FALSE'; BEGIN ------------------------------------------------------------------- list_id1 := Find_item(p_lst1); -- List item that We will add from list_id2 := Find_item(p_lst2); -- List item that We will add to If ID_NULL(list_id1) OR ID_NULL(list_id2) THEN RETURN; END IF; ------------------------------------------------------------------- list_value_to_add := Name_in(p_lst1); -- Value of List item that will be added to the target list "list2". IF list_value_to_add IS NULL THEN show_message; RETURN; END IF; /* ** Determine the total number of list elements of "List1" that will added from . */ total_list_count1 := Get_List_Element_Count(list_id1); /* ** Finding the "LABEL" of desired value "list_value_to_add" to added to "List2" ** by looping . */ loop_index_var1 := 1; LOOP list_element_value1 := Get_List_Element_Value(list_id1,loop_index_var1); list_element1 := Get_List_Element_Label(list_id1,loop_index_var1); IF list_element_value1 = list_value_to_add THEN value_found := 'TRUE'; END IF; EXIT WHEN list_element_value1 = list_value_to_add OR loop_index_var1 = total_list_count1; loop_index_var1 := loop_index_var1 + 1; END LOOP; If list_element_value1 <> list_value_to_add THEN RETURN; END IF; -- Label of Value to Add list_element_to_add := list_element1 ; ------------------- End first part ---------------------- -- Reset Value found to start searching in the target List value_found:= 'FALSE'; /* ** Determine the total number of list elements that will added to. */ total_list_count2 := Get_List_Element_Count(list_id2); /* ** Compare the current list item values with the value that ** will be added. */ loop_index_var2 := 1; LOOP list_element_value2 := Get_List_Element_Value(list_id2,loop_index_var2); list_element2 := Get_List_Element_Label(list_id2,loop_index_var2); --#--------------------------------------------#-- IF list_value_to_add = list_element_value2 THEN value_found := 'TRUE'; END IF; EXIT WHEN list_element_value2 = list_value_to_add OR loop_index_var2 = total_list_count2; loop_index_var2 := loop_index_var2 + 1; END LOOP; -- Add the element and value if it is not in the current list IF value_found = 'FALSE' then Add_List_Element(list_id2, loop_index_var2 +1, list_element_to_add, list_value_to_add); END IF; If list_element_value1 = list_value_to_add THEN Delete_List_Element(list_id1,loop_index_var1); Go_Item(list_id1); End If; Exception when Others Then :ftr.err:=error_code||'-'||error_type||'-'|| error_text; END Pick_Lst; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.