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

مشكله مع Check Box في فورم من نوع Tabular

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله و بركاته
لدي فورم يحتوي حقلين(ID ,Name) قمت باضافه Check box و Button ..
عندما يقوم المستخدم بتحديد عدد من السجلات عن طريق ال Check box ثم يضغط على ال Button سوف تحذف السجلات التي اختارها عن طريق ال Check box ..
المشكله في الكود انه يحذف بعض السجلات و يترك بعضها.
ارجوا منكم الحل..
الفورم و كود انشاء الجدول موجود في المرفقات
و شكرا

Check delete.rar

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

اخي العزيز
اشكرك على جهودك القيمه
لقد عرفت الحل و الحمد لله
حيث ان الاوراكل عندما تحذف سجل فانها تتحرك اتوماتيكيا الى السجل التالي ..
و في الكود الذي كتبته فانه يتحرك للسجل التالي بدون مقارنه الشرط هل ان القيد قد تم مسحه ام لا مما يؤدي الى تجاوز قيد يلي القيد الممسوح وفي هذه الحاله لو قمت بتاشير 10 سجلات متتاليه فانه سوف يمسح الاول و يترك الثاني ثم يمسح الثالث و يترك الرابع و هكذا...الخ
لذلك يجب معرفه ان القيد تم مسحه او لا فاذا تم المسح فلايتحرك للفيد التالي حيث ان المؤشر ذاتيا قد تحرك عند عمليه المسح
اما اذا لم يمسح فيحرك للسجل التالي
و فيما يلي الكود:

الكود السابق :

BEGIN

GO_BLOCK('T2');  -- FIRST GO TO THE BLOCK
	FIRST_RECORD;  -- START FROM THE FIRST RECORD
LOOP
	IF :T2.C1='1' THEN  --  IF CHECK 
		DELETE_RECORD; -- DELETE RECORD 
	END IF; 
		EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';  --  EXIT 
	NEXT_RECORD; -- GO TO NEXT RECORD
END LOOP; -- END LOOP;


END;



الكود الصحيح:

BEGIN
GO_BLOCK('T2');  -- FIRST GO TO THE BLOCK
FIRST_RECORD;  -- START FROM THE FIRST RECORD
LOOP
IF :T2.C1='1' THEN  --  IF CHECK 
	DELETE_RECORD; -- DELETE RECORD 
else
	NEXT_RECORD; -- GO TO NEXT RECORD	
END IF; 
if  :SYSTEM.LAST_RECORD='TRUE' then  
	if  :T2.C1='1' then
		DELETE_RECORD;
	end if;
	exit ;
end if;
END LOOP; -- END LOOP;
END;

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

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

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

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

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

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

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.