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

شرح : كيفية عمل Forms Timeout.

Featured Replies

بتاريخ:

السلام عليكم

إليكم كيفية عمل Oracle Forms Timeout بحيث اذا تم فتح النظام لمدة معينة تقوم بتحديدها بدون أي حركة على النظام سيتم الخروج منه.

 

1- يجب وضع الملف المرفق timeout.jar في المجلد التالي:

..\Forms\Java

2- فتح ملف formsweb.cfg وإضافة إسم الملف كما هو موضح:

 

archive_jini=frmall_jinit.jar,timeout.jar
archive=frmall.jar,timeout.jar

3- في الفورم لديك يجب إنشاء Block بإسم PJC وإضف عليه حقل من نوع Bean Area وقم بتسميته TIMEOUT.

 

4- بالضغط على F4 على الحقل TIMEOUT ستجد خاصية Implementation Class -- أضف السطر التالي بجانبها:

oracle.forms.demos.TimeoutPJC

 5- على مستوى الحقل TIMEOUT قم بإنشاء TRIGGER: WHEN-CUSTOM-ITEM-EVENT واكتب بداخله التالي:

 

DECLARE
   eventname   VARCHAR2 (30) := :SYSTEM.custom_item_event;
   v_btn       NUMBER;
BEGIN
   IF (eventname = 'MAX_INACTIVITY_EXCEEDED')
   THEN
      v_btn := SHOW_ALERT ('SESSION_ALRT');


      IF v_btn = alert_button1
      THEN
         EXIT_FORM (no_validate);
      END IF;
   END IF;
END;

6- على مستوى الموديول اكتب بداخل ترجر WHEN-NEW-FORM-INSTANCE:

 

fbean.register_Bean('PJC.TIMEOUT',1,'oracle.forms.demos.TimeoutPJC');
synchronize;
set_custom_property('PJC.TIMEOUT',1,'RECORDING_EVENTS','all'); 
set_custom_property('PJC.TIMEOUT',1,'TIMER_SLEEP_TIME', '30');
set_custom_property('PJC.TIMEOUT',1,'ENABLE_DEBUGGING', 'true');
set_custom_property('PJC.TIMEOUT',1,'START_TIMER', '1'); -- حيث الرقم 1 يمثل عدد الدقائق

* ملاحظة: الملف timeout.jar متوافق مع اصدار JInitiator 1.3.1.22.

 

وفي حال استخدام الـ Java يرجى استخدام الملف المسمى بـ timeout_JAVA

مع تغيير مكان تعريف الـ Timeout داخل ملف الـ formsweb.cfg ليكن في Archive_Jpi

 

==================================================================================

في الكود السابق سيتم الخروج من فورم واحد اذا كانت لديك عدة شاشات مفتوحة لذلك استخدم الكود في اللينك التالي لإغلاق جميع الشاشات:

 

كيفية إغلاق جميع الـ Forms المفتوحة مرة واحدة.

 

==================================================================================

 

بالتوفيق للجميع.

 

Timeout.rar

post-73694-0-82899600-1393832008_thumb.png

post-73694-0-63422100-1393832012_thumb.png

timeout_JAVA.rar

بتاريخ:

أشكرك على هذا العرض الرائع

واسمح لي أن أقدم هذه الطريقة التي أعتقد أنها أبسط برمجياً

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

وإليكم الطريقة 

----------------

1- نقوم بعمل أيتم في فورم معين ونسميه مثلاً ACTXT

2- نذهب إلى الترقير WHEN-MOUSE-DOWN بتاع الفورم ونكتب فيه الكود التالي

:global.ACT := 0;

ومعنى الكود ... قم بتخزين في المتغير public قيمة صفرية/من البداية  كلما ضغط المستخدم على زر الماوس صفر العداد وإبدأ من جديد 

3- نذهب إلى ترقير أخر في الفورم واسمه WHEN-TIMER-EXPIRED ونكتب فيه الكود التالي

  if :global.ACT > 60 then 
  	exit_form;
  else 
  :global.ACT := :global.ACT + 1 ;
  :ACTXT := :global.ACT;
  end if;

ومعنى الكود السطر رقم

1- اذا كانت قيمة المتغير الـPublic أكبر من 60 عدد الثواني 

