بتاريخ: 4 أبريل 200917 سنة comment_152832 --------------------------------------------------------------------------------------------------- </b> DECLARE cURSOR main IS SELECT screen_name FROM user_privs WHERE userid=:global.userid; screen_name varchar2(30); BEGIN OPEN main; loop FETCH main INTO screen_name; exit when main%notfound; if screen_name='customers' then SET_ITEM_PROPERTY('cust',enabled,PROPERTY_true ); end if; ----------------------- if screen_name='sales' then SET_ITEM_PROPERTY('SALES',enabled,PROPERTY_true ); end if; ----------------------- if screen_name='purchase' then SET_ITEM_PROPERTY('purchase',enabled,PROPERTY_true ); end if; end loop; CLOSE main; end; <b> ------------------------------------------------------------------------------------------------------------------ الكود ده شغال كويس بس هوة غلط كل اللى انا عاوزه انى بدل ماكنب اسم القسم داخل جملة ifهوة يجبها لوحدهزى كدة if screen_name='purchase' thenانا مش عاوز اكتبpurchase ------------------------------------------------------------------------------------------------------------------ولكم جزيل الشكر تقديم بلاغ
بتاريخ: 4 أبريل 200917 سنة comment_152844 السلام عليكم ورحمة اللهأرجو منك يا اخى ايضاح المطلوب هل الاقسام دى عبارة عن بلوك فى الشاشة ام يوجد فى جدول يعنى متى يتم الاكسس على هذه الاقسام حتى تكون بطريقة اوتوماتيكية بدون ذكر اسمها فى الكود تقديم بلاغ
بتاريخ: 4 أبريل 200917 سنة كاتب الموضوع comment_152848 اشكرك اخى على الاستجابههوه الكود ده موجود داخل فورمة main WHEN-NEW-FORM-INSTANCEبحيث لما المستخدم يدخل يتم التعرف عليه من خلال الرقموبعدين يتم تفعيل الازرار المؤدية للفورم الى مسموحلو باستخدامهالباشمهمدس قالى الكود صح بس المفروض ينكتب بشكل ثانىجملة ifالمطلوب هل من طريقة اخرى لكتابة جملة ifولك جزيل الشكر تقديم بلاغ
بتاريخ: 8 أبريل 200917 سنة comment_153202 اخي الكريم انا مش فاهم المطلوب بالظبط ، بس هحاول اختصر الكود على حسب ما فهمت أولاً ... حضرتك سمي الزراير بنفس اسم الشاشات بالظبط ، مثال شاشة 'customers' ، الرزرار بتاعها يكون اسمه 'customers' وهكذاثانيا غير الكود إلى BEGIN OPEN main; loop FETCH main INTO screen_name; exit when main%notfound; if screen_name IN('customers' , 'sales','purchase' )then SET_ITEM_PROPERTY(screen_name,enabled,PROPERTY_true ); ELSE SET_ITEM_PROPERTY(screen_name,enabled,PROPERTY_FALSE ); end if; end loop; CLOSE main; end; ده طبعاً على أساس انك عايز تعمل 3 شاشات دول بس ، اما لو كنت عايز حل يمشي مع أي عدد من الشاشات فياريت توضح جدول اليوسر ، وصلاحياته وانا معاك في أي حاجة ، وربنا ييسر ونقدر نحل المشلكةأما إذا كان اليوسر المسجل في هذا الجدول له صلاحية على الشاشة المسجلة بالجدول ، إذاً لاداعي ل IF ويكون الكود مباشر مثال : BEGIN OPEN main; loop FETCH main INTO screen_name; exit when main%notfound; SET_ITEM_PROPERTY(screen_name,enabled,PROPERTY_true ); end loop; CLOSE main; end; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.