Kbase 17477: How to run a report on Report Server with Actuate API
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
How to run a report on Report Server with Actuate API
/*---------------------------------------------------------------*/
/* This file will Generate a report on a Report Server and then */
/* view the report instance on the Report Server. */ */
/*---------------------------------------------------------------*/
&GLOBAL-DEFINE AC_REQ_GENERATE 2
&GLOBAL-DEFINE AC_REQ_VIEW 4
DEFINE VARIABLE intInterfaceHandle AS INTEGER NO-UNDO.
DEFINE VARIABLE hConnection AS INTEGER no-undo.
DEFINE VARIABLE intResult AS INTEGER NO-UNDO.
DEFINE VARIABLE intFileNumber AS INTEGER no-undo.
DEFINE VARIABLE intErrorNumber AS INTEGER no-undo.
DEFINE VARIABLE ReportName AS CHARACTER FORMAT "x(60)".
DEFINE VARIABLE InstanceName AS CHARACTER FORMAT "x(60)".
DEFINE VARIABLE rsReportName AS CHARACTER FORMAT "x(60)".
DEFINE VARIABLE rsInstanceName AS CHARACTER FORMAT "x(60)".
ReportName = "rotp://wslab3/test/forecast.rox".
InstanceName = "rotp://wslab3/test/forecast.roi".
rsReportName = "/test/forecast.rox".
rsInstanceName = "/test/forecast.roi".
/************************************************************/
/* AcReqInitialize initializes the DLL and prepares the API */
/* for use in your program. */
/************************************************************/
RUN AcReqInitialize (OUTPUT intInterfaceHandle).
/*************************************************************/
/* Connect to the Report Server */
/* NOTE: The server name, userid, password are Case Sensitive*/
/*************************************************************/
RUN AcReqConnect("wslab3","administrator", "", OUTPUT hConnection).
/************************************************************/
/* Opens a parameter value (.ROV) file or a */
/* report executable (.ROX) file. Retrieves the file number */
/* for use in AcReqGenerateReport with an .rox */
/************************************************************/
RUN AcReqReadFile(ReportName, OUTPUT intFileNumber).
/************************************************************/
/* Set the variables "RoiFileName" and "RoxFileName" to the */
/* to the physical path and file name. */
/************************************************************/
RUN AcReqSetValueString(intFileNumber, "RoiFileName",
rsInstanceName).
RUN AcReqSetValueString(intFileNumber, "RoxFileName",
rsReportName).
/************************************************************/
/* Generate the report (.roi) on the Report Server. */
/************************************************************/
RUN AcReqGenerateReport (ReportName, {&AC_REQ_GENERATE},
intFileNumber, OUTPUT intResult).
/************************************************************/
/* Check for errors when generating the report. */
/************************************************************/
IF intResult <> 0 THEN
DO:
MESSAGE("Generate Error " + string(intResult)) VIEW-AS ALERT-BOX.
RUN AcReqGetError( intFileNumber, OUTPUT intErrorNumber).
MESSAGE("Get Error = " + STRING(intErrorNumber)) VIEW-AS ALERT-BOX.
END.
/************************************************************/
/* View the report (.roi) from the Report Server. */
/************************************************************/
RUN AcReqViewReport(InstanceName, {&AC_REQ_VIEW}, OUTPUT intResult).
IF intResult <> 0 THEN MESSAGE("The report was not viewed")
VIEW-AS ALERT-BOX.
/************************************************************/
/* Disconnect from the Report Server. */
/************************************************************/
RUN AcReqDisconnect (hConnection).
/************************************************************/
/* Closes the API library and frees resources. */
/************************************************************/
RUN AcReqUnInitialize (intInterfaceHandle, OUTPUT intResult).
/*-----------------------------------------------------------*/
/* External Procedure Definitions From REQST32.DLL */
/* */
/* These Definitions Assume That REQST32.DLL Can Be Found By */
/* MS-Windows By Searching the PATH Environment Variable */
/*-----------------------------------------------------------*/
PROCEDURE AcReqInitialize EXTERNAL "REQST32.DLL" PERSISTENT:
DEFINE RETURN PARAMETER intReturn AS LONG.
END PROCEDURE.
PROCEDURE AcReqGenerateReport EXTERNAL "REQST32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER chrFileName AS CHARACTER.
DEFINE INPUT PARAMETER intOptions AS LONG.
DEFINE INPUT PARAMETER intFileNumber AS LONG.
DEFINE RETURN PARAMETER intReturn AS LONG.
END PROCEDURE.
PROCEDURE AcReqUnInitialize EXTERNAL "REQST32.DLL":
DEFINE INPUT PARAMETER intHandle AS LONG.
DEFINE RETURN PARAMETER intReturn AS SHORT.
END PROCEDURE.
PROCEDURE AcReqReadFile EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filename AS CHARACTER.
DEFINE RETURN PARAMETER arrf_return AS LONG.
END PROCEDURE.
PROCEDURE AcReqGetError EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filenumber AS LONG.
DEFINE RETURN PARAMETER arrf_return AS LONG.
END PROCEDURE.
PROCEDURE AcReqSetEUDTPath EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER pathName AS CHARACTER.
END PROCEDURE.
PROCEDURE AcReqSetValueString EXTERNAL "reqst32.dll" :
DEFINE INPUT PARAMETER fileNumber AS LONG.
DEFINE INPUT PARAMETER parmName AS CHARACTER.
DEFINE INPUT PARAMETER val AS CHARACTER.
END PROCEDURE.
PROCEDURE AcReqConnect EXTERNAL "reqst32.dll" :
DEFINE INPUT PARAMETER server AS CHARACTER.
DEFINE INPUT PARAMETER username As CHARACTER.
DEFINE INPUT PARAMETER password As CHARACTER.
DEFINE RETURN PARAMETER hConnection AS LONG.
END PROCEDURE.
PROCEDURE AcReqDisconnect EXTERNAL "reqst32.dll" :
DEFINE INPUT PARAMETER connectionHandle AS LONG.
END PROCEDURE.
PROCEDURE AcReqViewReport EXTERNAL "REQST32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER chrFileName AS CHARACTER.
DEFINE INPUT PARAMETER intOptions AS LONG.
DEFINE RETURN PARAMETER intReturn AS LONG.
END PROCEDURE.
Progress Software Technical Support Note # 17477