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

ال Text Item لايقبل الا ارقام

Featured Replies

بتاريخ:

اخواني السلام عليكم ورحمة الله وبركاته

كيف اجعل ال text item لايقبل الا ارقام فقط وايضا اجعله لايقبل الا حروف فقط



وشكرا لكم

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

وينكم يا اخواني المبرمجين

بتاريخ:

بسم الله الرحمن الرحيم

بالنسبه للـitems اللى نوعها number فهى بطبيعتها لا يمكن أن تدخل فيها حروف
أما بالنسبه للـitems اللى نوعها varchar تقبل بالفعل حروف وحل هذه المشكله
إنك تعمل trigger على مستوى الـitem
when-validate-item وتكتب هذا الكود
مع العلم أن هذا المثال على عمود الـename فى جدول الـemp على scott schema

declare
a number:=0;
begin a:=to_number(:ename); 
if a<>0 then
message('no');
message('no');
raise form_trigger_failure;
end if; 
exception
when value_error then :ename:=:system.current_value;
end;

بتاريخ:

انت ليه اشترطت انه لا يساوى صفر
؟
انا اللى كنت بعمله فى المشروع

declare
v    number;
W    NUMBER;
begin IF :WORKERS.TEL IS NULL THEN
  NULL;
ELSIF length(:WORKERS.TEL)<8 OR SUBSTR(:WORKERS.TEL,1,1)<>'0'--OR TO_NUMBER(:SUPPLIERS.TEL)<0 OR TO_CHAR(SUBSTR(:SUPPLIERS.TEL,1,1))<>'0'THEN
 	THEN 
 	SET_ALERT_PROPERTY('ALRT2', alert_message_text,'ÇáÑÌÇÁ ÅÏÎÇá ÑÞã áÇíÞá Úä ËãÇäíÉ ÃÑÞÇã æ íÈÏà ÈÕÝÑ');
  SET_ALERT_PROPERTY('ALRT2', TITLE, 'ÊäÈíå' );
	SET_ALERT_BUTTON_PROPERTY('ALRT2',ALERT_BUTTON1,LABEL, 'ÍÓäÇ' );
	-----------------------------------------------
	W:=SHOW_ALERT('ALRT2');
	IF W=ALERT_BUTTON1 THEN
	  NULL;
	END IF;
 	RAISE FORM_TRIGGER_FAILURE;
ELSE
 	FOR N IN 1..LENGTH(:WORKERS.TEL) LOOP
 	V:=ASCII(SUBSTR(:WORKERS.TEL,N,1));
 	IF V NOT BETWEEN 48 AND 57 THEN 
 	SET_ALERT_PROPERTY('ALRT2', alert_message_text,'ÇáÑÌÇÁ ÅÏÎÇá ÑÞã áÇíÞá Úä ËãÇäíÉ ÃÑÞÇã æ íÈÏà ÈÕÝÑ');
  SET_ALERT_PROPERTY('ALRT2', TITLE, 'ÊäÈíå' );
	SET_ALERT_BUTTON_PROPERTY('ALRT2',ALERT_BUTTON1,LABEL, 'ÍÓäÇ' );
	-----------------------------------------------
	W:=SHOW_ALERT('ALRT2');
	IF W=ALERT_BUTTON1 THEN
	  NULL;
 	END IF;
 	RAISE FORM_TRIGGER_FAILURE;
  	END IF;
 	END LOOP;
END IF;
END;

بتاريخ:


