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

كيف امرر القيمة الى التقرير

Featured Replies

بتاريخ:

انا عندي فورم يقوم المستخدم اختيار الاصناف منه وانا مسوي حقل نصي يضع فيه ارقام الاصناف اللي اختارها بالطريقة هذي 1,2,3,65,7, اسم هذا الحقل النصي dis_no
وبعدين امرر القيمه للتقرير ويطلع لي بيانات بناء على اللي اختارها المستخدم في الاستعلام حق التقرير مسوي انه قيمة الصنف تكون بين القيم اللي اختارها المستخدم وقمت باستخدام
activ_no n(act_no);

كود استعداء التقرير في الفورم

DECLARE
P_LIST  PARAMLIST;
act_c	char;
act_r char;
--	act_c2 char;

BEGIN

act_c:=:dis_no;
--act_nu:=:dis_no;
--act_c2:=:t2;
--act_nu:=to_number(act_c);

--act_r:=replace('act_c', ',');
P_LIST := CREATE_PARAMETER_LIST('MY_PLIST');
 add_parameter(P_LIST,'PARAMFORM',TEXT_PARAMETER,'NO');
 add_parameter(P_LIST,'MAXIMIZE',TEXT_PARAMETER,'YES');
 ADD_PARAMETER(P_LIST,'act_1',TEXT_PARAMETER,act_c);
--  ADD_PARAMETER(P_LIST,'act_2',TEXT_PARAMETER,act_c2);
 RUN_PRODUCT(REPORTS,'form_pass_activ_to',SYNCHRONOUS,RUNTIME,FILESYSTEM,P_LIST,NULL);
 DESTROY_PARAMETER_LIST(P_LIST);


END;








والكود في التقرير هو


SELECT ALL DEMARCATION.DEMR_NAME, ACTIVITIES.ACTV_NAME, NEW_BUILDING.FILE_NO,
NEW_BUILDING.RENTAL_NAME, NEW_BUILDING.CONTRACT_START, NEW_BUILDING.CONTRACT_END,
NEW_BUILDING.YEARLY_RENT, NEW_BUILDING.LAST_PAY_DATE
FROM NEW_BUILDING, ACTIVITIES, DEMARCATION
WHERE ((NEW_BUILDING.DEMR_CODE = DEMARCATION.DEMR_CODE
AND NEW_BUILDING.ACTV_NO = ACTIVITIES.ACTV_NO))
--AND new_building.MAIN_MUNC_CODE not in (1,9,10)
and [b]new_building.actv_no in (:act_1[/b]);

تم تعديل بواسطة Ahmad.Hasan
تنسيق الأكواد

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

طلبتكم يا اخوان احتاج حل ضروري

بتاريخ:

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

يمكن عمل ذلك باستخدام الـ Lexical Parameter

في الفورم قم بكتابة التالي



DECLARE
	P_LIST  PARAMLIST;
	act_c   char;
	act_r char;
BEGIN

 act_c := ' AND NEW_BUILDING.ACTV_NO IN (' || :dis_no || ')';


 P_LIST := CREATE_PARAMETER_LIST('MY_PLIST');
 add_parameter(P_LIST,'PARAMFORM',TEXT_PARAMETER,'NO');
 add_parameter(P_LIST,'MAXIMIZE',TEXT_PARAMETER,'YES');
 ADD_PARAMETER(P_LIST,'act_1',TEXT_PARAMETER,act_c);
 RUN_PRODUCT(REPORTS,'form_pass_activ_to',SYNCHRONOUS,RUNTIME,FILESYSTEM,P_LIST,NULL);
 DESTROY_PARAMETER_LIST(P_LIST);


END;



و في التقرير قم بكتابة التالي


SELECT ALL DEMARCATION.DEMR_NAME, ACTIVITIES.ACTV_NAME, NEW_BUILDING.FILE_NO,
NEW_BUILDING.RENTAL_NAME, NEW_BUILDING.CONTRACT_START, NEW_BUILDING.CONTRACT_END,
NEW_BUILDING.YEARLY_RENT, NEW_BUILDING.LAST_PAY_DATE
FROM NEW_BUILDING, ACTIVITIES, DEMARCATION
WHERE ((NEW_BUILDING.DEMR_CODE = DEMARCATION.DEMR_CODE
AND NEW_BUILDING.ACTV_NO = ACTIVITIES.ACTV_NO))
&act_l

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

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

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

