بتاريخ: 3 فبراير 201016 سنة comment_184104 السلام عليكماخوانى عندى مشكله اريد ان اقوم بعمل بلوك لكى يظهر قيمه من الجدول و لكن كل سجل يضاف بناء على سجل متوازى فى سجل مربوط بقاعدة بياناتللتوضيح :فكرة الفورم فى اضافه امر صيانه يظهر به المشاكل التى ظهرت فى الجهاز و فى نفس وقت اضافه المشكله يظهر فى البلوك الاخر بحيث اول سجل مشكله يقابله اول سجل فى الحل .. حتى الان مش عارف انزل للسجل الثانى انا استخدمت next_record و لكن لا تعمل و يقوم بالتعديل بالسجل الاول فقط .. فمش عارف بقا .. انا اعمل اه فى القصه ديه ومرفق صورة و شكرا تقديم بلاغ
بتاريخ: 4 فبراير 201016 سنة comment_184118 أخي العزيز أحمدإزيك يا أبو حميد بالنسبة للمشكلة دي المفروض مفيش حاجة تمنع من إنشاء ريكورد جديد طالما1- البلوك اللي انت واقف عليه أساساً بيانات الريكورد الحالية سليمة وكل الحقول الrequired ممتلئة1- بتعمل go_block لاسم البلوك اللي انت عاوز تروحه قبل ماتقول next_record2- بيانات الريكورد الحالية في البلوك الثاني سليمة ومفيش مشكلة في الخروج منها وكل الحقول الrequired ممتلئة3- البلوك المراد الذهاب إليه مفتوح فيه خاصية insert_allowedأتمنى بكده تكون المشكلة اتحلت تقديم بلاغ
بتاريخ: 4 فبراير 201016 سنة كاتب الموضوع comment_184200 السلام عليكم استاذى العزيز ..احمد جادو .. اخبارك اه .. ..بالنسبه للمشكله ديه .. كل الامور الى قولتها .. معموله .. المشكله هى مجرد امر الانتقال لسجل جديد فى البلك .. لا يحدث .. الغريب ان البلك طول ما هو مش مربوط بقادة البينانات فهو غير متاح التعامل غير مع اول سجل فقط .. و الحل الوحيد انا مجربتش لحد دلوقتى .. بس الحل الوحيد هو استخدام الكوريسر cursor علشان يتم تحميل البيانات فى البلوك ..و طبعا كل المعلومات الى ضفتها يا اخى العزيز .. صحيحه .. تمام ماشاء الله ربنا يباركلك ..السلام عليكم تقديم بلاغ
بتاريخ: 6 فبراير 201016 سنة كاتب الموضوع comment_184312 السلام عليكم فعلا عملت كورسير زى ما اتفقنا .. بس طلع خطا غريب جدا .. FRM-40737:Illegal restricted procedure next_record in when_validate_item انا عملت بلوك control و وضعت فيه text و كل من البلوك و text قيمه ال database item تساوى no ووضعت فى الtext فى التريجر when_validate_item الكود الاتى : declare cursor get_sol is select SOL_STEP,PROB_ID from MI_SOLUTION where PROB_ID=:MI_FORM_PROB.PROB_ID; begin select PROB_DESC into :TXT_PROBLEM_DESC from MI_PROBLEMS where prob_id=:MI_FORM_PROB.PROB_ID; for cur_sol in get_sol loop :CONTROL.txt_sol_step:=cur_sol.SOL_STEP; :CONTROL.TXT_BROB_ID:=cur_sol.PROB_ID; next_record; end loop; end ; و مش عارف فى اه .. اه السبب يعنى هو المشكله بيقول فى ال next_record طيب مهو لو مكتبتهاش حيحمل كل الداتا القادمه من الكورسر على اول سجل بس .. و عامل تريجر كمان على مستوى البلوك .. post_query فية نفس الكود للكورسيرمش فاهم لاوراكل ماله و مالى .. اه المشكله طيب فى القصه ده و شكرا تم تعديل 7 فبراير 201016 سنة بواسطة Amgad تقديم بلاغ
بتاريخ: 7 فبراير 201016 سنة comment_184322 أخي أحمدخللي بالك انت المفروض تعمل go_block وfirst_record قبل ماتفتح الكيرسور وإلا هيحط الداتا دي في البلوك اللي فوق مش البلوك اللي انت عاوز تملاه تقديم بلاغ
بتاريخ: 7 فبراير 201016 سنة كاتب الموضوع comment_184326 السلام عليكم اخى احمد جادو .. اخبارك ارجوا كل شئ يبقا تمام .. هو بيضيف فعلا بيانات.. فى البلوك .. التانى بس كلها بتظهر فى اول سطر يعنى بيعمل over write للمدخلات .. فبالتالى بيظهر اول سطر بس ..و بعدين انا كمان عامل تريجر post_query فيه نفس كود الكوسير علشان لما يحصل execute_query يجيب البيانات الى موجوده بناء على البيانات القادمة من قاعدة البيانات .. مهو انا بحط داتا فى control block و شكرا ليك يا احمد علىالمساعدة و بحضرلك مفاجاه ... قول بس ربنا يسهل .. السلام عليكم تقديم بلاغ
بتاريخ: 7 فبراير 201016 سنة كاتب الموضوع comment_184404 فى مشكله فى ان بستخدم go_blockو next_record و دول مينفعوش فى اى اى تنقلات navigation فمش عارف الكود يبقا على انهوا تريجر او ان الكود خطا !! تقديم بلاغ
بتاريخ: 7 فبراير 201016 سنة كاتب الموضوع comment_184407 يا اخوانى كيف يعقل ::ان علشان اضيف بيانات من خلال كورسير فى بلوك .. فلازم استخدم next_record طيب لما يكون فيى بلوك بيتغير على تغير البلوك الاول ( كل سجل ليه قمته من قاعدة البيانات ) طيف يبقا حستخدم على مستوى البلوك التنانى post_query طيب ازاى وحنا كلنا عارفين ان مينفعش اننا نستخدم restricted مع تريجرز navegation فما الحل بقا ... انا مش عارف الصراحه تقديم بلاغ
بتاريخ: 8 فبراير 201016 سنة comment_184506 والله حسب ما فهمت من المشكلة ...... ممكن ممكن يكون الحل بسيط وهو انك تروح للبلوك اللي بدك تعمله insert بـ next_record وتعمله navigation style وتحطها change record والله اعلم العالمين تقديم بلاغ
بتاريخ: 8 فبراير 201016 سنة comment_184510 باقولك يا أحمد ،،، جرب تشتغل في تريجر when-new-record-instance في البلوك الماستر ده بيقبل go_block وnext_Recordواعتقد ان ده يلبي طلبك بالضبط تقديم بلاغ
بتاريخ: 8 فبراير 201016 سنة كاتب الموضوع comment_184534 السلام عليكم اخى احمدشكرا ليك جدا جدا .. و انا قمت بوضع الكود فى when-new-record-instance هو فعلا بيشتغل مع ال go_block بس الفكرة ان برضوا ما بحب اعمل execute_query مش بيشتغل ولا بيجيب اى بيانات الغريب بقا ان لما بعمل debug بيطلع قيمه بس بجيب القيمه الى بناء على اخر سطريعنى مش عارف فى اه تقديم بلاغ
بتاريخ: 12 فبراير 201016 سنة كاتب الموضوع comment_184821 السلام عليكم الحل الذى وجته هو : declare var_reound number(30,8); begin Count_Query; execute_query; var_reound:=:System.Trigger_Record-1; go_block('control'); first_record; loop if name_in(':system.cursor_item') is not null then For i in (select SOL_STEP,PROB_ID from MI_SOLUTION where PROB_ID=:MI_FORM_PROB.PROB_ID) Loop :CONTROL.txt_sol_step := i.SOL_STEP; :CONTROL.TXT_BROB_ID := i.PROB_ID ; next_record; End Loop; end if; go_block('MI_FORM_PROB'); if :MI_FORM_PROB.PROB_ID is not null then next_record; end if; --exit when name_in(':system.cursor_item') is null ; exit when :MI_FORM_PROB.PROB_ID is null ; end loop; go_block('MI_FORM'); End ; بس مشاكله كتير بتطلع .. المهم يفضل انك تبعد عن الفكرة ديه انك تملى بيانات control بقيمه متغيرة فى الداتا بلوك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.