Re: Help with Oracle Developer 2000 Reports on the web

From: Tim Taylor <ttaylor_at_us.oracle.com>
Date: Mon, 19 Oct 1998 13:49:35 -0400
Message-ID: <362B7BAF.4B9A4F1A_at_us.oracle.com>


Stephen,

[Quoted] 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

stephen_hirsch_at_my-dejanews.com wrote:

> I am working on the deployment of an existing Oracle Forms and Reports
> application on the web. We have managed to set up the Oracle application
> server and web server. We are accessing the forms through an applet viewer.
>
> When we try to run a report, we get a network error message. Anyone had a
> similar problem ?
>
> The form from which we are running the report, calls the reports server using
> RUN_PRODUCT. Can anyone tell me whether the reports need to be modified to
> run over the web? Do the parameter forms in the report need to be changed in
> any way ? Do the reports need to be recompiled under a certain release of
> Developer 2000 ?
>
> I would appreciate any information that you have on the deployment of Oracle
> Reports on the web.
>
> Many Thanks
>
> Stephen
>
> -----== Posted via Deja News, The Leader in Internet Discussion ==-----
> http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
Received on Mon Oct 19 1998 - 19:49:35 CEST

Original text of this message