بتاريخ: 7 أبريل 200421 سنة comment_4966 عندي MULTI-RECORD بلوك أحد الحقول هو عبارة عن رقم الموظف و هو FOREIGN KEY على جدول الموظفين .أريد إذا وضع المستخدم رقم موظف عمره أكبر من 60 سنة يظهر صوت معين يكون بمثابة تنبيه فقط .لهذا الغرض قمت بانشاء SOUND ITEM ووضعت عرضه = صفر و ارتفاعه = صفر ، حتى لا يراه المستخدم و وضعته not navigable..... .و تم استخدام الكود التالي داخل التريغر KEY-NEXT-ITEM . [sql]BEGIN IF age_more_60(:emp_no) THEN GO_ITEM('60_sound'); READ_SOUND_FILE('D:\SOUND\emp_60_sound.WAV','wave','60_sound'); PLAY_SOUND('60_sound'); END IF; END;[/sql] --- age_more_60 is function return Boolean --- 60_sound is the sound item و كل شيء يشتغل زين و يسمع الصوت إذا كان الموظف أكبر من 60 و لكن هناك مشكلة واحدة و هي ، إذا أراد المستخدم أن يعبئ رقم الموظف من LOV أي ليس مباشرة من لوحة المفاتيح فإن هدا التريغر لا ينطلق . فما الحل ؟؟؟علما بأني لا أستطيع استخدام WHEN-VALIDATE-ITEM و لا حتى POST-CHANGE و ذلك لأن الكود يحتوي على GO_ITEM('60_sound'); أرجو الإفادة .....و شكرا تقديم بلاغ
بتاريخ: 7 أبريل 200421 سنة comment_4970 السلام عليكم اخي اولا لاصدار صوت تنبيه يوجد بلت ان اسمها bell; و هي تصدر صوت جرس تنبيهي يمكن استعمالها بدلا من الساوند ايتم اما عن تنفيذ الكود حتي لو اختار من lov فيمكن برمجة التريجر key-listval لتنفيذ هذا الكود بن يتم التشييك علي الايتم الحالي فاذا كان هو هذا الايتم تضع الكود الذي تريده ثم تظهر الlov واذا كنت تستعمل بوتون لاظهار اللف فيمكن ان تكتب نفس الكود تحت البوتون و بما انك ستضع الكود في اكتر من تريجر فيفضل ان تضعه في بروسيجدر و تنادي عليها في كل تريجر بالتوفيق تقديم بلاغ
بتاريخ: 12 أبريل 200421 سنة كاتب الموضوع comment_5180 مشكور أخي هاني . بالنسبة ل bell ، فهو يعطي دائما نفس الصوت ، و أنا عندي في البرنامج عدة تنبيهات لعدة مواقف أريد ان أفرق بينهاو سأجرب key-listvalو في حال أي مشكلة سأعود لكشكرا مرة أخرىو السلام عليكم تقديم بلاغ
بتاريخ: 5 يونيو 200520 سنة comment_38316 أقترح عليك أخي العزيز أن تجرب ان تضع هذا الكود داخل trigger من نوعpre-insert وأعتقد انك ستنجح ولكن لن يتم إصدار الصوت إلا في مرحلة الحفظأوتمنى لك التوفيق تقديم بلاغ
بتاريخ: 6 يونيو 200520 سنة comment_38394 ساعطيك حلاً حالاً when-validate_item على حقل العمر اكتب به التاليdeclaret timer;BEGIN t:=create_timer('tt',1,repeat);ENd;اعمل تريجرWHEN-TIMER-EXPIREDBEGIN IF age_more_60(:emp_no) THEN GO_ITEM('60_sound'); READ_SOUND_FILE('D:\SOUND\emp_60_sound.WAV','wave','60_sound');PLAY_SOUND('60_sound');END IF;END; لا تجيب سيرة لحد ماشي يا نقراشي ولا تنسانا من صالح الدعاء والى الامام جميعاً تقديم بلاغ
بتاريخ: 6 يونيو 200520 سنة comment_38433 السلام عليكم أخ مصطفي احان بنستخدم الحركة دي عشان نتحايل علي الريستركشن الموجود في بعض التريجرز الخاصة بافاليدشن انه موش ينفع استعمل حاجة زي GO-ITEM مثلا بس في نقطة كان ذكرها احد الاشخاص لما اقترحت له نفس الحل هي طيب لو اوراكل فورمز مانعة او عاملة ريستركشن اني اخرج من الايتم ده في تريجر زي WHEN-VALIDATE طيب ليه ه ي مانعاه و هل لما اتحايل باستخدام التايمر هياثر في حاجة تاني في عملية الفاليدشن الخاص بالايتم ولا لا ؟؟؟؟؟؟؟؟؟ تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.