如何從Oracle的FORM中調用REPORT
來源:互聯網
上載者:User
在菜單中調用REPORT程式(不傳參數,傳參數可用下面的程式段)Run_Product(REPORTS, '報表程式名.REP', SYNCHRONOUS, RUNTIME, FILESYSTEM, '', NULL);在FORM中調用REPORT程式(可傳參數)DECLARE pl_id ParamList;BEGIN pl_id := Get_Parameter_List('參數列表名'); IF NOT Id_Null(pl_id) THEN Destroy_Parameter_List( pl_id ); END IF; pl_id := Create_Parameter_List('參數列表名'); Add_Parameter(pl_id,'REPORT參數名1',DATA_PARAMETER,':FORM項名1'); Add_Parameter(pl_id,'REPORT參數名2',TEXT_PARAMETER,':FORM項名2'); … … Run_Product(REPORTS, '報表程式名.REP', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);END;在報表中使用參數作為幫定變數時在其前面加一個冒號(:),如:有一個參數p_deptno,傳來的值為10,則select * form emp where deptno=:p_deptno將返回表emp中deptno為10的記錄。在報表中使用參數作為詞彙參數時在起前面加一個“與”符號(&),如:有一個參數p_where,傳來的值為where deptno=10,則select * from emp &p_where也將返回表emp中deptno為10的記錄。
在調用REPORT時,去掉report server:
Add_parameter(pl_id,'ORACLE_SHUTDOWN',TEXT_PARAMETER,'YES');
調用REPORT時,使報表結果直接輸出到印表機上:
Add_parameter(pl_id,'PSRAMETER_FORM',TEXT_PARAMETER,'NO');
調用REPORT時,不彈出參數視窗:
add_parameter(pl_id,'PARAMFORM',TEXT_PARAMETER,'NO');
調用REPORT時,以滿屏方式顯示:
add_parameter(pl_id, 'maximize', TEXT_PARAMETER,'yes');