IF :M_DEST_TYPE IN ('P','V','W','E','M','H','F','X') THEN
O_RUN_REPORT(:CONTROL.M_LANG_CODE,:CTRL.M_USER_ID,:GLOBAL.M_PARA_2,
:GLOBAL.M_PARA_2,:GLOBAL.M_PARA_2,'B', :REP_DFLT.M_DEST_TYPE);
END IF;
--O_RUN_REPORT is a program unit where 'P' is for preview,'W' - For winword,'E' -For excel and the code below is for run report.
PROCEDURE O_RUN_REPORT( LANG_CODE IN VARCHAR2,
USER_ID IN VARCHAR2,
MODULE_NAME IN VARCHAR2,
BITM_REP_ID IN VARCHAR2,
CHAR_REP_ID IN VARCHAR2,
REP_MODE IN VARCHAR2,
DEST_TYPE IN VARCHAR2 ) IS
PARAM_ID PARAMLIST;
/*
RG_PARAM RECORDGROUP;
GC_FROM_VAL GROUPCOLUMN;
GC_TO_VAL GROUPCOLUMN;
RG_PARAM_VAL NUMBER;
DFLT_LANG VARCHAR2(3) := 'ENG';
*/
M_COMP_CODE VARCHAR2(12);
M_RIGHT_LANG VARCHAR2(80) ;
M_LEFT_LANG VARCHAR2(80) ;
M_CURR_NLS_LANG VARCHAR2(80) ;
CURSOR C3 IS
SELECT DECODE(LANG_CODE,'ENG',COMP_NAME,COMP_BL_NAME) COMP_NAME FROM FM_COMPANY
WHERE COMP_CODE = M_COMP_CODE;
C3_REC C3%ROWTYPE;
BEGIN
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
-- CREATE PARAMETER LIST
PARAM_ID := GET_PARAMETER_LIST('PL_PARAM');
IF NOT ID_NULL(PARAM_ID) THEN
DESTROY_PARAMETER_LIST(PARAM_ID);
END IF;
PARAM_ID := CREATE_PARAMETER_LIST('PL_PARAM');
IF ID_NULL(PARAM_ID) THEN
MESSAGE('ERROR CREATING PARAMETER LIST PL_PARAM');
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
RAISE FORM_TRIGGER_FAILURE;
END IF;
/*
-- REPORT PARAMETERS
RG_PARAM := FIND_GROUP('RG_PARAM');
RG_PARAM_VAL := POPULATE_GROUP(RG_PARAM);
GC_FROM_VAL := FIND_COLUMN('RG_PARAM.GC_FROM_VAL');
GC_TO_VAL := FIND_COLUMN('RG_PARAM.GC_TO_VAL');
-- TO SET THE VALUES OF THE PARAMETER IN THE RECORD GROUP;
L_SET_USER_PARAMETERS(RG_PARAM,GC_FROM_VAL,GC_TO_VAL);
*/
M_COMP_CODE := NAME_IN('GLOBAL.M_COMP_CODE');
OPEN C3;
FETCH C3 INTO C3_REC;
CLOSE C3;
-- ADD REPORT PARAMETERS
-- TITLES
ADD_PARAMETER(PARAM_ID,'M_COMP_CODE', TEXT_PARAMETER,M_COMP_CODE);
ADD_PARAMETER(PARAM_ID,'P_USER_NAME', TEXT_PARAMETER,USER_ID);
ADD_PARAMETER(PARAM_ID,'P_REP_NAME', TEXT_PARAMETER,BITM_REP_ID);
-- USER PARAMETERS
-- ADD_PARAMETER(PARAM_ID,'USER_PARAM', DATA_PARAMETER,'RG_PARAM');
-- SET SYSTEM PARAMETERS
ADD_PARAMETER(PARAM_ID,'PARAMFORM',TEXT_PARAMETER,'NO');
ADD_PARAMETER(PARAM_ID,'P_DT_FMT_MASK',TEXT_PARAMETER,NAME_IN('CTRL.M_DT_FMT_MASK'));
ADD_PARAMETER(PARAM_ID,'P_LANG_CODE',TEXT_PARAMETER,LANG_CODE);
ADD_PARAMETER(PARAM_ID,'COPIES',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_NO_OF_COPIES'));
IF DEST_TYPE = 'V' THEN
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'PREVIEW');
ELSIF DEST_TYPE = 'P' THEN
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'PRINTER');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_DESNAME'));
ELSIF DEST_TYPE = 'W' THEN
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'RTF');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_DEST_NAME'));
ELSIF DEST_TYPE = 'E' THEN
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'XML');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,SUBSTR(NAME_IN('REP_DFLT.M_DEST_NAME'),1,INSTR(NAME_IN('REP_DFLT.M_DEST_NAME'),'.')-1)||'.XML');
ELSIF DEST_TYPE = 'M' THEN
-- Mail
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'MAIL');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER, NAME_IN('REP_DFLT.M_DEST_NAME'));
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'HTML');
ELSIF DEST_TYPE = 'H' THEN
-- HTML
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'HTML');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_DEST_NAME'));
ELSIF DEST_TYPE = 'F' THEN
-- PDF
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'PDF');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_DEST_NAME'));
ELSIF DEST_TYPE = 'X' THEN
-- XML
ADD_PARAMETER(PARAM_ID,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'XML');
ADD_PARAMETER(PARAM_ID,'DESNAME',TEXT_PARAMETER,NAME_IN('REP_DFLT.M_DEST_NAME'));
END IF;
-- USER PARAMETERS DEPENDING ON THE REPORT
L_SET_REPORT_PARAMETER(PARAM_ID);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
-- RUN REPORT
M_LEFT_LANG := 'AMERICAN_AMERICA' ;
M_RIGHT_LANG := 'ARABIC_SAUDI ARABIA' ;
O_SET_REPORT_NLS(M_CURR_NLS_LANG,M_LEFT_LANG,M_RIGHT_LANG) ;
IF REP_MODE = 'B' THEN
ADD_PARAMETER(PARAM_ID,'MODE',TEXT_PARAMETER,'BITMAP');
RUN_PRODUCT(REPORTS,BITM_REP_ID,SYNCHRONOUS,RUNTIME,
FILESYSTEM,PARAM_ID,NULL);
END IF;
M_LEFT_LANG := 'AMERICAN_AMERICA' ;
M_RIGHT_LANG := 'ARABIC_SAUDI ARABIA' ;
O_RESET_REPORT_NLS(M_CURR_NLS_LANG) ;
DESTROY_PARAMETER_LIST(PARAM_ID) ;
CLEAR_MESSAGE;
IF DEST_TYPE = 'E' THEN
CREATE_EXCEL_REPORT(NAME_IN('REP_DFLT.M_DEST_NAME'),SUBSTR(NAME_IN('REP_DFLT.M_DEST_NAME'),1,INSTR(NAME_IN('REP_DFLT.M_DEST_NAME'),'.')-1)||'.XML');
END IF;
END;