بتاريخ: 18 مايو 200421 سنة comment_7269 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته..بدي أخلي اليوزر لما يدخل الباسورد أكثر من 3 مرات خطأينقفل معاه الفورم أوتماتكلي ..طبعاً في صفحة الدخول بحيث أن اليوزر أنا مدخلاه باي ديفولت..يعني على التريجر إنه يشيك على الباس باللوب لو كان صح ينادي الفورم الي بعده ولو كان خطأ يعطيله فرصه تانيه وتالته وفي الرابعه يقفل الفورم كله...ولكم جزيل الشكر مقدماً لل راح يساعدني والي ما راح يساعدني.. تقديم بلاغ
بتاريخ: 18 مايو 200421 سنة comment_7270 المشكلة ليست في كيفية استخدام ال loop ولكن هذه النقطة تحل بالشكل التالي :- نضع على البلوك اثنين text item وليكن اسمهما Counter و No_Of_trials ويجب عمل initialization لهما بالقيمة 4 لل No_of_trials و صفر للCounter - عند ادخال اسم مستخدم او كلمة سر خاطئة من قبل المستخدم نقوم بزيادة ال Counter بالشكل التالي : :LOGIN.COUNTER := NVL(:LOGIN.COUNTER,0) + 1; :LOGIN هنا هي اسم ال BLOCK- ومن ثم نقوم بالتشييك على قيمة ال Counter و No_of_trials بالشكل التالي : if :LOGIN.COUNTER >= :LOGIN.NO_OF_TRIALS then Exit_Form(No_Validate); end if; اتمنى ان تكون قد وصلت الفكرة بالشكل الصحيح . تقديم بلاغ
بتاريخ: 18 مايو 200421 سنة comment_7271 يمكن استخدام متغير globalاولا في التريجر PRE-FORM للشاشة الرئيسية :GLOBAL.CNT:=0; ثم في الكود اللي يقوم بالفحص :GLOBAL.CNT:=:GLOBAL.CNT+1; IF :GLOBAL.CNT >=3 THEN EXIT_FORM; END IF; تقديم بلاغ
بتاريخ: 18 مايو 200421 سنة comment_7274 الفكره العامةطبعا احنا بنعمل اتنين تكست ايتم مش داتا بيز ايتمز اوك ؟بعد كده بنعمل بناخد قيم التيكست ايتو نحطهم في جلوبال فاريابل عشان نعمل تشيك عليهم في كل فورمه لغلق الباب امام من يحاول الدخول للبرنامج بشكل غير شرعي (مش من شاشة الوجين) اوك ؟في زرار اوك لفورمة اللوجين علي ضغط الزرار نكتب الكود الذي يحتوي علي الاتي :يقارن بين قيمة اجلوبال فاريبل بتاع اليوزر نيم والباسورد بالقيم الموجوده في جدول المستخدمين اذا كانت القيم سليمه نكتب كود استدعاء الفورمه الاساسيه اذا كانت مش سليمه نكتب تحذير عن ادخال اسم مستخدم او باسور غلط اوك ؟الكلام ده كله جوه لوب فيه كونتر نعد بيه لو قيمة الكونتر اكبر من 3 يعمل اكزيت فورم جربي اكتبي الكود في ظل الكلام ده ولو لقيتي مشكله قولي وانا احطه جاهز اخوكم امجد محمد تقديم بلاغ
بتاريخ: 19 مايو 200421 سنة comment_7277 global اولا تعريف متغير من النوع when_new_form_instanceعند فتح الشاشهعمل 2 تكست ايتمunpw when -button-pressed عمل زر وتحته وليكون البلوك اسمه مثلا sec يتم كتابة الكود التالى declare counter number; v1 varchar2(20); v2 varchar2(20); V3 NUMBER; c number(1):=3; begin if :sec.pw is null or :sec.un is null then message('must enter value for un or pw'); message('must enter value for un or pw'); else select upper(us) , upper(ps),ID into v1,v2,V3 from us where upper(us)=upper(:sec.un ) and upper(ps)=upper(:sec.pw); if :global.c=0 then exit_form; else if upper(:sec.un)<>upper(v1) or upper(:sec.pw)<>upper(v2) then :global.c:=:global.c-1; message('false'||:global.c); message('false'||:global.c); else :GLOBAL.V:=V3; if upper(v1)=upper('admin') then new_FORM('sec_m'); else new_form('start'); end if; end if; end if; end if; exception when no_data_found then if :global.c=1 then message('اكتابة الرساله المراد اظهارها للمستخدم) --message('اكتابة الرساله المراد اظهارها للمستخدم) exit_form; else :global.c:=:global.c-1; message('اكتابة الرساله المراد اظهارها للمستخدم)); end if; end; تقديم بلاغ
بتاريخ: 19 مايو 200421 سنة comment_7279 مرحبااا .. شبااب .. انا كنت عامل ... شاشت LOGIN وانشاء الله تكون زي ما بدكووو ...1- اعمل رن للكود [/sql]CREATE TABLE USERS( USER_ID NUMBER(6) NOT NULL, USER_NAME VARCHAR2(25) NOT NULL, USER_PASS VARCHAR2(8) NOT NULL)INSERT INTO USERS ( USER_ID, USER_NAME, USER_PASS ) VALUES ( 1, 'ANAS', 'ANAS'); commit; 2- اعمل رن للفورم ... هلأ الفورم بيعمل الأتي 1- بيعطيك 3 محاولات وبعدين بيسكر الفورم 2 - بيعمل تسكير للفورم اوتوماتيك بعد دقيقه .وانشاء الله انو يعجبكم ..... سلام تقديم بلاغ
بتاريخ: 19 مايو 200421 سنة comment_7301 العفوووووو حبيب البي tofeee ... بس الشباب ماردو خبر ... اشتغل ولا لا .. اعجبهم ولا كيف .. تقديم بلاغ
بتاريخ: 19 مايو 200421 سنة كاتب الموضوع comment_7307 شكراً يا أنس ..و أبشرك مشى معي الكود ..thanks تقديم بلاغ
بتاريخ: 19 مايو 200421 سنة comment_7323 شكرا لكم شبابأعتقد السؤال مكرر في نفس اليوم بعنوان آخر تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.