RUN AND PASS PARAMETER TO REPORT 10G

التقارير
الحالة الاولى : عمل رن للتقرير بدون باراميتر (الطريقة التقليدية )
1- قم بانشاء التقرير وتنسيقة في منشئ التقارير ثم قم بحفظة بالصسغة Rdf
2- في الكود الخاص بمفتاح التقرير في الفورم اكتب الاتي:

DECLARE
v_url VARCHAR(300);
BEGIN
v_url := '/reports/rwservlet? report=d:\civil\reports\gtype.rdf&userid=saif/s@orcl&destype=cache&desformat=PDF' ;
web.show_document(v_url,'_blank');
END;

مع العلم d:\civil\reports\ يمثل المسار
و gtype.rdf اسم التقرير


طريقة اخرى للحالة الاولى :استخدام هذا الكود بدلا من السابق

declare
Rep_ID report_object;
Rep_status varchar2(20);
V_Rep varchar2(100);
BEGIN
Rep_ID := find_report_object('OMAR'); --report name as in object navigator in forms builder

set_report_object_property(Rep_ID ,report_execution_mode,batch);
set_report_object_property(Rep_ID ,report_comm_mode,synchronous);
set_report_object_property(Rep_ID ,report_destype,cache);
set_report_object_property(Rep_ID ,report_desformat,'PDF');
set_report_object_property(Rep_ID ,report_server,'myrepserver');
set_report_object_property(Rep_ID ,report_other,'paramform=no');

V_Rep:= RUN_REPORT_OBJECT(Rep_ID ); --without parameters
Rep_status := REPORT_OBJECT_STATUS(V_Rep);

WHILE Rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
Rep_status := report_object_status(V_Rep);
END LOOP;
IF Rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT ('http://aflak2:8889/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-

1)+1)||'?'||'server=myrepserver','_blank');

ELSE
message('Error when running report');
END IF;
END;


'http://aflak2:8889اسم السرفير الخاص بالتقارير


الحالة الثانية : عمل رن للتقرير وارسال الباراميتر له
1- قم بانشاء التقرير وتنسيقة في منشئ التقارير ثم قم بحفظة بالصسغة Rdf
2- في الكود الخاص بمفتاح التقرير في الفورم اكتب الاتي:

declare
v_url varchar(300);
Rep_ID report_object;
v_rep varchar2(100);
rep_status varchar2(20);
pl_id paramlist;
BEGIN
pl_id := get_paramETER_list('tempdata');
if id_null(pl_id) then
pl_id := CREATE_PARAMETER_LIST('tempdata');
add_parameter(pl_id, 'P_CODE', TEXT_PARAMETER, :BLK_CNTRL.TXT_G_TYPE_CODE);
end if;
Rep_ID := find_report_object('GTYPE');
set_report_object_property(Rep_ID ,report_execution_mode,batch);
set_report_object_property(Rep_ID ,report_comm_mode,synchronous);
set_report_object_property(Rep_ID ,report_destype,cache);
set_report_object_property(Rep_ID ,report_desformat,'PDF');
set_report_object_property(Rep_ID ,report_server,'myrepserver');
set_report_object_property(Rep_ID ,report_other,'paramform=no');
v_rep := RUN_REPORT_OBJECT(Rep_ID , pl_id);
rep_status := REPORT_OBJECT_STATUS(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
rep_status := report_object_status(v_rep);
END LOOP;
IF rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('http://aflak2:8889/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=myrepserver','_blank');
ELSE
message('Error when running report');
END IF;
destroy_parameter_list('tempdata');
END;

تعليقات

المشاركات الشائعة من هذه المدونة

Data Block Based On Procedures