بتاريخ: 26 مارس 200619 سنة comment_64350 الاخوة الاعزاءانا عملت حماية على مستوى النماذج والتقارير، حيث عملت 3 جداول1- جدول لاسم المستخدم وكلمة السر 2- جدول باسماء النماذج والتقارير بالعربي والانجليزي3- جدول باسم المستخدم واسم النموذج او التقرير وهل للمستخدم صلاحية لفتحه ام (Y يعني نعم و N يعني لا).وقد اضفت بعض البيانات لهذه الجداول وبالفعل فقد تم الدخول الى القائمة الرئيسة بواسطة اسم المستخدم وكلمة السر.ولكن المشكلة تكمن في الدخول لكل نموذج حيث وضعت في تريجر pre-form hg الكود التالي ولكنه لا يعمل حيث يدخل المستخدم بغض النظر له صلاحية ذلك ام لا الرجاء الافادة عن السبب هل هو التريجر (اي هناك تريجر اخر يجب وضع الكود فيه) ام الكود نفسه به خطأ declare b_allowed varchar2(1):=' '; هذا اذا كان Y فمسمولح له الدخول currnt_form varchar2(40); begin currnt_form := :system.current_form; لمعرفة اسم النموذج الذي نحن فيه حاليا select browse_allowed into b_allowed from user_privileges where (user_name1=:global.user_name_g and screen_name1 = currnt_form); if b_allowed = 'Y' then open_form('e:\naqa\fmx\frmkinds.fmx'); else exit_form; end if; exception when no_data_found then message('no user'); end; ,وشكرا للجميع تقديم بلاغ
بتاريخ: 27 مارس 200619 سنة comment_64418 اخي الكريم المشكلة تكمن في ال where condtion حيث انت تضع اليوزر في global varaiblesويمكن ان يكون مخزن اسم يوزر له صلاحية عموما ممكن نعدل فقط في جزئية الجدول declare b_allowed varchar2(1):='N'; currnt_form varchar2(40); begin currnt_form := :system.current_form; select browse_allowed into b_allowed from user_privileges where (user_name1=USER and screen_name1 = currnt_form); if b_allowed = 'Y' then open_form('e:\naqa\fmx\frmkinds.fmx'); else exit_form; end if; exception when no_data_found then message('no user'); end; تقديم بلاغ
بتاريخ: 27 مارس 200619 سنة كاتب الموضوع comment_64483 الاخAdmin05 بداية اشكر لك اهتمامك وردك على تساؤلي، ولكن المشكلة ما زالت قائمة حيث أنه يدخل الى النموذج بغض النظر له صلاحية بذلك أم لا ؟ فهل هنالك محاولة اخرى، الرجاء التكرم بالرد.على فكرة كيف يمكن عمل debug لمحتويات التريجر للتأكد من أنه يأتي بالمستخدم الصحيح وكذلك قيمة browse_allowed شاكرا لك وجعل الله ذلك في ميزان حسناتكوهل التعديل الوحيد الذي اضفته هو في where conditiom تقديم بلاغ
بتاريخ: 27 مارس 200619 سنة comment_64486 الأخ الكريم يوجد تعديل بسيطمع debuge to trigger declare b_allowed varchar2(1):='N'; currnt_form varchar2(40); begin currnt_form := :system.current_form; select browse_allowed into b_allowed from user_privileges where (user_name1=USER ); message('the value of ballowd is ' || :b_allowed); message('the value of ballowd is ' || :b_allowed); if b_allowed = 'Y' then message('you can open from ' ); open_form('e:\naqa\fmx\frmkinds.fmx'); else exit_form; end if; exception when no_data_found then message('no user'); message('no user'); end; تقديم بلاغ
بتاريخ: 28 مارس 200619 سنة كاتب الموضوع comment_64545 لاخ Admin05 بداية السلام عليكم ورحمة الله وبركاته شاكرا لك وللجميع ردك السريع وبالفعل فقد تمكنت من معرفة قيمة b_allowed وكذلك اي قيمة اخرى اريدها ولكن ظهرت هناك مشكلة اخرى حيث انه ظهرت رسالة عند التنفيذ بخصوص exit_form و open_form حيث يعطي رسالةfrm-40737 illegal restricted open-form in pre-form trigger فما السبب لظهور هذه الرسالة وما الحل؟؟؟ وشكرا للجميع وحاصة الاخ Admin05 تقديم بلاغ
بتاريخ: 28 مارس 200619 سنة comment_64548 FRM-40737: Illegal restricted procedure %s in %s trigger. Cause:Application design error. A trigger tried to execute a restricted packaged procedure. Action:Remove the packaged procedure from the trigger text. Level:>25 Type:Error تقديم بلاغ
بتاريخ: 28 مارس 200619 سنة كاتب الموضوع comment_64577 الاخ Admin05لقد قرأت هذه المساعدة في ال help التابع للديفلوبر ولم افهمه؟ هل المقصود عدم استخدام exit_form و open_form في pre-form trigger فاذا كان الجواب نعم فما السبب وما البديل؟؟؟ الرجاء الاجابة مع الشكر تقديم بلاغ
بتاريخ: 28 مارس 200619 سنة comment_64583 الاخ الكريمنعم اخي هذا صحيح عدم استخدام الexit_form في pre-form فهذا معناها انك تريد اغلاق الفورم قبل تشغيلها ويحبب ان تضعها في تريجر لكبسة زر مثلا او في program unitقبل فتح الفورم فقط يمكنك التشييك على حالة اليوز او ممكن استخدام when-new-forms-instance تقديم بلاغ
بتاريخ: 29 مارس 200619 سنة كاتب الموضوع comment_64733 الاخ Admin05 يبدو انني انتهي من اشكالية وندخل في اخرى، حيث انني وضعت الكود في تريجر when_new_forms-instance ولكنني لاحظت انه لا يتم تنفيذ الكود مطلقا حيث لا ينفذ عند الدخول الى النموذج فالرجاء الرجاء المساعدة وايجاد حل جذري لهذه الاشكالية وبارك الله فيك وفي جهودك وجهود الجميع تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.