الانتقال إلى المحتوى
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.

رجاءا ساعدوني ... إضافة اكتر من ريكورد (Record) بنفس الوقت

Featured Replies

بتاريخ:

مرحبا شباب

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

انا عندي فورم ومحتاج بدخل اكتر من ريكورد واحد بنفس الوقت من خلال (check box)
يعني مثلا انا محتاج بمجرد ما بحدد كل السجلات الانا بدي اياها من خلال بعدها بقوم الرنامج بحفظهم مع بعض مرة وحده (check box)
بمعني بدل ما بحفظ سجل وبعدين سجل وبعدين سجل وهكذا وعشان كدا انا عايز بمجرد ما بحدد الريكود من خلال (check box) فانه بيقوم النظام بحفظهم مرة وحده

وشكرا الكم اكتير ياشباب

بتاريخ:

السلام عليكم
هل جربت استخدام الامر commit مرة واحدة ولم يتم الحفظ؟؟
معكم ولكم نتواصل
م احمد

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

طبعا انا جربت commit وكان بحفظ عادي وبدون مشاكل لكن النظام بحفظ بس سجل واحد (RECORD) وبس

لكن انا بدي بحفظ اكتر من سجل (RECORD) بنفس الوقت من خلال تحديدنا ل (CHECK BOX)
وانا بعرف لانه بتم باستخدام ال(LOOP)

يعني مثلا نفترض لانه اسم البلوك بالفورم (EMP) ونفترض كمان لانه اسم ال (ITEM) تبع ال (CHECK BOX) هو بكون (CK_SEND) بحيث نحكي لانه اذا كان محدد عليه علامة صح فيقوم بحفظ ال (RECORD) ولو غلط ما بطلع مسج بقول لانه يجب تحديد قبل الحفظ

بكون الكود كالتايي

BEGIN
GO_BLOCK('EMP');
FIRST_RECORD ;

LOOP
IF :EMP.CK_SEND = 1 THEN

COMMIT;

Exit when :SYSTEM.LAST_RECORD ='TRUE';
if :SYSTEM.LAST_RECORD <>'TRUE' then
next_record;
end if;
IF SUCCESS_FORM  THEN
MESSAGE('تم الحفظ بنجاح');
ELSE
MESSAGE('لا تحفظ ');
END IF;
ELSE
MESSAGE (يجب التحديد اولا);
raise form_trigger_failure;
END IF;
EMD LOOP;
END;

end loop;



يرجي تصحيح الكورد وشكرا جزيلا

بتاريخ:

شوف يا مهند لو انت شغال على DATABASE BLOCK(يعني الخاصية بتاعت البلوك "DATABASE DATA BLOCK" = TRUE)
فالموضوع بسيط تضغط حفظ مرة واحدة
بيحفظ الجميع الا اذا كان في مشكلة في PK(يعني حقل او حقول PK غير خالية NULLولا القيمة المدخلة ادخلت من قبل)
او احد الحقول معمولة NOT NULL وانت سبتها فاضية.

بتاريخ:

بص يا سيدى اولا ما ينفعش تعمل البلوك اللى انت شغال عليه Database Block لان امر ال commit حايعمل حفظ لكل التغيرات اللى حصلت بدون شرط ال check box
يبقى حاتعمله Non Database Block وبعدين فى الوقت تقدر تستعمل الكود اللى جاى وتتحط كود Insert للركود وتعمل الحفظ بعد ما تظيف كل الركورد فى الداتابيز وكله ده انا ضايفه فى الكود لو فى اى سؤال انا تحت امرك ولو اشتغلت معاك ابقى بلغنى وربنا يوفقك

BEGIN
GO_BLOCK('EMP');
FIRST_RECORD ;

LOOP
IF :EMP.CK_SEND = 1 THEN

Make insert command here with the record that meet your condition

Exit when :SYSTEM.LAST_RECORD ='TRUE';
if :SYSTEM.LAST_RECORD <>'TRUE' then
next_record;
end if;
IF SUCCESS_FORM THEN
commit;
MESSAGE('تم الحفظ بنجاح');
ELSE
MESSAGE('لا تحفظ ');
END IF;
ELSE
MESSAGE (يجب التحديد اولا);
raise form_trigger_failure;
END IF;
EMD LOOP;
END;

end loop;



Best regards,


Eng. Saeed H. Keshk

System Analyst - Riyadh Municipality

Mobile KSA : (+966 54) 023-3171

Mobile EGYPT : (+2 012) 426-6883

بتاريخ:

يا ريت تبعث الفورم علشان يكون المطلوب واضح
لأن البلوك الذي على قاعدة البيانات يختلف التعامل معه عن البلوك غير معتمد على قاعدة البيانات
ايضا COMMINT_FORM تعملى على حفظ البيانات التي على الشاشة لكن COMMIT تعمل على حفظ التغيرات التي تحديث على جدول في قاعدة البيانات بمعزل عن الفورم. يعني ممكن يتحدث شئ في قاعدة البيانات فيما تظل القيمة القديمة على القيمة القديمة قبل التحديث ، لذا فهي تحتاج الى ريفريش بأكثر من طريقة.

ننتظر ردك كي نفيدك.

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

السلام عليكم

معلش ياباش مهندس اذا تاخرت بالرد

عموما انا جربت الكلام الحكيتو وطبقتو بحيث انا جعت ال DATA BASE BLOCK = NO

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

بحيث واحده منهم وهي الرئيسئة اسمها (SERV_MENU) والشاشة التانية والانا عم بشتغل عليها والبتخص عملية تسجيل الكتب او بمعنى ادخال البيانات اسمها (BOOK_REG)

طبعا الكود بوجود بشاشة الفورم (BOOK_REG) بداخل ال (BUTTON) حفظ الموجود بداخل الشاشة والكود هو

BEGIN
GO_BLOCK('BOOK_REG');
FIRST_RECORD ;

LOOP
IF :BOOK_REG.CK_SEND = 1 THEN

INSERT INTO BOOK_REG (BOOK_ID,BOOK_DATE,TO_IMP_DIR_ID,F_IMP_DIR_ID,TO_EMP_NO,OBJECTS,FROM_EMP) 
VALUES (:BOOK_REG.BOOK_ID,:BOOK_REG.BOOK_DATE,:BOOK_REG.TO_IMP_DIR_ID,:BOOK_REG.F_IMP_DIR_ID,:BOOK_REG.EMP_NO,:BOOK_REG.OBJECTS,:GLOBAL.USERID); 


Exit when :SYSTEM.LAST_RECORD ='TRUE';
if :SYSTEM.LAST_RECORD <>'TRUE' then
next_record;
end if;

			IF FORM_SUCCESS THEN
							COMMIT;
			MESSAGE('it ok saved');
			ELSE
					MESSAGE('no saved');
			END IF;
ELSE
	
MESSAGE ('CHECK ON CHECK BOX');
raise form_trigger_failure;
END IF;
END LOOP;
END; 

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

معلش انا ما قدرت ببعتلك الفورم لانه كل ما بحاول برفعو النظام هنا عم برفضو لكن انا بعتلك الكود وكمان حكيتلك لانه ال (DATABASE BLOCK = NO ) فى داخل البلوك


شكرا جزيل

بتاريخ:

what the error you faced

Best regards,


Eng. Saeed H. Keshk

System Analyst - Riyadh Municipality

Mobile KSA : (+966 54) 023-3171

Mobile EGYPT : (+2 012) 426-6883

بتاريخ:

ماذا عن استخدام ال Cursor

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

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

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

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

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

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.