الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف يمكن من اضافه سجلات لتابلار بلوك باستخدام Next_record

Featured Replies

بتاريخ:

السلام عليكم

اخوانى عندى مشكله اريد ان اقوم بعمل بلوك لكى يظهر قيمه من الجدول و لكن كل سجل يضاف بناء على سجل متوازى فى سجل مربوط بقاعدة بيانات

للتوضيح :

فكرة الفورم فى اضافه امر صيانه يظهر به المشاكل التى ظهرت فى الجهاز و فى نفس وقت اضافه المشكله يظهر فى البلوك الاخر بحيث اول سجل مشكله يقابله اول سجل فى الحل ..

حتى الان مش عارف انزل للسجل الثانى انا استخدمت next_record و لكن لا تعمل و يقوم بالتعديل بالسجل الاول فقط .. فمش عارف بقا .. انا اعمل اه فى القصه ديه

ومرفق صورة

و شكرا

post-1312-1265239290_thumb.jpg

بتاريخ:

أخي العزيز أحمد
إزيك يا أبو حميد

بالنسبة للمشكلة دي المفروض مفيش حاجة تمنع من إنشاء ريكورد جديد طالما
1- البلوك اللي انت واقف عليه أساساً بيانات الريكورد الحالية سليمة وكل الحقول الrequired ممتلئة
1- بتعمل go_block لاسم البلوك اللي انت عاوز تروحه قبل ماتقول next_record
2- بيانات الريكورد الحالية في البلوك الثاني سليمة ومفيش مشكلة في الخروج منها وكل الحقول الrequired ممتلئة
3- البلوك المراد الذهاب إليه مفتوح فيه خاصية insert_allowed

أتمنى بكده تكون المشكلة اتحلت

بتاريخ:
  • كاتب الموضوع

السلام عليكم

استاذى العزيز ..احمد جادو ..

اخبارك اه .. ..

بالنسبه للمشكله ديه .. كل الامور الى قولتها .. معموله .. المشكله هى مجرد امر الانتقال لسجل جديد فى البلك .. لا يحدث .. الغريب ان البلك طول ما هو مش مربوط بقادة البينانات فهو غير متاح التعامل غير مع اول سجل فقط ..

و الحل الوحيد انا مجربتش لحد دلوقتى .. بس الحل الوحيد هو استخدام الكوريسر cursor علشان يتم تحميل البيانات فى البلوك ..

و طبعا كل المعلومات الى ضفتها يا اخى العزيز .. صحيحه .. تمام ماشاء الله ربنا يباركلك ..

السلام عليكم

بتاريخ:

فعلا اخي حل المشكله عن طريق ال cursor

بتاريخ:
  • كاتب الموضوع

السلام عليكم

فعلا عملت كورسير زى ما اتفقنا .. بس طلع خطا غريب جدا ..

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 فية نفس الكود للكورسير
مش فاهم لاوراكل ماله و مالى ..

اه المشكله طيب فى القصه ده

و شكرا

تم تعديل بواسطة Amgad

بتاريخ:

أخي أحمد
خللي بالك انت المفروض تعمل go_block وfirst_record قبل ماتفتح الكيرسور وإلا هيحط الداتا دي في البلوك اللي فوق مش البلوك اللي انت عاوز تملاه

بتاريخ:
  • كاتب الموضوع

السلام عليكم

اخى احمد جادو .. اخبارك ارجوا كل شئ يبقا تمام ..

هو بيضيف فعلا بيانات.. فى البلوك .. التانى بس كلها بتظهر فى اول سطر يعنى بيعمل over write للمدخلات .. فبالتالى بيظهر اول سطر بس ..

و بعدين انا كمان عامل تريجر post_query فيه نفس كود الكوسير علشان لما يحصل execute_query يجيب البيانات الى موجوده بناء على البيانات القادمة من قاعدة البيانات .. مهو انا بحط داتا فى control block

و شكرا ليك يا احمد علىالمساعدة و بحضرلك مفاجاه ... قول بس ربنا يسهل ..

السلام عليكم

بتاريخ:
  • كاتب الموضوع

فى مشكله فى ان بستخدم

go_block
و
next_record

و دول مينفعوش فى اى اى تنقلات navigation فمش عارف الكود يبقا على انهوا تريجر

او ان الكود خطا !!

بتاريخ:
  • كاتب الموضوع

يا اخوانى كيف يعقل ::

ان علشان اضيف بيانات من خلال كورسير فى بلوك .. فلازم استخدم next_record طيب لما يكون فيى بلوك بيتغير على تغير البلوك الاول ( كل سجل ليه قمته من قاعدة البيانات ) طيف يبقا حستخدم على مستوى البلوك التنانى post_query طيب ازاى وحنا كلنا عارفين ان مينفعش اننا نستخدم restricted مع تريجرز navegation

فما الحل بقا ... انا مش عارف الصراحه  

بتاريخ:

والله حسب ما فهمت من المشكلة ...... ممكن ممكن يكون الحل بسيط

وهو انك تروح للبلوك اللي بدك تعمله insert بـ next_record وتعمله navigation style وتحطها change record


والله اعلم العالمين

بتاريخ:

باقولك يا أحمد ،،، جرب تشتغل في تريجر when-new-record-instance في البلوك الماستر
ده بيقبل go_block وnext_Record
واعتقد ان ده يلبي طلبك بالضبط

بتاريخ:
  • كاتب الموضوع

السلام عليكم

اخى احمد

شكرا ليك جدا جدا ..

و انا قمت بوضع الكود فى when-new-record-instance هو فعلا بيشتغل مع ال go_block بس الفكرة ان برضوا ما بحب اعمل execute_query مش بيشتغل ولا بيجيب اى بيانات الغريب بقا ان لما بعمل debug بيطلع قيمه بس بجيب القيمه الى بناء على اخر سطر

يعنى مش عارف فى اه

بتاريخ:
  • كاتب الموضوع

السلام عليكم

الحل الذى وجته هو :

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 بقيمه متغيرة فى الداتا بلوك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.