بتاريخ: 9 أبريل 200719 سنة comment_96624 السلام عليكم ورحمه الله وبركاتهفي موضوع انا قرايته وكنت ناوي ان اناقشه معاكم في المنتدي الجميل ده وناسه السكرالموضوع ده هوا ازاي نقدر نتعامل مع التوقيتات في الفورمز من خلال البلت انس الي متاجه في الفورمس وحبدأ ان شاء الله شرح المفهوم بتاعي عن التوقيت ازاي اعتمده ازاي اعدل فيه ازاي اوقفه لعل وعسي يبنفع حد في شغله او يكون عنده خلفيه عندهبسم الله توكلنا علي اللهTIMERS ايه هيه وازاي نستخمدها في شغلنا التوقيت او ضبط وقت معين اتاحته اوراكل في الفورمس بغرض صبط سلسله من العمليات عند تنفيذ امر معين او تنفيذ سلسله من الاوامر في بدايه الشغل وفتح فورم معين ده الغرض الاساسي ولكن بحصل بعض الاخطاء الي بيستخدمها بعض الناس يعني مثلا بيحاول يضبط وقت لقفل الفورم بينما اوركل بتقول ان ضبط الوقت لعمل وظائف اما علشان تظبط الكوميت او رول باك مثلا مستخدم بيكتب حاجه وساب الفورم ومعملش كوميت ولا رول باك وهوا في التعامل في يوزرس معتدمين علي الفورمه دي في تسبيت البانات اول باول فانته ممكن تعمل توقيت لحل المشكله دي ودي مشكله من ضمن المشاكل.النعريف العلمي ليه ان التوقيت وضبطه هو عباره عن بناء برمجي (حيث مفيش اداه ممكن تبدألك بعمل وقت معين ) مشابه لي ساعه داخليه .اوركل اتاحت لينا بعض البلت ان الي نقدر نتحكم في ضبط الوقت والتعامل معاه بسهوله زي FIND_TIMER CREATE_TIMER SET_TIMER DELETE_TIMER GET_APPLICATION_PROPERTY(TIMER_NAME) حنبدأها واحده واحده ان شاء الله Find_timer دي بترجعلي الاي دي بتاع التايمر نوع البيانات المستخدمه timerمثلا Declare Timer_id timer; Begin Timer_id := firnd_timer( 'timer_name'); End; create_timer دي بتبدا باعتماد وقت والسانتكس بتاعها كلاتي Create_timer('timer_name',timer_in_value,repeat_behavior) التحليللاعتماد وقت بنبدا مع الفنكشن دي ومفيش اي ارقيومنت اختياري التلات اريقومنات لازم نحددهماو واحد نحدد اسم التيمر والتاني وقت التايمر بالثانيه والثانيه 1000=بالملي سكند By millisecondsبعمني ان 5 ثواني 5000=ونص دقيقه 30 ثانيه 30000=اما الاوبشن التالت احنا بنحدد فيه اذا كنا عايزين نعمل تكرار ولا لأRepeat or no_repeatمثال Declare tmer_id timer; V_second number(6) := 6000 – 6 seconds Begin Timer_id := create_timer('start',v_second,no_repeat); End; اما الفنكشن دي Set_timer فبيها بنعدل في الوقت الي احنا ضبطناه قبل كده او في سلوك التكرارWe can modify the interval timer or repeat behaviorوالسانتكس بتاعها Set_timer('timer_name',interval_seconds,repeat_behavior) Set_timer(timer_id,interval_seconds,repeat_behavior) Delete_timer دي بتحذف الوقت اما بالاسم او بالاي ديويفضل ان يكون الاي دي وممن نجيبه زي مقلت ب find_timer Get_application_property ( timer_name) ودي مهمه جدا في تحديد الاوقات الي نتهت ممكن نعرفها باستخدامهافي بعض التريجرز الي ممكن نستخدمها مع ضبط الوقت زي When-new-form-instance لضبط واعتماد بدايه الوقت مثلاوالترجير ده مهم قوي علشان هوا عصب التعامل مع الوقت الي احنا ضبطينه When-timer-expired علي سبيل المثال لو حبينا نعمل ساعه Declare Timer_id timer; V_second number(10) := 3,600,000 – One Hour In millisecond Begin Timer_id := create_timer ('Hour_clock',v_second,no_repeat); /* لو مححدناش سلوك التكرار حيفضل يكرر للسنه الي جايه علشان ده الافتراضي بتاعه فلازم نحدد عدم التكرار */ End; علي فرض ان عايزين نعدل الكود بتاع الساعه دي فحنكتبه بالطريقه دي Set_timer('hour_clock',no_change, repeat); او مثلا Set_timer('hour_clock',5000,no_repeat) الفرق بين التعديل الاول والتاني ان الول غيرنا في عمليه التكرار في التعديل الاول ومينفعش ان نسيب تحديد الوقت نل فلازم نكتب no_change-------ولو عايزين نحذفهيبقي نسنخدم Delete_timer('hour_clock'); ممكن نعرف اذا كان الوقت موجود ولا لأا باستخدام If not id_null(find_timer('hour_clock' )then Delete_timer('hour_clock'); End if; ممكن علشان تختبرورا اهميه الموضوع ده انك تعمل فورما ابدا فورم جديد وليكن اسمه timerاعتمد كانفز كونتينت وواحد تاني ستاكد وليكن اسمه Aطبعا لازم تعمل داتا بلوك علشان تعرف تشوف الفورما في الرن تيموليكن عرض وارتفاع الكانز الاستاكد نص الكانفز الكونتينتنعتمد تريجر When-new-form-instance ونكتب فيه لاتي Declare Timer-id timer; V_second number(6) := 5000 ---- 5 seconds Begin Timer_id := create_timer('startup',v_second,no_repeat); Show_view('A'); End; ونروح لتيجر تاني اسمه When-timer-expired علي مستوي الفورمونكتب التي Begin Hide_view('A'); End; ونبدأ الفورما نلاحظ لو مشينا صح ان الكانفز الاستاكد يظهر لمده خمس ثواني وبعدين يختفياتمني اكون افدت اي حد يوضوعي دهتحياتـــــــــــــــــــــــــــــــــــــــــــي تم تعديل 10 أبريل 200719 سنة بواسطة zaeen تقديم بلاغ
بتاريخ: 10 سبتمبر 200718 سنة comment_109601 جزاك الله خيرا يا اخى على الشرح الوافى بس انا طبقت اللى انت قولته ومشتغلتش معايا والفورمه اللى عملتها مرفقه ان شاء الله فلو ممكن حد يشفها ويقولى الغلط فين وبعدين لو عايز احط الوقت فى تكت ايتم يكون ظاهر قدامى على طول ازاى بردوةانا عاملها ب 10 جىhttp://www.4shared.com/file/23920397/32180d8e/timer.htmlوشكرا لكم جميعا تقديم بلاغ
بتاريخ: 1 ديسمبر 200718 سنة comment_117622 شكرا جدا على المجهود ولكنى لى طلب وهو ان ترفع لنا السورس كود حتى تكون الاستفادة كاملة (فورم جاهزة) وشكرا تقديم بلاغ
بتاريخ: 13 نوفمبر 201114 سنة comment_217486 شكرا زين وجزاك الله كل الخير مجهود مقدر ما شاءالله بعد دراسة الموضوع قمت بعمل مثال له وتم التفيذ جيدا في اوراكل 6i ولكن عندما قمت به في 10g لا ينفذ تظهر الشاشة خالية كما موضح في الصور التالي وعند الاختيار من قائمة النافذة اي خيار (متتالي/تجانب أفقي/تجانب راسي/window1) تظهر الشاشة كما هو موضح ادناه الرجاء المساعدة في معرفة سبب حدوث هذه المشكلة ملاحظة: الشاشة مرفق MAINMENU.rar تقديم بلاغ
بتاريخ: 14 نوفمبر 201114 سنة comment_217549 انسى التايمر خالص في 10 جي بيعمل traffic غير طبيعي تقديم بلاغ
بتاريخ: 14 نوفمبر 201114 سنة comment_217554 انسى التايمر خالص في 10 جي بيعمل traffic غير طبيعي شكرا اخي ع الرد تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.