2- اغلق الفورم كاملة

3- وإلا قم بزيادة قيمة المتفير الـPublic بعدد 1 

4- وقم بطباعة القيمة على الإيتم 

 

-------------

هذه الطريقة مجربه 100% 

وشكراٍ

 

 

post-139007-0-58470900-1393835218_thumb.jpg

post-139007-0-68525500-1393835219_thumb.jpg

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

أشكرك على هذا العرض الرائع

واسمح لي أن أقدم هذه الطريقة التي أعتقد أنها أبسط برمجياً

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

وإليكم الطريقة 

----------------

1- نقوم بعمل أيتم في فورم معين ونسميه مثلاً ACTXT

2- نذهب إلى الترقير WHEN-MOUSE-DOWN بتاع الفورم ونكتب فيه الكود التالي

:global.ACT := 0;

ومعنى الكود ... قم بتخزين في المتغير public قيمة صفرية/من البداية  كلما ضغط المستخدم على زر الماوس صفر العداد وإبدأ من جديد 

3- نذهب إلى ترقير أخر في الفورم واسمه WHEN-TIMER-EXPIRED ونكتب فيه الكود التالي

  if :global.ACT > 60 then 
  	exit_form;
  else 
  :global.ACT := :global.ACT + 1 ;
  :ACTXT := :global.ACT;
  end if;

ومعنى الكود السطر رقم

1- اذا كانت قيمة المتغير الـPublic أكبر من 60 عدد الثواني 

2- اغلق الفورم كاملة

3- وإلا قم بزيادة قيمة المتفير الـPublic بعدد 1 

4- وقم بطباعة القيمة على الإيتم 

 

-------------

هذه الطريقة مجربه 100% 

وشكراٍ

 

 

يعطيك العافيه أخي فيصل ولكن لا يحبذ استخدام الـ Timer.

بتاريخ:

 

يعطيك العافيه أخي فيصل ولكن لا يحبذ استخدام الـ Timer.

 

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

غلبتني ... ;)

بتاريخ:

السلام عليكم ورحمة الله

 

شكرا لكما على هذة المنافسة العلمية الهادفة والمتميزة

 

وهي لصالح أعضاء المنتدى

 

ليت الجميع يتنافسون !!!

 

جزاكم الله خيرا

بتاريخ:

بصراحة نقاش اكثر من طيب

 

الله يجزيكم الخير على هذا النقاش العلمي 

 

اسمحوا لي ان 655677104.jpgاحترام لكم 

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

شكرا لكما أخي امجد وأخي موسى لمروركم الكريم.

تقبلوا تحياتي.

بتاريخ:

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

بتاريخ:

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

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

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

 

شكرا لك يا صديقي العزيز...

  • بعد 2 أسابيع...
بتاريخ:

 

بارك الله فيك يامهندس احمد

 

بتاريخ:

اشكركم على النقاش المثمر صراحة

بتاريخ:

ماشاء الله بارك الله فيكم وجزاكم الله خيرا  

            انتم مبدعوووون 

  • بعد 1 سنة...
بتاريخ:

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

بتاريخ:

شغل عالى قوى يا رجالة والله

بتاريخ:

شغل صح الصح والله ياجماعة

بتاريخ:

السلام عليكم شباب كملوا الوضوع لانه مفيد كثير

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

السلام عليكم شباب كملوا الوضوع لانه مفيد كثير

 

ما التكملة التي تريدها أخي ؟

  • بعد 2 شهور...
بتاريخ:

السلام عليكم طيب انا بي صراحه عجبتني الفكره وحاولتا انفزا بس بيضهر لي خلط في انو م قادر يقراء ال block الانا ضيفتو ليهو

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

السلام عليكم طيب انا بي صراحه عجبتني الفكره وحاولتا انفزا بس بيضهر لي خلط في انو م قادر يقراء ال block الانا ضيفتو ليهو

 

يرجى توضيح مكان الخطأ وما هو الخطأ ؟

  • بعد 3 أسابيع...
بتاريخ:

الشكر لله وحده ، ثم لكم أيها الطيبون ، وفقكم الله لما فيه الخير .

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

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

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

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

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

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.