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

مساعدة فى تسجيل بيانات من Tabular الى Table فى قاعدة البيانات

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله

 

انا عندى سؤال وتمنى حد يسعدنى

 

انا عندى الشاشة دى

 

Untitled_zpsc76a928e.png

 

وكنت عايز اعمل insert من tabular الموجود في الشاشة الى قاعدة البيانات

علما بأن

ال tabular مش مربوط بقاعدة البيانات

 

وانا استخدمت الكود التالى


declare
 v_id number;
begin
 
 select nvl(max(imp_id) , 0)+1 into v_id from imports;
 insert into imports values
 (
   v_id,
  :save_imp.goods_name,
  :save_imp.sup_name ,
  :save_imp.cost ,
  :save_imp.quantity ,
  :save_imp.sup_date ,
  :save_imp.end_date ,
  :save_imp.note
 );
 commit;

end;

 

ولكن يقوم بحفظ الريكورد الاول فقط

في قاعدة البيانات

 

تحياتى

 

بتاريخ:

السلام عليكم

جرب الكود التالي:

 

DECLARE
   lv_n_last_rec   NUMBER;
   lv_n_fst_rec    NUMBER;
   v_id            NUMBER := 0;
BEGIN
   SELECT NVL (MAX (imp_id), 0) + 1
     INTO v_id
     FROM imports;


   GO_BLOCK ('Tabular');
   LAST_RECORD;
   lv_n_last_rec := SYSTEM.trigger_record;
   FIRST_RECORD;
   lv_n_fst_rec := SYSTEM.trigger_record;


   FOR i IN lv_n_fst_rec .. lv_n_last_rec
   LOOP
      INSERT INTO imports
           VALUES (v_id, :save_imp.goods_name, :save_imp.sup_name,
                   :save_imp.COST, :save_imp.quantity, :save_imp.sup_date,
                   :save_imp.end_date, :save_imp.note);

      NEXT_RECORD;
   END LOOP;
     COMMIT;
END;
 
بتاريخ:

عليكم السلام ورحمة الله وبركاته

قبل الكود السابق إكتب

FIRST_RECORD;

وبعدها إكتب


IF GET_BLOCK_PROPERTY(:SYSTEM.CURRENT_BLOCK,CURRENT_RECORD) <> :SYSTEM.LAST_RECORD THEN
NEXT_RECORD;
END IF;

ونصيحه خليCOMMIT;  في الأخر

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

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

 

السلام عليكم

جرب الكود التالي:

 

DECLARE
   lv_n_last_rec   NUMBER;
   lv_n_fst_rec    NUMBER;
   v_id            NUMBER := 0;
BEGIN
   SELECT NVL (MAX (imp_id), 0) + 1
     INTO v_id
     FROM imports;


   GO_BLOCK ('Tabular');
   LAST_RECORD;
   lv_n_last_rec := SYSTEM.trigger_record;
   FIRST_RECORD;
   lv_n_fst_rec := SYSTEM.trigger_record;


   FOR i IN lv_n_fst_rec .. lv_n_last_rec
   LOOP
      INSERT INTO imports
           VALUES (v_id, :save_imp.goods_name, :save_imp.sup_name,
                   :save_imp.COST, :save_imp.quantity, :save_imp.sup_date,
                   :save_imp.end_date, :save_imp.note);

      NEXT_RECORD;
   END LOOP;
     COMMIT;
END;
 

 

 

شكرا ليك بس بردو بيسجل اول ريكورد فقط

قولت يمكن علشان جملة الاستعلام خارج اللوب دخلتها جوة اللوب بس بردو نفس المشكلة

 

 

 

 

عليكم السلام ورحمة الله وبركاته

قبل الكود السابق إكتب

FIRST_RECORD;

وبعدها إكتب


IF GET_BLOCK_PROPERTY(:SYSTEM.CURRENT_BLOCK,CURRENT_RECORD) <> :SYSTEM.LAST_RECORD THEN
NEXT_RECORD;
END IF;

ونصيحه خليCOMMIT;  في الأخر

 

 

شكرا ليك يا باش مهندس محمود والله ليك وحشة كبيرة

انا مش عارف اضيف الحاجات دى في اى ماكن بالظبط

بتاريخ:

الشكر لله

إستخدم الكود التالي كما هو 

declare
 v_id number;
 V_RECORD VARCHAR2(100);
begin


 GO_BLOCK('BLOCK_NAME');
 LAST_RECORD;
 V_RECORD := GET_BLOCK_PROPERTY('BLOCK_NAME',:SYSTEM.TRIGGER_RECORD);
 FIRST_RECORD


  WHILE :SYSTEM.TRIGGER_RECORD <> V_RECORD IS NOT NULL LOOP
    select nvl(max(imp_id) , 0)+1 into v_id from imports;
     
     insert into imports values
     (
      v_id,
      :save_imp.goods_name,
      :save_imp.sup_name ,
      :save_imp.cost ,
      :save_imp.quantity ,
      :save_imp.sup_date ,
      :save_imp.end_date ,
      :save_imp.note
     );
     NEXT_RECORD;
  END LOOP;


