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

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

Featured Replies

بتاريخ:

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

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

امل المساعدة

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

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

الأخوة الأعزاء هذا كود لعمل الصلاحيات من خلال الفورم
أريد أعرف الخطأ فيه حيث انه لأيظهر خطأ عند عمل 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

بتاريخ:

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

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

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

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

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

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

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.