بتاريخ: 27 أبريل 200620 سنة comment_67673 السلام عليكم .....انا جديد في عالم الريبورت و اود من اخواني البارزين في هذا البحر ان يفيدوني واياكم بشرح مبسط في كيفية عمل بارميتر للريبورت بحيث يتم تمريره من الفورم. ولكم جزيل الشكر.. تقديم بلاغ
بتاريخ: 29 أبريل 200620 سنة comment_67758 You should create a new Reports Server Service for this example. 1) Create a simple report based on table EMP with a user parameter: select * from emp where emp.deptno = :pdeptno; 2) Open up the Property Inspector of user parameter PDEPTNO and specify the following: Name: pdeptno Datatype: Number Width: 20 Initial value: 20 (It can be any valid value) 3) Compile and save the report. Try to run it using 'Run Paper Layout' icon to make sure it works properly. 4) Create a simple form based on table DEPT: select * from dept; 5) Create a new reports server service as following (in Command Prompt):rwserver -install repserver90 autostart=yes6) Open Property Palette for Reports object in the Forms Object Navigator and enter the following:Name: EMP Filename: C:\reports\emp.rdf /*<specify full path to your RDF/REP file or make surethis path is included into REPORTS_PATH environment variable*/Report Destination Type: CACHE Report Destination Format: HTML Report Server: repserver90 7) Open Layout Editor and create a push button 'Run-Report'. 8) Create a WHEN-BUTTON-PRESSED trigger with the following code: test_report; 9) Create a new procedure that you can call from the trigger as follows:PROCEDURE TEST_REPORT IS repid REPORT_OBJECT; v_rep VARCHAR2(100);rep_status VARCHAR2(20); BEGIN repid := find_report_object('report5'); SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH); SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE); SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'html'); SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'repserver90'); SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no pdeptno='||:dept.deptno); v_rep := RUN_REPORT_OBJECT(repid); 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 /*Display report in the browser*/ WEB.SHOW_DOCUMENT('http://<YourServerName:8888/reports/rwservlet/getjobid'|| substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver90','_blank'); ELSEmessage('Error when running report'); END IF;END;10) Compile the form. 11) Run the form,populate the record. 12) Click on the push button. منقول من موضوع سابق للاخ عمر با عقيل تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.