وليد علاء الدين بتاريخ: 22 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 22 أغسطس 2008 كيف يتم تنشيط و عدم تنشيط لزر حسب احتواء حقل معين على بيانات فعندما يكتب المستخدم شيء في هذا الحقل يتم تفعيل لزر فورا و اذا تم تفريغ هذا الحقل من كل البيانات يتم عمل عدم تنشيط لهذا الزر - ياريت من غير استخدام الجافا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MMA بتاريخ: 23 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 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 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل Enable و لو فرغته يعمل Disableيعني مش عاوز استنى المستخدم لما ينتقل لحقل تاني و يعمل Validation اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MTSHAJALI بتاريخ: 23 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 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 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 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 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MMA بتاريخ: 23 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل 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; بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MTSHAJALI بتاريخ: 23 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 شكرا على الاجابة .. بس ايه هو التريجر اللي اكتب فيه هذا الكويدتريجر يتتبع هذا الحقل لحظة حدوث تغير فيه يقوم باجراء معينمثلا لو كتبت حرف يعمل Enable و لو فرغته يعمل Disableيعني مش عاوز استنى المستخدم لما ينتقل لحقل تاني و يعمل Validation فهمت عليكعلى مستوى الفورم when_new_form_instanceوعلى مستوى نفس البلوك when-new_block_instanceاضف الكود بالاضافة الى خاصية navigation اللي حدثنا عنها مشكور الاخ MMA. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
وليد علاء الدين بتاريخ: 23 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 المشكلة بردو موجودة و هي الكود بيتنفذ مره واحدة في حالة when-new-form-instance و when-new-block-instanceهل يوجد TRIGGER على مستوى الـ ITEM يتنفذ كل ما المستخدم يضغط على زرار على الـ Keyboardهذا فقط ما اسأل عنه .. ياريت اسم الـ TRIGGER دا لو موجودو شكرا لكل من حاول التفكير و الرد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MTSHAJALI بتاريخ: 23 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 23 أغسطس 2008 اخي الكريم لاتحذف الكود الموجود على when validate itemاحتفظ فيه على ال text item كمان اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
tamer farouk بتاريخ: 24 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 24 أغسطس 2008 السلام عليكم و رحمة الله و بركاتهأعتقد اخى الحبيب انك لابد من كتابة هذا الكود فى التريجر و الذى يتم اطلاقة بعد الانتهاء من الكتابة فى text_itemو اسم هذا التريجر ----- Post_text_item و حتى يتم تطبيق ما تريد على البيانات المطبقة فى قاعدة البيانات فلابد من اعادة كتابة الكود فى الحدث Post_query اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد فتحى باشا بتاريخ: 24 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 24 أغسطس 2008 (معدل) مين قال ان فى قصور فى الاوراكل القصور فينا احناانا اخيرا والحمد لله وبعد استعارة فكرة الاخ وليد الذى اشكره كل الشكر على هذه الفكرةعملت الفورمة اللى تعبتنى قوى دى لكن بعد انجازها أسعدتنى جدا جدا جدا وهذه هى الخطوات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 أغسطس 2008 بواسطة محمد فتحى باشا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
وليد علاء الدين بتاريخ: 25 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 25 أغسطس 2008 الأخ محمد فتحيفكرتك كويسة طبعاً ... انما استخدام الـ TIMER بيقلل اداء الفورم لأنه بيزود ما يطلق عليه Network Round Tripلأنه كل ثانية او حسب الوقت اللي انت عاملة بـ Fire الـ Trigger حتى لو المستخدم ما عملش اي حاجةفي حاجة بسيطة بعيدة شوية عن الموضوع ... ابقى غيّر خاصية الـ ENABLE للزر بدلاً من تغير خاصية الـ VISIBLEالمطلوب طريقة تعمل Fire لـ Trigger بمجرد كتابة اي شيء في Item لحظياً يعني يعمل Fire لكل حرفو شكراً للسادة الأعضاء اللي شاركوا معانا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
وليد علاء الدين بتاريخ: 28 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 28 أغسطس 2008 باين كدا الموضوع مالهوش حل و لا في ردود جديدة في اليومين اللي فاتوا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
وليد علاء الدين بتاريخ: 29 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 29 أغسطس 2008 خلاص يا جماعة ... أنا حليت المشكلةأنظر الملف المرفق | | | V sample.zip اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
spiderarachnidea بتاريخ: 14 سبتمبر 2008 تقديم بلاغ مشاركة بتاريخ: 14 سبتمبر 2008 مشكور اخي الفاضل على هذه الفكره العبقريه ... حيث انه لايوجد فعلا ترجرز تعمل على الرن تايم ولاثيما يمكننا استخدام التايمر ولكنها تستهلك جزء كبير من النتورك ... ففعلا هذه فكره وان كانت غريبه فهى ممكنه وكما نقول افتكاسه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.