declare
v number;
W NUMBER;
begin IF :WORKERS.TEL IS NULL THEN
NULL;
ELSIF length(:WORKERS.TEL)<8 OR SUBSTR(:WORKERS.TEL,1,1)<>'0'--OR TO_NUMBER(:SUPPLIERS.TEL)<0 OR TO_CHAR(SUBSTR(:SUPPLIERS.TEL,1,1))<>'0'THEN
THEN
SET_ALERT_PROPERTY('ALRT2', alert_message_text,'ÇáÑÌÇÁ ÅÏÎÇá ÑÞã áÇíÞá Úä ËãÇäíÉ ÃÑÞÇã æ íÈÏà ÈÕÝÑ');
SET_ALERT_PROPERTY('ALRT2', TITLE, 'ÊäÈíå' );
SET_ALERT_BUTTON_PROPERTY('ALRT2',ALERT_BUTTON1,LABEL, 'ÍÓäÇ' );
-----------------------------------------------
W:=SHOW_ALERT('ALRT2');
IF W=ALERT_BUTTON1 THEN
NULL;
END IF;
RAISE FORM_TRIGGER_FAILURE;
ELSE
FOR N IN 1..LENGTH(:WORKERS.TEL) LOOP
V:=ASCII(SUBSTR(:WORKERS.TEL,N,1));
IF V NOT BETWEEN 48 AND 57 THEN
SET_ALERT_PROPERTY('ALRT2', alert_message_text,'ÇáÑÌÇÁ ÅÏÎÇá ÑÞã áÇíÞá Úä ËãÇäíÉ ÃÑÞÇã æ íÈÏà ÈÕÝÑ');
SET_ALERT_PROPERTY('ALRT2', TITLE, 'ÊäÈíå' );
SET_ALERT_BUTTON_PROPERTY('ALRT2',ALERT_BUTTON1,LABEL, 'ÍÓäÇ' );
-----------------------------------------------
W:=SHOW_ALERT('ALRT2');
IF W=ALERT_BUTTON1 THEN
NULL;
END IF;
RAISE FORM_TRIGGER_FAILURE;
END IF;
END LOOP;
END IF;
END;

بتاريخ:
كيف اجعل ال text item لايقبل الا ارقام فقط وايضا اجعله لايقبل الا حروف فقط


بص يا أخي ، يمكنك إنشاء Function إختبار ، هل القيمة المدخلة قيمة رقمية أم لا ، كما يلي :

FUNCTION IS_NUMBER(IN_TEXT VARCHAR2) RETURN BOOLEAN
IS
 N   NUMBER;
BEGIN
 N := TO_NUMBER(IN_TEXT);
 RETURN TRUE;
EXCEPTION
 WHEN OTHERS THEN
RETURN FALSE;
END;




ويمكنك إستدعائة في حدث WHEN-VALIDATE-ITEM لمربع النص كما يلي :

IF(IS_NUMBER(:ENAME) = TRUE)THEN
MESSAGE('القيمة المدخلة غير سليمة');
MESSAGE('القيمة المدخلة غير سليمة');
RAISE FORM_TRIGGER_FAILURE;
END IF;





أو تستخدم نفس الطريقة الذي أشار بها الأخ الكريم ( أمجد )

أو هناك فكرة أخري ، وهو أن تلعب بمجموعة خصائص الـ Data !!!

1- DataType ، نوع البيان ( رقمي - نصي - تاريخ - وقت - ................ الي آخرة ).
2- Maximum Lenght ، أكبر طول يحملة مربع النص.
3- Fixed Lenght ، إجبار أخز كافة المساحة المحجوزة ، بحيث لو كان المساحة 10 حروف ، يجب أن يتم إدخال الطول كلياً.
4- Initial Value ، القيمة الإفتراضية.
5- Required ، حتمية إدخال أي قيمة بالحقل ، مثل الـ Not Null بحقل قاعدة البيانات.
6- Format Mask ، شكل إدخال الحقل ، مثلاً شكل إدخال تاريخ ( yyyy/mm/dd ) .
7- Lowest Allowed Value ، أقل قيمة يمكن إدخالها ، مثلاً لو كان هذا الحقل حقل راتب الموظف ، يمكننا إضافة الرقم 500 بحيث أن لا يقل راتب الموظف عن 500 جنية.
8- Highest Allowed Value ، أكبر قيمة ، مثلاً لو كان الحقل حقل راتب الموظف ، يمكنك إدراج به الرقم 5000 بحيث أن لا يزيد راتب الموظف عن 5000 جنية.
9- Copy Value From Item ، هذه الخاصية مفيدة جداً أثناء الربط مع Master و Detail ، حيث تأخذ قيمة Item من بلوك معين ، وتنسخة في Item لبلوك آخر.
10- Synchronize with Item ، وهو ربط Item مع Item آخر ، بحيث أن يكون نفس القيمة واحدة .





