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

بتاريخ:

بسم الله الرحمن الرحيم



سألني أحد الاخوان في مشاركة سابقة عن آلية الدخول الى النظام ... حيث انه يريد السماح للمستخدم باستخدام النظام من وقت معين الى وقت معين...
ولقد تم كتابة الموضوع في موضوع مستقل كي يستفيد منه الجميع...والله الموفق...

اولا: قم بإضافة عمودين على جدول المستخدمين :
USR_IN : وهو وقت البداية للدخول الى النظام.
USR_OUT : وهو وقت النهاية المسموح للمتسخدم العمل على النظام.

ثم استخدم هذا الكود:

DECLARE
X_IN	   DATE;
X_OUT	  DATE;		
BEGIN
SELECT USR_IN,USR_OUT
INTO   X_IN,X_OUT
FROM   USER_PRV
WHERE  UPPER(USR_ID) = UPPER(:BLKLOGIN.USR_ID) AND UPPER(USR_PASSWORD) = UPPER(:BLKLOGIN.USR_PASSWORD);

IF TO_DATE(SYSDATE,'hh24:mi:ss') NOT BETWEEN TO_DATE(X_IN,'hh24:mi:ss') AND TO_DATE(X_OUT,'hh24:mi:ss') THEN
	MESSAGE('NOT ALLOWED TO ACCESS THE SYSTEM NOW');
	MESSAGE('NOT ALLOWED TO ACCESS THE SYSTEM NOW');
	EXIT_FORM(NO_COMMIT,NO_VALIDATE);
	END IF;
END;



لا تنسونا من صالح دعائكم...
بالتوفيق

  • الردود 32
  • المشاهدات 10.1k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

Most Popular Posts

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

الصور المنشورة

بتاريخ:

جزاك الله الف خير ياخي والصراحه انت ماقصرت ابدا وربنا يقدرنا على رد جمالك




في امان الله

بتاريخ:

جزاك الله خيرا وسعدنا بك

بتاريخ:

جزاكم الله خيراً على مجهودك وإفداتك للمنتدى وربنا يجعله في ميزان حسناتك
وعايز اقول انه مش جديد على أهل فلسطين الحبيبه
تقبل تحياتي

بتاريخ:

جزاااك الله خير مجهود أكثر من رااائع
حيث أنني كنت أبحث عن هذه الدالة
وقطعت علي المشوااار
جعلها اللله من موازين أعمالك

بتاريخ:

مشكور اخى على الكود .
بس عندى ملاحظة صغيرة .
وهى انك ممكن تكتب الكود خلال procedure ويكون user_id مدخل لها ويفضل ان تكون على مستوى database
وفى كل مرة تنادى procedure من خلال الفورمز تنادى procedure وتبعت لها user_id حتكون احسن و افضل
اتمنى ان تكون الفكرة وضحت لك . ....

بتاريخ:

السلام عليكم
أولا :جزاك الله خيرا يا pali.oracle
طيب لو حبينا نكبر المهمة شوية
يعني المستخدم دخل فعلا قبل الوقت مثلا لو بدقيقة واحدة ماهي النتيجة طبعا ممكن شغال عادي جدا
المطلوب : حتى ولو هو شغال على الا application ودخل في الفترة الاي غير مسمح له بالدخول فيها يحدث له logout
شكرا للجميع

بتاريخ:

تسلم وجزاك الله كل خير اخوك اشرف

بتاريخ:
  • كاتب الموضوع
جزاك الله خيرا وسعدنا بك


مشكور اخي احمد...
ننتظر مشاركاتك الرائعه...


جزاكم الله خيراً على مجهودك وإفداتك للمنتدى وربنا يجعله في ميزان حسناتك
وعايز اقول انه مش جديد على أهل فلسطين الحبيبه
تقبل تحياتي


الله يخليك يا أخي عبدالله...
وشكرا لمرورك الكريم...


جزاااك الله خير مجهود أكثر من رااائع
حيث أنني كنت أبحث عن هذه الدالة
وقطعت علي المشوااار
جعلها اللله من موازين أعمالك


تسلم يا هاوي...
جزاك الله خيراً


مشكور اخى على الكود .
بس عندى ملاحظة صغيرة .
وهى انك ممكن تكتب الكود خلال procedure ويكون user_id مدخل لها ويفضل ان تكون على مستوى database
وفى كل مرة تنادى procedure من خلال الفورمز تنادى procedure وتبعت لها user_id حتكون احسن و افضل
اتمنى ان تكون الفكرة وضحت لك . ....


كلامك صحيح أخي...وهو فعلا هذا الذي طبقته عندما كتبت الكود...
ولكن كتبته بهذه اللطريقة كي يكون اوضح...
بالتوفيق