يطلع خطا ora ولا يستدعي الريبورت




اما في الريبورت يقول لي انه جملة sql لم تنتهي بشكل صحيح

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

جربت حطيت في الريبورت نفس الكود اللي قلت لي عليه بس سويت في النهاية

ACTIVITIES.ACTV_NO IN('&act_1'
وبرضوا ما اشتغل

بتاريخ:

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

المثال المرفق يحتوي على تطبيق عملي للفكرة
المستخدم هو SCOTT

TEST_REP.rar

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

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

DECLARE
PL_ID	PARAMLIST;
 
BEGIN
PL_ID := GET_PARAMETER_LIST('MY_LIST');
IF NOT ID_NULL(PL_ID) THEN
	DESTROY_PARAMETER_LIST(PL_ID);
END IF;
PL_ID := CREATE_PARAMETER_LIST('MY_LIST');
 
:ACTIVITIES.DIS_NO := SUBSTR(:ACTIVITIES.DIS_NO, 1, LENGTH(:ACTIVITIES.DIS_NO) - 1); -- To remove the last comma from the text.
:ACTIVITIES.DIS_NO := 'AND WHERE ACTIVITIES.ACTV_NO IN (' || :ACTIVITIES.DIS_NO || ')';
add_parameter(PL_ID,'PARAMFORM',TEXT_PARAMETER,'NO');
 add_parameter(PL_ID,'MAXIMIZE',TEXT_PARAMETER,'YES');
ADD_PARAMETER(PL_ID, 'ACT_1', TEXT_PARAMETER, :ACTIVITIES.DIS_NO);
 
RUN_PRODUCT(REPORTS, 'form_pass_activ_to', SYNCHRONOUS, RUNTIME, FILESYSTEM, PL_ID, NULL);
 
END



-----------------------------------------------------------------------------------------------
كود الريبورت

SELECT ALL DEMARCATION.DEMR_NAME, ACTIVITIES.ACTV_NAME, NEW_BUILDING.FILE_NO,
NEW_BUILDING.RENTAL_NAME, NEW_BUILDING.CONTRACT_START, NEW_BUILDING.CONTRACT_END,
NEW_BUILDING.YEARLY_RENT, NEW_BUILDING.LAST_PAY_DATE
FROM NEW_BUILDING, ACTIVITIES, DEMARCATION
WHERE ((NEW_BUILDING.DEMR_CODE = DEMARCATION.DEMR_CODE
AND NEW_BUILDING.ACTV_NO = ACTIVITIES.ACTV_NO))
&act_1;



--------------------------------------------------------------------------
هذا كود زر الاضافه اللي مسويه


begin
  
if :dis_no is null then
  
:dis_no:=:actv_no;
:dis_name:=:actv_name;
else
  
:dis_no:=:dis_no ||','||:actv_no;
:dis_name:=:dis_name ||',' ||:actv_name;
end if;

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

بتاريخ:

اخوي اسف على ازعاجك هذي اكواد الفورم والريبوت تبعي تفذت فيه اللي قلت لي عليه بس ما نفع ممكن تشوف وين الخطا
مع العلم اني حاولت ارسل لك الملف بالمرفقات بس ما عرفت
كود الفورم
DECLARE
PL_ID	PARAMLIST;
 
BEGIN
PL_ID := GET_PARAMETER_LIST('MY_LIST');
IF NOT ID_NULL(PL_ID) THEN
	DESTROY_PARAMETER_LIST(PL_ID);
END IF;
PL_ID := CREATE_PARAMETER_LIST('MY_LIST');
 
:ACTIVITIES.DIS_NO := SUBSTR(:ACTIVITIES.DIS_NO, 1, LENGTH(:ACTIVITIES.DIS_NO) - 1); -- To remove the last comma from the text.
:ACTIVITIES.DIS_NO := 'AND WHERE ACTIVITIES.ACTV_NO IN (' || :ACTIVITIES.DIS_NO || ')';
add_parameter(PL_ID,'PARAMFORM',TEXT_PARAMETER,'NO');
 add_parameter(PL_ID,'MAXIMIZE',TEXT_PARAMETER,'YES');
ADD_PARAMETER(PL_ID, 'ACT_1', TEXT_PARAMETER, :ACTIVITIES.DIS_NO);
 
RUN_PRODUCT(REPORTS, 'form_pass_activ_to', SYNCHRONOUS, RUNTIME, FILESYSTEM, PL_ID, NULL);
 
END



-----------------------------------------------------------------------------------------------
كود الريبورت

SELECT ALL DEMARCATION.DEMR_NAME, ACTIVITIES.ACTV_NAME, NEW_BUILDING.FILE_NO,
NEW_BUILDING.RENTAL_NAME, NEW_BUILDING.CONTRACT_START, NEW_BUILDING.CONTRACT_END,
NEW_BUILDING.YEARLY_RENT, NEW_BUILDING.LAST_PAY_DATE
FROM NEW_BUILDING, ACTIVITIES, DEMARCATION
WHERE ((NEW_BUILDING.DEMR_CODE = DEMARCATION.DEMR_CODE
AND NEW_BUILDING.ACTV_NO = ACTIVITIES.ACTV_NO))
&act_1;



--------------------------------------------------------------------------
هذا كود زر الاضافه اللي مسويه


begin
 
if :dis_no is null then
 
:dis_no:=:actv_no;
:dis_name:=:actv_name;
else
 
:dis_no:=:dis_no ||','||:actv_no;
:dis_name:=:dis_name ||',' ||:actv_name;
end if;


سلام عليكم اخي اعلزيز اتوقع الخطاء هنا
:ACTIVITIES.DIS_NO := 'AND WHERE ACTIVITIES.ACTV_NO IN (' || :ACTIVITIES.DIS_NO || ')';

لانو بالتقرير يوجد كلمة where وشكر لااخ
a_disi
بتاريخ:

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

لا يوجد أي إزعاج أخي الكريم

أولا إجعل الكود في زر الإضافة كالتالي:




:dis_no := :dis_no || :actv_no || ',';
:dis_name := :dis_name || :actv_name || ',';



ثم الكود في زر استدعاء التقرير كالتالي:

DECLARE
       PL_ID   PARAMLIST;
X_DIS_NO VARCHAR2(4000) := :ACTIVITIES.DIS_NO;

BEGIN
       PL_ID := GET_PARAMETER_LIST('MY_LIST');
       IF NOT ID_NULL(PL_ID) THEN
               DESTROY_PARAMETER_LIST(PL_ID);
       END IF;
       PL_ID := CREATE_PARAMETER_LIST('MY_LIST');

       :ACTIVITIES.DIS_NO := SUBSTR(:ACTIVITIES.DIS_NO, 1, LENGTH(:ACTIVITIES.DIS_NO) - 1); -- To remove the last comma from the text.
       :ACTIVITIES.DIS_NO := ' AND ACTIVITIES.ACTV_NO IN (' || :ACTIVITIES.DIS_NO || ')'; -- This sentence will be appended to the where clause in the report.
       add_parameter(PL_ID,'PARAMFORM',TEXT_PARAMETER,'NO');
  add_parameter(PL_ID,'MAXIMIZE',TEXT_PARAMETER,'YES');
       ADD_PARAMETER(PL_ID, 'ACT_1', TEXT_PARAMETER, :ACTIVITIES.DIS_NO);

       RUN_PRODUCT(REPORTS, 'form_pass_activ_to', SYNCHRONOUS, RUNTIME, FILESYSTEM, PL_ID, NULL);

:ACTIVITIES.DIS_NO := X_DIS_NO;

END



و الكود المكتوب في التقرير صحيح ليس فيه خطأ.

إذا لم يعمل معك الحل، قم بضغط الفورم و التقرير و إرساله مع الجداول المستخدمة.

و شكراً أيضاً للأخ يزن

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

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

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

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

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

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

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.