بتاريخ: 21 ديسمبر 20169 سنة comment_281005 السلام عليكم لدي فورم به معلومات عن فاتورة الشراء وعن محتويات فاتورة الشراء بعد ادخال رقم فاتورة الشراء يظهر البلوك الخاص بالمحتويات ويقوم المستخدم باختيار رقم المنتج بمجرد الضغط بالماوس في مكان رقم المنتج تظهر لوف يختار المستخدم منها رقم المنتج ووصفه ثم يسجل الكميه المطلوبه المستخدم المطلوب الا يتكرر نوع المنتج في الفورم بمجرد تكراره تظهر رساله تحذيريه للمستخدم قمتا بكتابة هذا الكود وكتب أحد الزملاء كودا اخر كلاهما يؤدي الغرض لكن لاافهم لم كتب بهذا الشكل كودي : 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 ولماذا وضع خاصيه الفورم فالديشن ؟؟؟؟؟؟؟ ولكم جزيل الشكر تقديم بلاغ
بتاريخ: 21 ديسمبر 20169 سنة comment_281008 هل من الممكن شرح لم استخدم NAME_IN ولماذا وضع خاصيه الفورم فالديشن ؟؟؟؟؟؟؟ ولكم جزيل الشكر - ملهمش اى فايدة. - تقدر تعمل database unique constraint على الاعمدة المرغوبة وفى تريجر on-error تقدر تغير رسالة الايرور الى هيطلع, وتتشيك قبل ما الراجل يحفظ الداتا وتستغنى عن الكود ده. تم تعديل 21 ديسمبر 20169 سنة بواسطة eslam elbyaly تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.