从 Oracle Forms 获取 Oracle Reports 中的参数

问题描述 投票:0回答:2

我想使用 web.show_document() 从表单传递参数到报告,我在 URL 中添加了参数,但我不知道如何在报告中获取它并使用它..任何人都知道那个?

提前致谢:)

oracleforms oraclereports
2个回答
1
投票

要在 Oracle Forms 中传递参数到报告,您应该使用 paramlist 并将其通过内置的 run_report_object 传递,之后您可以通过传递报告 id 使用 web.show_document 调用报告。您不能在 web.show_document 中传递报表运行时参数,以下是示例:

pi_id := Create_parameter_list ('rep_param');

      Add_parameter (pi_id,
                     'PARAMFORM',
                     TEXT_PARAMETER,
                     'no');
      --- report object
      --- the below report object 'cproreport' must be created in Report object navigator.

      repid := Find_report_object ('cproreport');

      Set_report_object_property (repid, report_filename, Rtrim(:parameter.report_path)||preport);
      Set_report_object_property (repid, report_server, :parameter.r_server);
      Set_report_object_property (repid, report_execution_mode, RUNTIME);
      Set_report_object_property (repid, report_comm_mode, SYNCHRONOUS);
      Set_report_object_property (repid, report_destype, cache);
      Set_report_object_property (repid, report_desformat, pformat);

      vc_reportserverjob := Run_report_object (repid, pi_id);

之后运行 web.show_document 如下:

report_job_id :=
         Substr (vc_reportserverjob,
                 Length (:parameter.r_server) + 2,
                 Length (vc_reportserverjob));
      v_rep_status := Report_object_status (vc_reportserverjob);

      If v_rep_status = 'FINISHED'
      Then
         web.show_document (
               'http://'
            || :parameter.host
            || ':'
            || :parameter.port
            || '/reports/rwservlet/getjobid'
            || report_job_id
            || '?server='
            || :parameter.r_server,
            '_blank'
         );

0
投票

您不必先通过 run_report_object 运行报告。只需在报告生成器中将参数创建为用户参数,例如P_EMPNO。然后使用参数和值创建报告 URL。该值将传递到报告。

即...?report_server=xxxxxxxx+report_id=myreport+P_EMPNO=0001.....

© www.soinside.com 2019 - 2024. All rights reserved.