Consultor Eletrônico



Kbase 17131: How to set value for a DATE parameter using the Actuate API
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/05/1998
How to set value for a DATE parameter using the Actuate API

/* The following is an example procedure demonstrating how to use */
/* the Actuate API to set the value for a date parameter defined in */
/* an Actuate report. In this example, there is a parameter defined */
/* in the report DateParm.rod called InvoiceDate. This procedure */
/* returns all records in the report WHERE InvoiceDate = 3/3/93. */
/* Note that because this in run against a Progress database, it is */
/* using AcReqSetValueString rather than AcReqSetValueDate. */
/* For information on defining report parameters, see chapter 12 of */
/* Building Reports. */

/* DateParm.p */

/* ------------------------------------------------------------- */
/* --- LOCAL VARIABLE DECLARATION --- */
/* ------------------------------------------------------------- */

DEFINE VAR v-options AS INTEGER INITIAL 0.
DEFINE VAR ari_return AS INTEGER.
DEFINE VAR aru_return AS INTEGER Initial 0.
DEFINE VAR argr_return AS INTEGER.
DEFINE VAR arrf_return AS INTEGER.

DEFINE var ACT_REPORT AS CHARACTER NO-UNDO.
DEFINE var ACT_DESTINATION AS CHARACTER NO-UNDO.

/*--------------- Interacting with the EUDT ---------------*/

DEFINE VAR AC_REQ_VIEW As INTEGER INITIAL 4. /* Views report */
DEFINE VAR AC_REQ_PRINT As INTEGER INITIAL 8. /* Prints report */

/* -----------------------------------------------------------------*/
/* Name of the report to be run and the destination (VIEW or PRINT) */
/* !!You must insert the path and name of a valid .rov file below!! */
/* -----------------------------------------------------------------*/

assign ACT_REPORT = "c:\ActWork\DateParm.rov"
ACT_DESTINATION = "VIEW".

/* ------------------------------------------------------------- */
/* --- INITIALIZE THE API --- */
/* ------------------------------------------------------------- */

RUN AcReqInitialize (OUTPUT ari_return).

/* ------------------------------------------------------------- */
/* --- DETERMINE IF THE REPORT IS VIEWED OR PRINTED --- */
/* --- AND PASS THIS TO AcRegGenerateReport --- */
/* ------------------------------------------------------------- */

CASE ACT_DESTINATION:
WHEN "VIEW" THEN v-options = v-options + AC_REQ_VIEW.
WHEN "PRINT" THEN v-options = v-options + AC_REQ_PRINT.
OTHERWISE DO:
MESSAGE "Invalid Print Destination" VIEW-AS ALERT-BOX.
RETURN.
END.
END CASE.

/* -------------------------------------------------------------- */
/* Read the report into memory, set the value of the parameter */
/* InvoiceDate = 3/1/93, generate the report, remove the report */
/* from memory and free resources. */
/* -------------------------------------------------------------- */

RUN AcReqReadFile(ACT_REPORT, OUTPUT arrf_return).
RUN AcReqSetValueString(arrf_return, "InvoiceDate", "3/1/93").
RUN AcReqWriteFile(arrf_return, ACT_REPORT).
RUN AcReqGenerateReport(ACT_REPORT, v-options, 0, OUTPUT argr_return).
RUN AcReqUnInitialize (ari_return, OUTPUT aru_return).

/* ------------------------------------------------------------- */
/* --- EXTERNAL PROCEDURE DEFINITIONS TO THE reqst32.DLL --- */
/* These Definitions Assume That REQST32.DLL Can BE Found By */
/* MS-Windows By Searching the PATH Environment Variable. */
/* Note that this .dll is normally found in c:\actuate\devwb\bin */
/* ------------------------------------------------------------- */

PROCEDURE AcReqInitialize EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE RETURN PARAMETER ari_return AS LONG.
END PROCEDURE.

PROCEDURE AcReqGenerateReport EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filename AS CHARACTER.
DEFINE INPUT PARAMETER options AS LONG.
DEFINE INPUT PARAMETER filenumber AS LONG.
DEFINE RETURN PARAMETER argr_return AS LONG.
END PROCEDURE.

PROCEDURE AcReqReadFile EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filename AS CHARACTER.
DEFINE RETURN PARAMETER arrf_return AS LONG.
END PROCEDURE.

PROCEDURE AcReqSetValueString EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filename AS LONG.
DEFINE INPUT PARAMETER parmname AS CHARACTER.
DEFINE INPUT PARAMETER parmvalue AS CHARACTER.
END PROCEDURE.

PROCEDURE AcReqWriteFile EXTERNAL "reqst32.DLL" PERSISTENT:
DEFINE INPUT PARAMETER filename AS LONG.
DEFINE INPUT PARAMETER rovname AS CHARACTER.
END PROCEDURE.

PROCEDURE AcReqUnInitialize EXTERNAL "reqst32.DLL" :
DEFINE INPUT PARAMETER ari_return AS LONG.
DEFINE RETURN PARAMETER aru_return AS SHORT.
END PROCEDURE.


Progress Software Technical Support Note # 17131