السلام عليكم
أولا :جزاك الله خيرا يا pali.oracle
طيب لو حبينا نكبر المهمة شوية
يعني المستخدم دخل فعلا قبل الوقت مثلا لو بدقيقة واحدة ماهي النتيجة طبعا ممكن شغال عادي جدا
المطلوب : حتى ولو هو شغال على الا application ودخل في الفترة الاي غير مسمح له بالدخول فيها يحدث له logout
شكرا للجميع



رد جميل جدا أخي مصطفى..
فعلا فكرة تستحق النقاش...
انا فكرتي اخي مصطفى كالاتي:
انه قبل نهاية الوقت المحدد لاغلاق الــ APPLICATION بنصف ساعة مثلا...يعطي النظام رسالة للمتسخدم انه الوقت المتبقي المسموح به لاستخدام النظام هو نصف ساعه...
ما رأيك أخي مصطفى ؟؟؟
واتمنى من الجميع المشاركة...

بالتوفيق

تم تعديل بواسطة PALI.ORACLE

بتاريخ:

السلام عليكم

كيف حالك ياستاذي العزيز ان شاء الله تكون بخير. استاذي بخصوص الكود ماشتغل معي مرة وضعته في WHEN_NEW_FORM_INSTANCE على مستوى الموديول ومرة وضعته في البروسيجر بنفس الاسم اللي انت كتبته بالمشاركة السابقة وهو USERS_ACC ووضعت الكود قبل نهاية END وايضا ماتم التنفيذ. بدي اسئلك سوال مهم انت ليه استخدم ال DATE ولم تستخدم اي داتا تايب اخرى تخص الوقت
لانه عندما ادخل على صفحة البرفلج واكتب البيانات اليسر وعندما ادخل الوقت في خانة يسر ان او تايم ان لايقبل مني الا تاريخ وليس وقت الساعة فقمت بتغيير الفورمات ماسك من الخصائص وعملت HH24:MI:SS فعند الرن تايم قبل مني الوقت ولكن لم ذهبت للداتا بيس لم يخزن الوقت الذي ادخلته فاعطاني تاريخ كما هو مبين في الصورة المرفقة هو عندما ادخل الوقت طبعا انا ادخل الوقت هكذا

USR_IN USR_OUT
18:00:00 08:00:00




شكرا لتعاونك ياخي والله يعطيك العافية

post-84416-1248293039_thumb.png

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

كيف حالك ياستاذي العزيز ان شاء الله تكون بخير. استاذي بخصوص الكود ماشتغل معي مرة وضعته في WHEN_NEW_FORM_INSTANCE على مستوى الموديول ومرة وضعته في البروسيجر بنفس الاسم اللي انت كتبته بالمشاركة السابقة وهو USERS_ACC ووضعت الكود قبل نهاية END وايضا ماتم التنفيذ. بدي اسئلك سوال مهم انت ليه استخدم ال DATE ولم تستخدم اي داتا تايب اخرى تخص الوقت
لانه عندما ادخل على صفحة البرفلج واكتب البيانات اليسر وعندما ادخل الوقت في خانة يسر ان او تايم ان لايقبل مني الا تاريخ وليس وقت الساعة فقمت بتغيير الفورمات ماسك من الخصائص وعملت HH24:MI:SS فعند الرن تايم قبل مني الوقت ولكن لم ذهبت للداتا بيس لم يخزن الوقت الذي ادخلته فاعطاني تاريخ كما هو مبين في الصورة المرفقة هو عندما ادخل الوقت طبعا انا ادخل الوقت هكذا

USR_IN USR_OUT
18:00:00 08:00:00




شكرا لتعاونك ياخي والله يعطيك العافية



السلام عليكم
ما هو الخطأ بالتحديد؟؟؟
بتاريخ:

السلام وعليكم اخواني الكرام.....
اخي مصطفي ممكن تنشئ زناد علي مستوي قاعدة البيانات ,ينفذ ما اردت , واضافة علي ذلك يمنع الدخول ايضا في ايام العطل الرسمية .

CREATE OR REPLACE TRIGGER CONTROL
AFTER LOGON ON SCHEMA
BEGIN
IF(TO_CHAR(SYSDATE,'DY') IN ('THU','FRI')) OR (TO_CHAR(SYSDATE,'HH24') NOT BETWEEN '08', AND '18') THEN
RAISE_APPLICATION_ERROR(-20500,'SORRY YOU CANNOT USE A  PROGRAM NOW');
END IF;
END;


اذا دخلت للنظام ضمن الفترة الزمنية المحددة لن تستطيع التعامل مع النظام

بتاريخ:

كان يطلع لي خطا EXCEPTION HANDLING


