الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

يا جماعه انا عاوز اعمل Two Tlist

Featured Replies

بتاريخ:

tlist بتاخد قيمتها من tlist تانيه فى نفس الcanaves

بتاريخ:

السلام عليكم اخى الكريم
تستطيع اضافة trigger على الlist 1
WHEN-LIST-CHANGED
بحيث كلما اختلفت القيمة يعمل Populate_list مرة اخرى

بتاريخ:
  • كاتب الموضوع

انا مش عامل  record group  اصلا انا عامل  button كل ما اضغط عليه يدخلى قيمه فى ال tlist  الاولى  انا عاوز لما تدخل قيمه فى الاولى اضيف قيمه فى التانيه

بتاريخ:

ياريت توضيح بمثال اكثر

بتاريخ:
  • كاتب الموضوع

post-143420-0-28999500-1402003575_thumb.jpg زى ما فى الصوره انا عامل data block ,button and two tlist  وعامل ال button navigation  with no وعن طريق add_list_element  بقدر اضيف فى ال tlist الاولى من الdatablock وعاوز اول ما اضيف فى الاولى تروح القيمه فى التانيه انا كتبت كود فى when_list_changed لكن دا مبيحصلش الا لما اضغط انا على القيمه اللى فى الاولى تروح فى التانيه زى ما فى الصوره

بتاريخ:
  • كاتب الموضوع
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;
  • بعد 3 أسابيع...
بتاريخ:

اذا اردت أن تنقل كل القيم من الليست الأوله الى الليست الثانيه ممكن تعبي الليست الثانية زي ما عبيت الأولة وبعدبن تمسح الأوله :

 

1- عبي الليست الثانية بنفس الطريقة اللي قمت بتعبئة الولة

2- مسح محتويات االليست الأولة 

CLEAR_LIST('sound_tlist');

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

function + procedure 

مكتوب داخل 
program unit of develper 

ويمشي مع 

6i + 11g

قم بالأستدعاء كالتالي : 

Pick_Lst( p_lst1 => 'first_tlist' , p_lst2 => 'scond_tlist');

حيث ان هذا الاجؤاء يستخدم بداخلة ايضا داله تعيد تسلسل القيمة المراد نقلها وهي تعمل بصورة سليمة 

بالتوفيق 

بتاريخ:

اذا اردت أن تنقل كل القيم من الليست الأوله الى الليست الثانيه ممكن تعبي الليست الثانية زي ما عبيت الأولة وبعدبن تمسح الأوله :

 

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;

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.