بتاريخ: 22 أغسطس 200817 سنة comment_136815 كيف يتم تنشيط و عدم تنشيط لزر حسب احتواء حقل معين على بيانات فعندما يكتب المستخدم شيء في هذا الحقل يتم تفعيل لزر فورا و اذا تم تفريغ هذا الحقل من كل البيانات يتم عمل عدم تنشيط لهذا الزر - ياريت من غير استخدام الجافا تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة comment_136831 DECLARE ID_FLD <DATA_TYPE>; BEGIN SELECT <FIELD_NAME> INTO ID_FLD FROM <TABLE_NAME> WHERE <FILD_OTHER = VALUE>; IF(ID_FLD = <VALUE>)THEN SET_ITEM_PROPERTY('ITEM_NAME',ENABLED,PROPERTY_FALSE); ELSE SET_ITEM_PROPERTY('ITEM_NAME',ENABLED,PROPERTY_TRUE); END IF; END; تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة كاتب الموضوع comment_136858 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل Enable و لو فرغته يعمل Disableيعني مش عاوز استنى المستخدم لما ينتقل لحقل تاني و يعمل Validation تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة comment_136860 Simply,u can use the following code..... IF :TEXT_ITEM IS NULL THEN SET_ITEM_PROPERTY('button_name',ENABLED,PROPERTY_FALSE); ELSE SET_ITEM_PROPERTY('button_name',ENABLED,PROPERTY_TRUE); END IF; Put it in (when-validate-item trigger) on the text_itemor (key-next-item trigger) on the text_item.Good Luck تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة كاتب الموضوع comment_136867 Thank you rose But you did use a validation trigger which requries user to press enter or move to next or previous field to fire that triggerwhich is not the case i'm talking aboutI wonder if there is a trigger respond to the user input sponteously to do an action without waiting for a validation triggerit would work like send button in yahoo messanger for example .. if you type anything , the send button enabled at once تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة comment_136868 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل Enable و لو فرغته يعمل Disableيعني مش عاوز استنى المستخدم لما ينتقل لحقل تاني و يعمل Validation كما ذكر لك الأخ ( rose_4_pretty )... يمكنك في نفس العنصر إدراج When-Validate-Item Trigger ، بحيث قبل الخروج عنها يتم تنفيذ الأمربس أعزرني أنا رديت في الصباح وكنت مستعجل ، فنسيت أقل لك شيء !!!عندما تجعل خاصية Enable الي القيمة Property_False يؤدي الي إلغاء تمكين المستخدم من إستخدام زر أمر Tab مع زر الأمر المحدد ... وذلك لأنه يقم بتغيير خاصية Keyboard Navigable الي القيمة False ... فهنا يعتبر مشكلة!!!عموماً يمكنك تغيير الكود السابق ليصبح كما يلي :DECLARE ID_FLD <DATA_TYPE>; BEGIN SELECT <FIELD_NAME> INTO ID_FLD FROM <TABLE_NAME> WHERE <FILD_OTHER = VALUE>; IF(ID_FLD = <VALUE>)THEN SET_ITEM_PROPERTY('ITEM_NAME',ENABLED,PROPERTY_FALSE); ELSE SET_ITEM_PROPERTY('ITEM_NAME',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('ITEM_NAME',NAVIGABLE,PROPERTY_TRUE); END IF; END; بالتوفيق تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة comment_136874 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل Enable و لو فرغته يعمل Disableيعني مش عاوز استنى المستخدم لما ينتقل لحقل تاني و يعمل Validation فهمت عليكعلى مستوى الفورم when_new_form_instanceوعلى مستوى نفس البلوك when-new_block_instanceاضف الكود بالاضافة الى خاصية navigation اللي حدثنا عنها مشكور الاخ MMA. تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة كاتب الموضوع comment_136884 المشكلة بردو موجودة و هي الكود بيتنفذ مره واحدة في حالة when-new-form-instance و when-new-block-instanceهل يوجد TRIGGER على مستوى الـ ITEM يتنفذ كل ما المستخدم يضغط على زرار على الـ Keyboardهذا فقط ما اسأل عنه .. ياريت اسم الـ TRIGGER دا لو موجودو شكرا لكل من حاول التفكير و الرد تقديم بلاغ
بتاريخ: 23 أغسطس 200817 سنة comment_136909 اخي الكريم لاتحذف الكود الموجود على when validate itemاحتفظ فيه على ال text item كمان تقديم بلاغ
بتاريخ: 24 أغسطس 200817 سنة comment_137033 السلام عليكم و رحمة الله و بركاتهأعتقد اخى الحبيب انك لابد من كتابة هذا الكود فى التريجر و الذى يتم اطلاقة بعد الانتهاء من الكتابة فى text_itemو اسم هذا التريجر ----- Post_text_item و حتى يتم تطبيق ما تريد على البيانات المطبقة فى قاعدة البيانات فلابد من اعادة كتابة الكود فى الحدث Post_query تقديم بلاغ
بتاريخ: 24 أغسطس 200817 سنة comment_137040 مين قال ان فى قصور فى الاوراكل القصور فينا احناانا اخيرا والحمد لله وبعد استعارة فكرة الاخ وليد الذى اشكره كل الشكر على هذه الفكرةعملت الفورمة اللى تعبتنى قوى دى لكن بعد انجازها أسعدتنى جدا جدا جدا وهذه هى الخطوات1-أنشئ فورمة جديدة بكنترول بلوك وسميه BLOCK3 وكنفس جديد2-اعمل عليها TEXT_ITEM وسميه T_X واعمل BUSH_BUTTON وسميه P_B3-اعمل تريجر WHEN_NEW_FORM_INSTANCE واكتب فيه الكود التالى :GLOBAL.SEC:='1'; DECLARE TIM TIMER; BEGIN TIM:=FIND_TIMER('TIMER1'); IF NOT ID_NULL(TIM) THEN DELETE_TIMER('TIMER1'); END IF; TIM:=CREATE_TIMER('TIMER1',300,REPEAT); END; وعلى مستوى الفورمة ايضا اعمل تريجر WHEN_TIMER_EXPIRED واكتب فيه الكود التالى DECLARE X NUMBER; T_X ITEM; P_STATUS VARCHAR2(20); BEGIN X:=:GLOBAL.SEC; IF X>1 THEN T_X:=FIND_ITEM('BLOCK3.T_X'); IF :T_X IS NULL THEN SET_ITEM_PROPERTY('P_B',VISIBLE,PROPERTY_FALSE); ELSIF :T_X IS NOT NULL THEN P_STATUS:=GET_ITEM_PROPERTY('P_B',VISIBLE); IF P_STATUS='FALSE' THEN SET_ITEM_PROPERTY('P_B',VISIBLE,PROPERTY_TRUE); SET_ITEM_PROPERTY('P_B',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('P_B',NAVIGABLE,PROPERTY_TRUE); END IF; END IF; END IF; X:=X+1; :GLOBAL.SEC:=X; END; وبعد كده اعمل COMPILE وRUNوسامحونى على كلامى لانى لسة مبتدئ وسعدت جدا لما عملت الفورمة دى وشكرى للمنتدى الجميل ده واعضاؤهالنموذج فى المرفقات New_Folder.zip تم تعديل 24 أغسطس 200817 سنة بواسطة محمد فتحى باشا تقديم بلاغ
بتاريخ: 25 أغسطس 200817 سنة كاتب الموضوع comment_137142 الأخ محمد فتحيفكرتك كويسة طبعاً ... انما استخدام الـ TIMER بيقلل اداء الفورم لأنه بيزود ما يطلق عليه Network Round Tripلأنه كل ثانية او حسب الوقت اللي انت عاملة بـ Fire الـ Trigger حتى لو المستخدم ما عملش اي حاجةفي حاجة بسيطة بعيدة شوية عن الموضوع ... ابقى غيّر خاصية الـ ENABLE للزر بدلاً من تغير خاصية الـ VISIBLEالمطلوب طريقة تعمل Fire لـ Trigger بمجرد كتابة اي شيء في Item لحظياً يعني يعمل Fire لكل حرفو شكراً للسادة الأعضاء اللي شاركوا معانا تقديم بلاغ
بتاريخ: 28 أغسطس 200817 سنة كاتب الموضوع comment_137451 باين كدا الموضوع مالهوش حل و لا في ردود جديدة في اليومين اللي فاتوا تقديم بلاغ
بتاريخ: 29 أغسطس 200817 سنة كاتب الموضوع comment_137525 خلاص يا جماعة ... أنا حليت المشكلةأنظر الملف المرفق | | | V sample.zip تقديم بلاغ
بتاريخ: 14 سبتمبر 200817 سنة comment_138789 مشكور اخي الفاضل على هذه الفكره العبقريه ... حيث انه لايوجد فعلا ترجرز تعمل على الرن تايم ولاثيما يمكننا استخدام التايمر ولكنها تستهلك جزء كبير من النتورك ... ففعلا هذه فكره وان كانت غريبه فهى ممكنه وكما نقول افتكاسه تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.