الانتقال إلى المحتوى

مساعدة في كود الصلاحيات من خلال الفورم ؟


ابونواف620

Recommended Posts

السلام عليكم ورحمة الله وبركاتة
أريد المساعدة في ايجاد عمل كود لعمل صلاحيات من خلال الفورم مثل ( التعديل والأضافة والأستعلام والحذف )
بحيث يكون المستخدم رقم واحد له مثلا ( اضافة سجل جديد ) وليس له امكانية التعديل على السجل وهكذا

امل المساعدة في اسرع وقت لدي مشروع وبقي فقط الصلاحيات

امل المساعدة

مع تحيات
ابو نواف

رابط هذا التعليق
شارك

الأخوة الأعزاء هذا كود لعمل الصلاحيات من خلال الفورم
أريد أعرف الخطأ فيه حيث انه لأيظهر خطأ عند عمل compile
وعند تشغيل البرنامج لاتطبق الصلاحيات الممنوحة على المستخدمين
أرجو الأفادة وجزاكم الله خيراً

PROCEDURE sec IS
module varchar2 (30);
TEMP VARCHAR2(30); 
ins varchar2(1);
upd varchar2(1);
sel varchar2(1);
del varchar2(1);
ACT varchar2(1);
U_NO NUMBER(10);
BEGIN
 U_NO := :GLOBAL.USER_NO;
 module := :system.current_form;
 TEMP := get_form_property(module,first_block);
 
 SELECT NVL(DELETE_FLAG,'Y'),NVL(INSERT_FLAG,'Y'),NVL(SELECT_FLAG,'Y'),NVL(UPDATE_FLAG,'Y'),NVL(ACTIVE_FLAG,'Y') INTO del,ins,sel,upd,ACT
 FROM   USER_MODULES
 WHERE  USER_ID =  U_NO
 AND    MOD_NAME = module;
  
 LOOP
 IF TEMP IS NOT NULL THEN
 	IF TEMP <> 'TOOLBAR' THEN
 	          	if sel = 'Y' then
              	set_block_property (TEMP,query_ALLOWED,property_TRUE);
               else
              	set_block_property (TEMP,query_ALLOWED,property_falsE);
               end if;  

          	if upd = 'Y' then
                   set_block_property (TEMP,update_ALLOWED,property_TRUE);
          	else
                   set_block_property (TEMP,update_ALLOWED,property_falsE);
          	end if;  

          	if del = 'Y' then
                   set_block_property (TEMP,delete_ALLOWED,property_TRUE);
          	else
                   set_block_property (TEMP,delete_ALLOWED,property_falsE);
          	end if;  
  
          	if ins = 'Y' then
                	set_block_property (TEMP,insert_ALLOWED,property_TRUE);
          	else
                	set_block_property (TEMP,insert_ALLOWED,property_falsE);
          	end if;
          	
    	else
           null;
 	END IF;
 
   TEMP := get_block_property (TEMP,nextblock);
   ELSE
   EXIT;
END IF;
END LOOP;
 
END;


u_o رقم المستخدم

رابط هذا التعليق
شارك

السلام عليكم
الى الاخ الكريم
هذا تعديل بسيط على الاجراء

PROCEDURE sec IS
module varchar2 (30);
TEMP VARCHAR2(30); 
ins varchar2(1);
upd varchar2(1);
sel varchar2(1);
del varchar2(1);
ACT varchar2(1);
U_NO NUMBER(10);

CURSOR C IS 
SELECT NVL(DELETE_FLAG,'Y') DEL_1,NVL(INSERT_FLAG,'Y') INS_1,NVL(SELECT_FLAG,'Y') SEL_1,NVL(UPDATE_FLAG,'Y')UPD_1,NVL(ACTIVE_FLAG,'Y') ACT_1
FROM USER_MODULES WHERE USER_ID = U_NO AND MOD_NAME = module;

BEGIN U_NO := :GLOBAL.USER_NO;
module := :system.current_form;
TEMP := get_form_property(module,first_block);
FOR i IN C LOOP
del:=i.DEL_1;
ins:=i.INS_1;
sel:=i.SEL_1;
upd:=i.UPD_1;
ACT:=i.ACT_1;
END LOOP;
GO_BLOCK('BLOCK_NAME');
LOOP
IF TEMP IS NOT NULL THEN
 IF TEMP <> 'TOOLBAR' THEN
    if sel = 'Y' then
       set_block_property (TEMP,query_ALLOWED,property_TRUE);
    else
       set_block_property (TEMP,query_ALLOWED,property_falsE);
    end if; 

    if upd = 'Y' then
       set_block_property (TEMP,update_ALLOWED,property_TRUE);
    else
       set_block_property (TEMP,update_ALLOWED,property_falsE);
    end if; 

    if del = 'Y' then
       set_block_property (TEMP,delete_ALLOWED,property_TRUE);
    else
       set_block_property (TEMP,delete_ALLOWED,property_falsE);
    end if; 

    if ins = 'Y' then
        set_block_property (TEMP,insert_ALLOWED,property_TRUE);
    else
        set_block_property (TEMP,insert_ALLOWED,property_falsE);
    end if;
 ELSE
    null;
 END IF;
 TEMP := get_block_property (TEMP,nextblock);
ELSE
 EXIT;
END IF;
END LOOP;
END;



اذا لم ينجح الحل
ارجو ارسال نسخة من الفورم على الايميل
[email protected]
ودمتم

رابط هذا التعليق
شارك

إلى الأخ :admon
الف شكر سوف اجرب الكود بعد التعديل وان شاء يكون تمام
وسوف ارسل لك على الآيميل رد
والف شكر على التجاوب

مع تحيات ابو نواف620

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

اخي admin بارك الله فيك وارجوك ان اتوجهني الى كيفية استعمال هذه الصلاحيات من البداية بدي اغلبك معي بس كيفية استعمالها وشكرا جزيلا لك.

__________________.txt

رابط هذا التعليق
شارك

الاخ الكريم
ببساطة
اول شي يرسل اسم المستخدم من الشاشة الرئيسية الى اي شاشة ولنعتبرها شاشة ادخال اسماء الموظفين
ثم بعد ذلك يتم الاستعلام عن صلاحيات للمستخدم من خلال التشييك على جدول الصلاحيات التي يتم تحديدها للمستخدم واظهار او ابطال الصلاحية على مستوى البلوك سواء كانت اضافة او تعديل او حذف او غيرها من الخصائص
هذه الفكرة بشكل عام

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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