سؤال للأخ Amgad ، ممكن تشرح لنا الكود التالي :

exception
when value_error then :ename:=:system.current_value;







شكراً

بتاريخ:

بالنسبه للـexception فدا علشان انت لو جيت تدخل حروف مع أرقام هيطله error ومن الطبيعى إن انا ممكن أدخل حروف مع
أرقام بس أهم حاجه ماتكونش أرقام فقط . وهذا الـerror إسمه value_error فإذا حدث هذا الـerror ياخد القيمه المكتوبه حالياً وأكيد هتبقى حروف مع أرقام .

ولو مشعايز الـtextitem يقبل أرقام خالص حتى لو كانت مع حروف ممكن تعدل فى الـexception .

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

شكرا لكم جميعا يا اخواني ووفقكم الله وجعله في ميزان حسناتكم

بتاريخ:

السلام عليكم

فى الفانكشن اللى مبعوته

IF(IS_NUMBER(:ENAME) = TRUE)THEN



تقصد false مش true

طب لو عايز اخلى التكست ايتم مش ياخد غير حروف بس ازاى يكون شكل الكود؟؟
السلام عليكم ورحمة الله وبركاته،،

  • بعد 3 شهور...
بتاريخ:

[السلام عليكم

يا اخى ممكن تعمل خصائص ال text item فى data type تغيرها و تعملها Alpha و سعتها مش هايقبل اى ارقام ..............

بتاريخ:

هذا الموضوع من فترة طويلة وللأسف لم أنتبه إلية ... فآسف جداً !!!!


فى الفانكشن اللى مبعوته
IF(IS_NUMBER(:ENAME) = TRUE)THEN
تقصد false مش true



هذا صحيح ... بس للأسف أنا لم أأخذ في بالي

طب لو عايز اخلى التكست ايتم مش ياخد غير حروف بس ازاى يكون شكل الكود؟؟



 
FUNCTION IS_CHAR(IN_CHAR VARCHAR2) RETURN BOOLEAN
AS
 ID_LOOP NUMBER;
 ID_RETURN BOOLEAN;

 FUNCTION IS_NUMBER(IN_TEXT VARCHAR2) RETURN BOOLEAN
 IS
N NUMBER;
 BEGIN
N := TO_NUMBER(IN_TEXT);
RETURN TRUE;
 EXCEPTION
WHEN OTHERS THEN
   RETURN FALSE;
 END; 
BEGIN
 ID_RETURN := TRUE;

 FOR ID_LOOP IN 1 .. LENGTH(IN_CHAR)
 LOOP
IF(IS_NUMBER(SUBSTR(IN_CHAR,ID_LOOP,1)) = TRUE)THEN
  ID_RETURN := FALSE;
  EXIT;
END IF;
 END LOOP;

 RETURN ID_RETURN;
END;



وفي حدث WHEN-VALIDATE-ITEM لمربع النص تكتبي ما يلي :

IF(IS_CHAR(:TEXT_ITEM1) = FALSE)THEN
 MESSAGE('القيمة المدخلة يجب أن لا تحتوي علي أي قيم رقمية');
 MESSAGE('القيمة المدخلة يجب أن لا تحتوي علي أي قيم رقمية');
 RAISE FORM_TRIGGER_FAILURE;
END IF;






بالتوفيق للجميع

بتاريخ:

بالتوفيق للجميع ان شاء الله

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

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

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

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

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

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.