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

مشكلة فى تحديث الساعة بأستخدام ال Timer

Featured Replies

بتاريخ:

دلوقتى انا عندى كتاب فيه مواضيع حلوه جداً لل Forms ...... من ضمن المواضيع دى ، موضوع بيتكلم عن تحديث الساعة ثانية بثانية فى ال Run Time ..... و ده نص الموضوع :-


Timers and Displaying a Clock
An external clock can be constructed using timers. Timers correspond to internal clocks, which have a specific time period. When the specified duration expires, the timer can either perform an action once and stop or repeat the action regularly every time the timer expires. Timer duration is always in milliseconds. Timers are created using the CREATE_TIMER built in and require a WHEN-TIMER-EXPIRED trigger to be written at the form level. This trigger fires every time the timer expires.

Using REPEAT Timers
Let's create a display item, CURRENT_TIME, in the horizontal toolbar canvas CANVAS_TOOLBAR created earlier. This item shows the time in HH24:MI:SS format and updates itself every second (the timer duration).

In the WHEN-NEW-FORM-INSTANCE trigger, create a timer named CLOCK_TIMER, which iterates after every one second and populates the CURRENT_TIME item with the system date in HH24:MI:SS format. The code is as follows:


DECLARE

timer_id TIMER;

one_second NUMBER := 1000;

BEGIN

timer_id := FIND_TIMER('CLOCK_TIMER');

IF NOT ID_NULL(timer_id) THEN

DELETE_TIMER(timer_id);

ELSE

timer_id := CREATE_TIMER('CLOCK_TIMER',one_second, REPEAT);

END IF;

SELECT TO_CHAR(SYSDATE,'HH24:MI:SS')

INTO :toolbar.current_time

FROM DUAL;

EXCEPTION WHEN OTHERS THEN

MESSAGE(TO_CHAR(SQLCODE)||''||SQLERRM);

END;


Create a WHEN-TIMER-EXPIRED trigger as follows:


DECLARE

timer_name VARCHAR2(30);

BEGIN

timer_name := GET_APPLICATION_PROPERTY(TIMER_NAME);

IF timer_name = 'CLOCK_TIMER' THEN

SELECT TO_CHAR(SYSDATE,'HH24:MI:SS')

INTO :toolbar.current_time

FROM DUAL;

END IF;

EXCEPTION WHEN OTHERS THEN

MESSAGE(TO_CHAR(SQLCODE)||''||SQLERRM);

;END



المهم انا عملت كده ...... و برضه مش شغال معايا الفورمه ...... أنا ارفقت الفورمه .... و اتمنى ان ألاقى حل لهذه المشكلة ..... و شكراً

TIME_TIMER.zip

تم تعديل بواسطة hanyfreedom

بتاريخ:

حاولت كتير ما زبط معي

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

مازلت منتظر الاجابة ....... أرجو الاهتمام ........... و شكراً

بتاريخ:

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


أولاً بالنسبه للdisplay item المفروض يبقى char لأنك بتحول الsysdate إلى char فلازم الitem اللى هتوضع فيه القيمه يكون char وكمان هتشيل الformat mask
أما بالنسبه لwhen-new-form-instance
ماينفعش تقول find_timer وهو لسه ماتعملوش create فهيدى error
كمان فى when-timer-expired
مشمحتاج get_application_property لأن مفيش ألا timer واحد بس هو اللى متكريت.


مرفق الفورمه........

TIME_TIMER.zip

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

أخى الكريم Ahmed Farghaly شكراً لتعبك
بالنسبة لكلامك فيما يتعلق بال :-

أولاً بالنسبه للdisplay item المفروض يبقى char لأنك بتحول الsysdate إلى char فلازم الitem اللى هتوضع فيه القيمه يكون char وكمان هتشيل الformat mask

كمان فى when-timer-expired
مشمحتاج get_application_property لأن مفيش ألا timer واحد بس هو اللى متكريت.


فهو كلام صحيح ...... أما بالنسبة لل :-

أما بالنسبه لwhen-new-form-instance
ماينفعش تقول find_timer وهو لسه ماتعملوش create فهيدى error


فهو ينفع ..... لأن بكل بساطة هيبحث عن ال timer اللى اسمه CLOCK_TIMER فمش هيلاقى و بكده مش هيبقى فى قيمة لل ID_NULL و من ثم مش هيمسح ال timer

و انا أرفقت الفورمه بعد تعديلك و تعديلى ........ شكراً جزيلاً لك أخى Ahmed Farghaly
و أتمنى ان يكون أخونا j1968s قد فهم الفكرة دلوقتى ... مثلى

و فى سلامة الله

TIME_TIMER.zip

بتاريخ:

تمام ياأخ هانى جزاك الله خيراً.......

بتاريخ:

الف شكر

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

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

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

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

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

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.