الانتقال إلى المحتوى

مشكلة في Lov


ashrafyemen

Recommended Posts

لدي شاشة فيها بلوكين من نوع |DATA_BASE فعندما اعيد قيمة من الLOV  واريد ان استعرض بموجب القيمة الراجعه لا يعمل الكود اما عندما استعرض بموجب قيمة من البلوك الثاني يستعرض بيانات واليكم الكوديين الموجودين كالتالي

هذا الكود يعمل بشكل صحيح في حدث WHEN MOUSE CLICK

SET_BLOCK_PROPERTY('ITEM',DEFAULT_WHERE,'ITEM_CODE=:ITEM1.ITEM_CODE');
GO_BLOCK('ITEM');
EXECUTE_QUERY
;

 

اما هذا الكود عند الضغط على الزر WHEN BUTTON BRESSED لا يعمل والكود كالتالي

 

DECLARE
    X  BOOLEAN;
    W VARCHAR2(20);

BEGIN
    ------------
GO_BLOCK('ITEM');
X:=SHOW_LOV('LOV_ITEM');
    W:=:ITEM.ITEM_CODE;

IF X THEN
 SET_BLOCK_PROPERTY('ITEM',DEFAULT_WHERE,'ITEM_CODE='||W);


EXECUTE_QUERY(NO_COMMIT);

END IF;
END
;

 

يطلعلي رقم الخطأ FRM-40505

 

افيدوني جزاكم الله خيرا

رابط هذا التعليق
شارك

أعتقد والله أعلم أن المشكلة في الكود W:=:ITEM.ITEM_CODE;

فهنا W لم تأخذ قيمة لأن المستخدم لسه لم يقم بالاختيار من LOV

وبالتالي فإن قيمتها ستكون NULL

 

يمكن ان تجرب طباعة قيمة w داخل جملة IF مثلا بكتابة الكود message(w); 

 

 

 

لذلك جرب الحل التالية :/

 

أكيد أنك قمت بربط استعلام الـ LOV بالعنصر ITEM1.ITEM_CODE

 إذاً 

1. عند الضغط على الزر في WHEN BUTTON BRESSED أكتب التالي

 

DECLARE
X BOOLEAN := true;
BEGIN
X:=SHOW_LOV('LOV_ITEM');
END;

 

الكود السابق لعرض الـ LOV  يمكن الاستعاضة عنه بالضغط على F9 لعرض الـ LOV

 

2. قم بعمل تريجر POST-CHANGE للعنصر ITEM1.ITEM_CODE 

أكتب فيه التالي :

 

SET_BLOCK_PROPERTY('ITEM',DEFAULT_WHERE,'ITEM_CODE=:ITEM1.ITEM_CODE');
GO_BLOCK('ITEM');
EXECUTE_QUERY;
وبهذا ستيم عرض جميع البيانات في البلوك ITEM بمجرد تغيير قيمة العنصر ITEM1.ITM_CODE وفقاً لما سيختاره المستخدم بعد عرض LOV ، 
 
أتمنى أكون أفدتك ، ومتشوق لسماع ردك
تم تعديل بواسطة Faisal Matari
رابط هذا التعليق
شارك

بالنسبة لأمر NO COMMIT لاخفاء الرساله اللي تطلع من الاوراكل هل تريد الحفظ او لا

رابط هذا التعليق
شارك

اخي Faisal  Matari

جربت الكود اللي انت كاتبة ماضبط معي يوقف عند الtexet اللي كتبنا الكود فيه في حدث post_chang  ولا يخرج دون ان يعمل استعلام

 

 

اما بالنسبة لطباعة القيمة العائدة للتكست عندما اطبع قيمة  w يطبع قيمة بمعنى تعود القيمة الة الtext  من ال lov

تم تعديل بواسطة ashrafyemen
رابط هذا التعليق
شارك

  مع احترامي لك اخي العزيز ESLAM ELBYALY ولأفكارك التي نستفيد منها دائما

انا متأكد 100% واستخدمها دائما  هذه فائدتها تخفي الرساله اللي نطلع من الاوراكل الي تقول هل تريد حفظ التغيرات على الحقول

 

انشاء الله تضيفها الى افكارك

تم تعديل بواسطة ashrafyemen
رابط هذا التعليق
شارك

الحمد لله احتلت المشكلة معي والحل كان كالتالي

القيمة العائدة من الLOV  من نوع VARCHAR لذلك يجب ان تضيف اربع تنصيصات للقيمه العائدة من الLOV  عندما تكون من نوع DATE OR VARCHAR2

 DECLARE
    X  BOOLEAN;
    W VARCHAR2(100);
    N NUMBER;
BEGIN

X:=SHOW_LOV('LOV_ITEM',50,50);
      W:=''''||:ITEM.ITEM_CODE||'''';

IF X THEN
    
    
MESSAGE(W);MESSAGE(W);
GO_BLOCK('ITEM');
SET_BLOCK_PROPERTY('ITEM',DEFAULT_WHERE,'ITEM_CODE='||W);

EXECUTE_QUERY(NO_COMMIT);
END IF;
END;

تم تعديل بواسطة ashrafyemen
رابط هذا التعليق
شارك

لا شكر على واجب اخي العزيز ESLAM ELBAYALY  هنا تكمن الفائدة من المنتديات بتبادل الافكار والمعارف

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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