commit;
end;
بتاريخ:

طلب حضرتك ..يكون كمافي الصورة  التي ارفقتها انا  الان؟؟؟؟

  

post-41781-0-86061300-1380363034_thumb.jpg

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

 

الشكر لله

إستخدم الكود التالي كما هو 

declare
 v_id number;
 V_RECORD VARCHAR2(100);
begin


 GO_BLOCK('BLOCK_NAME');
 LAST_RECORD;
 V_RECORD := GET_BLOCK_PROPERTY('BLOCK_NAME',:SYSTEM.TRIGGER_RECORD);
 FIRST_RECORD


  WHILE :SYSTEM.TRIGGER_RECORD <> V_RECORD IS NOT NULL LOOP
    select nvl(max(imp_id) , 0)+1 into v_id from imports;
     
     insert into imports values
     (
      v_id,
      :save_imp.goods_name,
      :save_imp.sup_name ,
      :save_imp.cost ,
      :save_imp.quantity ,
      :save_imp.sup_date ,
      :save_imp.end_date ,
      :save_imp.note
     );
     NEXT_RECORD;
  END LOOP;


commit;
end;

 

 

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

 

Untitled_zps1a562b4a.png

 

 

طلب حضرتك ..يكون كمافي الصورة  التي ارفقتها انا  الان؟؟؟؟

 

 

شكرا يا ميسم بالفعل انا عرفت اعمل الشاشة دة بس انا عايز بقى احفظ الداتا الى موجودة في tabular في قاعدة البيانات

بس كل لما بحاول بيحفظ اول ريكورد بس ويسيب الباقى

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

بتاريخ:

يعني المشكلة التنقل بين حقول الform tabular تم حلها ..وبقي الخزن الان؟؟؟؟

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

والرسالة دة مظهرتش تانى بعد لما نقلت الزرار الى بلوك اخر

لانة كان خارج حدود الفورم
بس بردو مش بيحفظ اى بيانات في الجدول

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

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

يعني المشكلة التنقل بين حقول الform tabular تم حلها ..وبقي الخزن الان؟؟؟؟

 

 

 

بالظبط يا ميسم وانا قولت الحل في الموضوع الاخر لو حبيتى تشوفية

بتاريخ:

السلام عليكم ارفقت ...صور التنفيذ...مع ملف الفورم وفيه الكود بعد التعديلات إن شاء الله يكون كما في طلب حضرتك

post-41781-0-32710800-1380480031_thumb.jpg

post-41781-0-34478100-1380480048_thumb.jpg

post-41781-0-12491000-1380480070_thumb.jpg

IMPORTS2.rar

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

السلام عليكم ارفقت ...صور التنفيذ...مع ملف الفورم وفيه الكود بعد التعديلات إن شاء الله يكون كما في طلب حضرتك

 

 

اولا

شكرا ليكى يا ست الكل والله مش عارف اقول اية على المجهود ده

بس في كام ملحوظة بسيطة

حضرتك مستخدمة text item ودة مش الى انا مستخدمة لان انا مستخدم display ودى مشكلة لوحدها لانها اصعب بكتير من الtext

لانى مينفعش اعمل text علشان المستخدم ميعدلش عليها ولو عملت ال enable وخلتها no بردو نفس المشكلة

والكود بتاع ال insert  بيحفظ اول صف فقط لانه مش داخل لووووووب ودة مش منطقى لان المستخدم لو دخل اكتر من صف هيحفظ الاول فقط

وشكرا ليكى جداااااااااااااااااااا جداااااااااااااااااااا

 

ثانيا

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

 

ثالثا

شكرا ليك يا باش مهندس احمد حسن وربنا يكرمك ان شاء الله

 

ربعا واخيراً

الكود المستخدم في النهاية هو

---------------------------- Save -------------------------------------
declare
	v_id number;
	v_rownum number;
begin
	--------------- get the number of last record ---------------
	go_block('save_imp');
	last_record;
	v_rownum := :system.trigger_record;
	first_record;
	----------------- insert into Database ----------------------
	for i in 1..v_rownum loop
		select nvl(max(imp_id) , 0)+1 into v_id from imports;
		insert into imports values
		(
			 v_id,
			:save_imp.goods_name,
			:save_imp.sup_name ,
			:save_imp.cost ,
			:save_imp.quantity ,
			:save_imp.sup_date ,
			:save_imp.end_date ,
			:save_imp.note 
		);
	commit;
	End loop;

End;
-----------------------------------------------------------------------

 

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

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

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

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

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

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

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.