Re: JInitiator: run_product(reports, ..) does not show parameter form
Date: Thu, 29 Oct 1998 10:35:53 -0500
Message-ID: <36388B59.683AF6C4_at_us.oracle.com>
Arjan,
That is correct: RUN_PRODUCT, even when called from a web Form, will not show the parameter form on your client's PC. There are two solutions:
- Write a Form that accepts all of the parameters, build a parameter list, and invoke RUN_PRODUCT. Make sure to use SYNCHRONOUS and to specify HTML or PDF output.
- Use the WEB.SHOW_DOCUMENT built in to specify a URL that points to your Reports Server.
We addresses this topic last week. Here's my previous post: Stephen,
I had this question from a customer last week. Here's how I solved it.
You are correct to point out that RUN_PRODUCT doesn't work as a solution
for
web-enabled Forms calling web-enabled Reports. The problem is that
RUN_PRODUCT
doesn't know anything about the Report Server. It just calls the
client/server
Reports Background Engine. I'll bet that you get the Reports' parameter
forms
popping up on your server.
The solution is to use the Forms built-in procedure WEB.SHOW_DOCUMENT(url,
target). This will allow you to send a report to the Report Server of your
choice. Only one problem: WEB.SHOW_DOCUMENT doesn't work in client/server
mode,
only with web-deployed Forms. But there's a way around that too.
OK, now for the solution. My customer had a menu hierarchy, where each
Report was
called from a pull-down menu item. We created a Program Unit called
Run_Report
that could determine whether we were running web or client/server and
would make
the appropriate call. Each menu item then calls Run_Report and passes the
name of
the report. Actually, all of my customers Forms and Reports are Designer
generated, so we created a library in Designer, changed a few preferences
and had
Designer do all the work for us. Here's the basic outline of Run_Report
(this is
NOT guaranteed to compile!):
procedure Run_Report (p_report in varchar2)
usr varchar2(100); pwd varchar2(100); uif varchar2(100);
connstr varchar2(100);
begin
uif := Get_Application_Property(USER_INTERFACE); usr := Get_Application_Property(USERID); pwd := Get_Application_Property(PASSWORD);connstr := Get_Application_Property(CONNECT_STRING);
if uif = 'WEB' then
Web.Show_Document('/r30web?server=r30srv.world+report='||p_report||'+userid='||usr||'/'||pwd||'_at_'||connstr||
+'desformat=html+destype=cache+paramform=html', _blank);
else
- create and populate a parameter list if you need to Run_Product(REPORTS, ...); end if; end Run_Report;
In my Web.Show_Document code, r30web is the virtual mapping to the Reports
Cartridge on my Oracle Web Server and r30srv.world is the network name of
my
Report Server. Since you are calling the Report Server, an HTML page will
be
generated for your parameter form.
This way you have one set of Forms and Reports that you can deploy web or c/s.
Hope this helps.
Tim Taylor
Arjan van Bentem wrote:
> We have a Forms5 app that uses run_product(..) to trigger Reports3.
> Reports then shows the parameter form and everything is fine when
> using f50run32.
>
> Using JInitiator, we are trying to deploy the app on the web. It works
> fine, but when triggering the report no parameter form is shown and
> the applet does not respond anymore. However, when I shut down the
> Reports Server, suddenly the report is generated and shown in a new
> browser window just fine! That is: for those reports that accept null
> parameters the report is shown; for other reports I get a dialog
> telling me that my parameter value is not in the restricted LOV. This
> is true for both SYNCHRONOUS and ASYNCHRONOUS.
>
> I have closed all windows, but the parameter form really is not to be
> found (NT4, IE3.02, Developer Server 2.1, also on NT)... I need the
> parameter form! Any idea how to make it show?
>
> Thanks!
> Arjan.
Received on Thu Oct 29 1998 - 16:35:53 CET