بتاريخ: 7 نوفمبر 200916 سنة comment_175685 بسم الله الرحمن الرحيمالسلام عليكم ورحمة الله وبركاتة زيكم يا بشمهندسين المهم بقى ندخل فى الموضوع انا عندى textbox نوعها number وطبعا لما بتكب فيها نص مش بيخلى insertion point من textbox ودة الصح طبعا طيب المشكلة اية ان لمستخدم ممكن يروح بالموس يضغط على حفظ ودى حتسبب عندى مشكلة يبقى انا عاوز اعمل كود فى الحدث WHEN-BUTTON-PRESSEDانو يشوف القيمة الموجود فى textbox دى رقم يسمح له انو يعمل حفظ لو لا يوقف الكودحديكوا مثال علشان محدش يقول مش فاهم DECLARE V_FIND ITEM; V_CHECK VARCHAR2(15); -- ALTER VARIABLE V_ALERT ALERT; V_SHOW_ALERT NUMBER; BEGIN IF :CARS_FOR_SALE.MANUFACTURER_SHORTNAME IS NULL THEN V_ALERT:=FIND_ALERT('CONFIRM_ALERT'); IF NOT ID_NULL(V_ALERT) THEN SET_ALERT_PROPERTY('CONFIRM_ALERT',TITLE,'Sala Car Project - Warning'); SET_ALERT_PROPERTY('CONFIRM_ALERT',ALERT_MESSAGE_TEXT,'You Should Enter Manufacturer Name'); SET_ALERT_BUTTON_PROPERTY('CONFIRM_ALERT',ALERT_BUTTON1,LABEL,'OK'); SET_ALERT_BUTTON_PROPERTY('CONFIRM_ALERT',ALERT_BUTTON2,LABEL,'Help'); V_SHOW_ALERT:=show_alert('CONFIRM_ALERT'); IF V_SHOW_ALERT=ALERT_BUTTON1 THEN NULL; END IF; END IF; RAISE FORM_TRIGGER_FAILURE; END IF; END; بس فى الحالة دى انا بقولة لو الحق دة NULL طلع له رسالة قولة يجب ادخال العنصر لا انا عاوز اعملها بقى لو القيمة دى نص مش رقم او بعمنى اصح لو القيمة دى مش رقم مش تكمل الكودRAISE FORM_TRIGGER_FAILURE;ياريت اكون قدرت اوصل الفكرة ويارب حد يرد علشان اخلص من المشروع ابن التيت دة وشكرا والله المستعان تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175698 السلام عليكمأخي الكريم - أحمديوجد أمثلة كتيرة من الفانكشن تمنع من وجود حرف في ايتم رقميانظر هنا http://www.araboug.org/ib/index.php?s=&...st&p=162194أتمنى أن تلبي طلبك ويوجد غيرها كثيروفقك الله تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة كاتب الموضوع comment_175699 انا عارف موضوع البشمهندس PALI.ORACLEالخاص بالارقام بس مش عارف اظبط على الفورمة ازاى يعنى اكتب فى الحدث WHEN-BUTTON-PRESSEDازاى لو سمحت لو كود يا بشمهندس mustafagamiel او توضيح من حضرتك تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175701 السلام عليكمإذن انظر في هذا الكود ضعه على اي زرواضبط اسماء الايتم declare v_len number; -- length of the item v_value varchar2(100); -- the content of the item x number; begin v_len:= length(:emp.ph); v_value:= :emp.ph; if v_value is not null then for i in 1..v_len loop if substr(v_value,i,1) not in ('0','1','2','3','4','5','6','7','8','9') then message('not valid'); message('not valid'); raise form_trigger_failure; end if; end loop; end if; end; وفقك الله تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175710 السلام عليكم أخي العزيز هل هذا سؤالك ان لو القيم في الايتم الاي عندك ليست رقم لايكمل الكود أم ماذا ؟لو كده يبقى زي ماقلت في السابقلو غير كده وضح أكثر وفقك الله تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة كاتب الموضوع comment_175712 انا اسف على الازعاج بس انا فعلا بقول لو textitem المدخل الية ليس رقم يتم توقف الكود وبالنسبة للكود بتاع حضرتك مش شغال بدخل نص عادى وبضغط على button ومش بتظهر الرسالة message('not valid'); وحضرتك معرف x number; وانت مش استخدمتة له اهمية ولا لا وللاسف فعلا الكود مش شغال ومعلشى انا تعبك تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175714 السلام عليكملا ولاتعب ولاشيءفعلا المتغير x ليس له فائدة لكن هل نوع الايتم من النوع number لو كده يبقى انت مش محتاج اي كود لانه مباشرة هيقولك غير مسموح ودي رسالة اتوماتيك من الديفليوبير لكن لو غيرت نوع الايتم الى char طبعا مبدئيا سيمح لك بإدخال اي شيء حروف- ارقام -علامات اي شيءلكن بالكود السابق سيقوم بعمل test على محتويات الايتم ولو اكتشف ان مابداخله غير رقم سيظهر لك الرسالةأتمنى أن اكون فهمتكوربنا يوفقك لو فهمتك خطأ أرجو توضيح ماعندك اويوفقك الله تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة كاتب الموضوع comment_175715 شكرا جدا يا بشمهندس والله ما قصرت فعلا هو اشتغل مع textitem من النوع char بس ومش اشتغل مع النوع number وانا عارف ان الديفولبر مش بيسمح للمستخدم انو يخرج من textitem وهو بيكتب نص فى عمود رقم تمام ودة كويس جدا بس المشكلة عندى انى عامل فى مفتاح الحفظ انو يقفل كل textbox بعد الحفظالمشكلة اللى ممكن يقع فيها المستخدم اية ؟؟انو يدخل نص فى عمود رقمى ويروح بالموس يعمل حفظ لو مفيش حاجة تشيك على الكود وتوقفة يبقى حيقفل الـ Textbox مع ان العمود مش اتعمل لية insert والقيمة خطا اساسا .السؤال هنا ينفع نطبق كود حضرتك الجميل دة على textbox من نوع number ولا لا .وهل فية فكرة كود زى دى تعمل فلديت على التاريخ ؟او فية حاجة تتاكد ان القيمة الموجود فى Textbox الــ validate بتاعها صح ولا لا ؟مشكور بجد على الكود ومعلشى انا بتعبك معيا انت دائما اللى بترد على مشاركتى ؟ بارك الله فيك . تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175718 السلام عليكم ورحمة الله أخي العزيز بالنسبة لـ انو يدخل نص فى عمود رقمى ويروح بالموس يعمل حفظ لو مفيش حاجة تشيك على الكود وتوقفة يبقى حيقفل الـ Textbox مع ان العمود مش اتعمل لية insert والقيمة خطا اساسا زي ماتفقنا ان لو الايتم من نوع number والمستخدم ادخل حروف كده المستخدم مش هيعرف ينتقل لاي ايتم تاني لا زر ولا اي شيء ليه لانه ديماكيرسور المؤشر سيظل يطلب منك تعديل القيمة المدخلة الاي هي مش رقم وطبعا لو ضغط على الزر ولا سطر واحد سنفذ من الكود الاي داخل الزرإذنالسؤال هنا ينفع نطبق كود حضرتك الجميل دة على textbox من نوع number ولا لا هتكون الاجابة لا أو بمعنى أصح ليس لها معنىوهل فية فكرة كود زى دى تعمل فلديت على التاريخ ؟ ممكن مع بعض التعديلات فيهلكن أرجع واقولك سيكون افضل شيء هو مقاييس الديفيلوبير يعني لما يكون هناك تاريخ اختار ايتم تاريخ يقوم بالضبط لحاله وتوفر على نفسك الوقت والتكويدبالنسبة لسؤالك الخاص في موضوعكهو امتى يتم عمل ايتم من نوع char لايقبل الا رقم طبعا في حالة ادخال مثلا اشياء لها رقم على الشمال وليكن التليفونات وبعض التكويد لبعض الاصناف وهكذااتمنى أن أكون أفدتكوفقك الله تقديم بلاغ
بتاريخ: 7 نوفمبر 200916 سنة comment_175735 السلام عليكمجرب هادا الكود: declare CH Number; begin if :blk.user_name is not null then CH:=SUBSTR(:blk.user_name,1,1); IF CH BETWEEN 'a' AND 'z' THEN message('Numbers Only'); message('Numbers Only'); raise form_trigger_failure; end if; end if; end; موفق تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176047 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاتة DECLARE CH NUMBER; BEGIN IF :CARS_FOR_SALE.ASKING_PRICE IS NOT NULL THEN CH:=SUBSTR(:CARS_FOR_SALE.ASKING_PRICE,1,1); IF CH BETWEEN 'A' AND 'Z' THEN MESSAGE('NUMBERS ONLY'); MESSAGE('NUMBERS ONLY'); RAISE FORM_TRIGGER_FAILURE; END IF; END IF; END; هذا الكود مش شغال يا بشمهندس PALI.ORACLE اذا كان نوع الحقل اللى حيتعمل علية الــValidate نوعة Number فالكود دة مش بيشتغل خلاص ولكن اذا كان الحقل من النوع Char الكود بيشتغل 100 %بس حيكون فية تعديل بسيط DECLARE CH VARCHAR2(100); BEGIN IF :CARS_FOR_SALE.CURRENT_MILEAGE IS NOT NULL THEN CH:=SUBSTR(:CARS_FOR_SALE.CURRENT_MILEAGE,1,1); IF CH BETWEEN 'A' AND 'Z' THEN MESSAGE('NUMBERS ONLY'); MESSAGE('NUMBERS ONLY'); RAISE FORM_TRIGGER_FAILURE; END IF; END IF; END; فى VARIABLE تم هى كمان varchar2وبالنسبة لكود الشمهندس mustafagamiel شغال 100 % برضة مع الحقول اللى من النوع Char DECLARE V_LEN NUMBER; V_VALUE VARCHAR2(100); BEGIN V_LEN:= LENGTH(:CARS_FOR_SALE.CURRENT_MILEAGE); V_VALUE:=:CARS_FOR_SALE.CURRENT_MILEAGE; IF V_VALUE IS NOT NULL THEN FOR I IN 1..V_LEN LOOP IF SUBSTR(V_VALUE,I,1) NOT IN ('0','1','2','3','4','5','6','7','8','9') THEN MESSAGE('NOT VALID'); MESSAGE('NOT VALID'); RAISE FORM_TRIGGER_FAILURE; END IF; END LOOP; END IF; END; يبقى فى الحالتين لازم يكون Item من النوع Char السؤال يا بشمهندسين كدة خلاص مش ينفع اعمل validate ادخل رقم فقط على حقل رقمى يعنى اريح نفسى واعمل الحقل Char علشان اقدر انفذ علية Validate اللى انا عاوزة السؤال الثانى: هل اقدر اعمل validate بنفس الطريقة اقولك لو validate بتاع Item دة مظبوط اعمل يبقى تمام لو مش مظبوط يبقى يطلع ليا رسالة ويوقف الكود؟انا مش قصدى هنا على ادخل رقم فقط ؟انا قصدى هنا انو يعمل check مثلا على اى validate مثلا لما ابقى محدد Formate mask مثلا للتاريخ طبعا مش بيخرج من item الا لما بيشوف Validate انا عاوز اعمل validate دى على Button اول ما اضغط علية لو اوك بيعمل حفظ لو لا بوقف الكود نفسة فكرة الكود اللى فوق بالضبط بس مش على الرقم بس على كلة وخصوصا التاريخ .وشكرا وربنا يوافقك ويقويكم علينا وبجد انا بقى عارف لما بحط اى مشاركة فيها استفسار ان البشمهندس mustafagamiel او PALI.ORACLE و البشمهندس الجبالى كمان مع انى مش شوفتة فى المشاركة دىعلشان بجد انتم الثلاثة عاملين مجهود خرافى فى المنتدى والرد على الاستفسار لكل الاخوة فى المنتدى وجزاكم الله خير والله المستعان تم تعديل 10 نوفمبر 200916 سنة بواسطة DOMSSA تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176049 وملحوظة كمان يا بشمهندس PALI.ORACLE علشان لو حد من الاعضاء عاوز يستفيد بالشاركة لازم فى النقطة دى IF CH BETWEEN 'A' AND 'Z' THEN دة بيعمل validate على الحروف الكبيرة فقط واذا ادخلت حروف صغيرة فلن تظهر الرسالة ولا يحدث خطافيجب اضافة امر كمان للحروف الصغيرة IF CH BETWEEN 'a' AND 'z' THEN والله المستعان تم تعديل 10 نوفمبر 200916 سنة بواسطة DOMSSA تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176092 مستنى الرد يا هندسة mustafagamiel و PALI.ORACLE او اى مهندس اوراكل بيعطف على الغلابةوالله المستعان تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176123 مشكور اخى انا عارف لو قولت حاجة تانية حتضربونى اسكت احسن ههههههههههههه تم تعديل 10 نوفمبر 200916 سنة بواسطة DOMSSA تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة comment_176124 لا عادي اخي..الفورم شغاله 100 % ..ما المشكله لديك ؟؟ تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176125 لا يابشمهندس الفورمة شغال مليون % وانا مش قولت لكم حاجة فى الحوار دةانا قولت من الاول ان حل حضرتك صح والبشهندس مصطفى صح فى الكودما قصرت ابدا والله فى الجواب على اى مشاركة وكود ترلللللليون فى % بس مع Item اللى من النوع Chart فقط ولكن فى حالة ان item من النوع Number ولا شى بيحصل ولا بيظهر رسالة ارور .سؤال تتعمل ازاى مع Item اللى من النوع Number ؟وكمان لو حبيت اعمل validate على تاريخ بنفس الطريقة علشان طبعا Format Mask برضة نفس الحكاية ؟بس انا جت ليا فكرة بخصوص العنصر اللى من نوع Number بحاول اظبطها هو فى رسالة Error رقم 50016FRM-50016: Legal characters are 0-9 - + E دى ممكن تتعمل فى On-error لو سمحت اخرى الفاضل انا لقيت مشاركات فى المنتدى CREATE OR REPLACE function HANON_OCP.isNumber( p_string in varchar2 ) return boolean as x number; not_a_number exception; pragma exception_init( not_a_number, -6502 ); begin x := to_number( p_string ); return true; exception when not_a_number then return false; WHEN OTHERS THEN RETURN FALSE; end; وطريقة اخرى FUNCTION is_number (numstring VARCHAR2) RETURN BOOLEAN IS /* Returns true if the string contains a valid number */ w_num NUMBER; BEGIN w_num := TO_NUMBER(numstring); RETURN TRUE; EXCEPTION WHEN INVALID_NUMBER OR VALUE_ERROR THEN RETURN FALSE; END is_number; الكود دة ممكن يتوظف مع الديفلوبر ازاى مثال عملى لو ينفع وجزاك الله عنا كل خير ومعلشى اصلى حموووت واخلص البروجكت الرخم دة والله المستعان تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة comment_176126 السلام عليكم أخي احمد ليه شغلت نفسك بشيء زي كده طالما المشكلة محلولة لكن جرب فكرتك ديon error trigger if error_code=50016 then message('only number'); message('only number'); raise form_trigger_failure; end if; موفق تقديم بلاغ
بتاريخ: 15 نوفمبر 200916 سنة كاتب الموضوع comment_176556 بشمهندس مصطفى اانا اساسا انا تعبتك طبعا انا مشكس شوية مش بحب الفورمة تتحكم بيا لازم انا ازلهابس انا عارف حكاية on error trigge انا قولت عليها كمان بس هل انا اقدر اتحكم فيها من خلال Buttonوالله المستعان تم تعديل 15 نوفمبر 200916 سنة بواسطة DOMSSA تقديم بلاغ
بتاريخ: 19 نوفمبر 200916 سنة كاتب الموضوع comment_176981 انت فين يا بشمهندس مصطفى معلشى تعبك بس انا محتاج اتحكم فى الارور دة عن طريق الـButton علشان انا المشكلة عندى عن الضغط على حفظ انا بقفل text Box لو انا عملت فى On-error بيكمل تنفيذ الكود عادىالخلاصة عاوز اتحكم فى Error عن طريق Button وشكرا مقدما تقديم بلاغ
بتاريخ: 19 نوفمبر 200916 سنة comment_176989 بسيطة ممكن تعمل : IF NVL(:CARS_FOR_SALE.MANUFACTURER_SHORTNAME IS NULL,0) =0 THEN تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.