الانتقال إلى المحتوى
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.

منع تكرار صف من الفورم

Featured Replies

بتاريخ:

السلام   عليكم 

لدي فورم   به معلومات عن  فاتورة الشراء وعن محتويات فاتورة الشراء بعد ادخال رقم فاتورة الشراء  يظهر البلوك الخاص   بالمحتويات ويقوم المستخدم باختيار رقم  المنتج  بمجرد الضغط بالماوس في  مكان رقم المنتج تظهر لوف  يختار المستخدم منها رقم المنتج ووصفه  ثم يسجل الكميه المطلوبه  المستخدم  المطلوب الا يتكرر نوع المنتج  في الفورم بمجرد تكراره  تظهر رساله تحذيريه للمستخدم  قمتا  بكتابة هذا الكود وكتب أحد الزملاء كودا اخر  كلاهما يؤدي الغرض  لكن لاافهم لم كتب بهذا الشكل 

كودي :

FUNCTION CHECK_REPEATED(CHECKED_VALUE NUMBER ) RETURN BOOLEAN  IS
	ROW_NUMBER NUMBER ; 
	ROW_VALUE NUMBER ; 
	REPEATED BOOLEAN ; 
BEGIN
  ROW_NUMBER:=:SYSTEM.CURSOR_RECORD ;
	 ROW_VALUE:=:PRODUCT_NO; 
		IF ROW_NUMBER!=1  THEN 
				FOR  X IN 1..ROW_NUMBER-1 LOOP 
					FIRST_RECORD ; 
					IF CHECKED_VALUE=ROW_VALUE THEN 
					
						REPEATED:=TRUE; 
						EXIT ;
					ELSE
						REPEATED:=FALSE;
						NEXT_RECORD ;
					END IF ; 	
				END LOOP ;
			
		END IF ; 
		RETURN REPEATED ;
END;

كود  زميلي :

FUNCTION mostafafunction(product_no  varchar2) RETURN number  IS
is_duplicated char(5); 
current_rec_no number(3);
last_rec_no number(3);
cur_val varchar2(20);
form_name varchar2(40) ;
BEGIN
	is_duplicated:='false' ; 
	current_rec_no:=to_number(name_in('system.cursor_record')) ;
	cur_val:=name_in(product_no);
	form_name:=get_application_property(current_form_name);
	set_form_property(form_name,validation,property_false);
	last_record ;
	if  name_in('system.cursor_record')<>1 then 
		last_rec_no:=to_number(name_in('system.cursor_record'));
		first_record ;
		for row_count in 1..last_rec_no loop 
			if current_rec_no<>row_count then 
							if cur_val=name_in(product_no) then 
								is_duplicated:='true'; 
								exit;
							end if ;
			end if ; 
			if last_rec_no<>row_count then 
				next_record ;
			end if ;
		end loop ;
	end if ;
	go_record(current_rec_no);
		set_form_property(form_name,validation,property_true);
		if is_duplicated='TRue' then 
			return(1);
		else
			return(0);
		end if ;
  
END;

هل من الممكن شرح لم استخدم NAME_IN  ولماذا وضع خاصيه  الفورم فالديشن ؟؟؟؟؟؟؟

ولكم جزيل الشكر 

بتاريخ:

هل من الممكن شرح لم استخدم NAME_IN  ولماذا وضع خاصيه  الفورم فالديشن ؟؟؟؟؟؟؟

ولكم جزيل الشكر

 

- ملهمش اى فايدة.

-  تقدر تعمل database unique constraint على الاعمدة المرغوبة وفى تريجر on-error تقدر تغير رسالة الايرور الى هيطلع, وتتشيك قبل ما الراجل يحفظ الداتا وتستغنى عن الكود ده.

تم تعديل بواسطة eslam elbyaly

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

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

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

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

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

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.