على كل حال جربت مرة اخرى تقريبا 40 مرة :( لحد ما زبط معايا الكود في البروسيجر اللي انت كتبتها بالاول واعتقد انه الان مافي مشكلة في الكود ولكن الان انا ادخلت خمسة انواع من اليوسرز اثنين منهم لهم وقتين مختلفين.

الاول ياخذ هذا الوقت وهو

From To
06:00:00 03:00:00


واليوسر الثاني ياخذ هذا الوقت


From To
18:00:00 08:00:00


طبعا الاول في الفجر الساعة الثالثة الى السادسة صباحا يعني اعطيته فقط ثلاث ساعات والثاني من الساعة ثمانية الصباح الى 6 المغرب طبعا ماعليك انا بالنسبة للساعة الموجودة الان في جهازي وهي الساعة 2 الظهر على كل حال اليوزرين يستطيعوا الدخول والسيستم مش راضي يمنع اليسر الاول حسب الكود المكتوب.

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

شكرا لك ولتعاونك

تم تعديل بواسطة Only-Oracle

بتاريخ:

اهلا استاذ احمد


لقد عملت تجربة اخرى وهي وضع هذا الكود منعزل تماما في فورمة جديدة ووضعته في داخل زر والنتيجة انه مايدخل على فورمة الانترفيس وهذا ايرور كما هو مبين في هذه الصورة

post-84416-1248307687_thumb.png

بتاريخ:

مشكور اخوي وانا واضع لك اثنين فورمة تبع اللوجن اسكرين وفورمة للبرفلج

check.zip

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

السلام عليكم
جرب استخدام هذا الكود...انا عدلت على الكود اللي انت كاتبه على الزر...

DECLARE
X_IN	   DATE;
X_OUT	  DATE;		
BEGIN
SELECT USR_IN,USR_OUT
INTO   X_IN,X_OUT
FROM   USER_PRV
WHERE  UPPER(USR_ID) = UPPER(:USER_PRV.USR_ID) AND UPPER(USR_PASSWORD) = UPPER(:USER_PRV.USR_PASSWORD);

IF TO_DATE(SYSDATE,'hh24:mi:ss') NOT BETWEEN TO_DATE(X_IN,'hh24:mi:ss') AND TO_DATE(X_OUT,'hh24:mi:ss') THEN
	MESSAGE('NOT ALLOWED TO ACCESS THE SYSTEM NOW');
	MESSAGE('NOT ALLOWED TO ACCESS THE SYSTEM NOW');
	EXIT_FORM(NO_COMMIT,NO_VALIDATE);
ELSE
open_form('C:\Documents and Settings\ADMIN\Desktop\check\check\USERS.fmx');
CLEAR_BLOCK(NO_COMMIT);
END IF;
END;



فقط قم بتغيير مسار الفورم...
بالتوفيق

بتاريخ:

اهلا استاذي


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

ولكن المشلكة الان مازال لم يعمل معي. اذا كان يعمل معك ياستاذي الفاضل فياريت تقولي كيف تدخل الوقت البداية ووقت النهاية. وياريت انك تشوف لي موضوع الكود.



وربنا يجزيك كل خير

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

السلام عليكم...
اخي وهيب...جرب مسح AM و PM من الفورمات ماسك...
وشغل اللوجن وخبرني بالنتيجة...
بالتوفيق

بتاريخ:

مساء الخير

جربت ومسحت AM & PM ومازالت المشكلة موجودة مع اني وضعت الكود في البروسيجر لوحدة وعملت له استدعاء من الزر ولكن نفس الحال.

طبعا انا حاولت اني العب في الكود شويتين واضفت Exception ولكن ايضا رسالة الاكسبشن مازالت تظهر وماستطيع الدخول


منتظرك ياستاذي الفاضل

تم تعديل بواسطة Only-Oracle

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

السلام عليكم
طيب اخي قم برفع الجدول اللي انت شغال عليه والفورم اللي اعتمدتهم ....

بتاريخ:

اوكي هذا الجدول




CREATE TABLE USER_PRV(
USR_ID NOT NULL VARCHAR2(100),
USR_ENAME VARCHAR2(100),
USR_PASSWORD VARCHAR2(50),
USR_IN DATE,
USR_OUT DATE,
USR_TYPE NUMBER,
USR_STATUS NUMBER)



وبخصوص الفورم تجدة في المرفقات

check_form.rar

بتاريخ:
  • كاتب الموضوع
السلام وعليكم اخواني الكرام.....
اخي مصطفي ممكن تنشئ زناد علي مستوي قاعدة البيانات ,ينفذ ما اردت , واضافة علي ذلك يمنع الدخول ايضا في ايام العطل الرسمية .

CREATE OR REPLACE TRIGGER CONTROL
AFTER LOGON ON SCHEMA
BEGIN
IF(TO_CHAR(SYSDATE,'DY') IN ('THU','FRI')) OR (TO_CHAR(SYSDATE,'HH24') NOT BETWEEN '08', AND '18') THEN
RAISE_APPLICATION_ERROR(-20500,'SORRY YOU CANNOT USE A  PROGRAM NOW');
END IF;
END;


اذا دخلت للنظام ضمن الفترة الزمنية المحددة لن تستطيع التعامل مع النظام




اشكرك اخي محمود على الاضافة الرائعه...
بالتوفيق...
بتاريخ:

جذاك الله كل خير يا اخى

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

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

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

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

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

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.