I am assuming you would want to do something like this
CHGVAR VAR(&VAR1) VALUE(‘”‘ || &PARM || ‘”‘)
where &PARM is the parm either passed into the CL pgm or set within the CL program.
STRQMQRY QMQRY(yourquery) SETVAR((QRYVAR &VAR1))
THIS CLP CONTAINS ALREADY THE PARMS USED IN THE STRQMQRY, I JUST WANT TO DISABLE THE PROMPT FOR THE SETVAR in THE STRQMQRY:
PGM PARM(&CDTEI &CCAMI &CYERI)
DCL VAR(&CDTEI) TYPE(*CHAR) LEN(7)
DCL VAR(&CCAMI) TYPE(*DEC) LEN(11 2)
DCL VAR(&CYERI) TYPE(*DEC) LEN(2 0)
DCL VAR(&CDTE) TYPE(*CHAR) LEN(7)
DCL VAR(&CCAM) TYPE(*CHAR) LEN(11)
DCL VAR(&CYER) TYPE(*CHAR) LEN(2)
CHGVAR VAR(&CDTE) VALUE(&CDTEI)
CHGVAR VAR(&CCAM) VALUE(&CCAMI)
CHGVAR VAR(&CYER) VALUE(&CYERI)
STRQMQRY QMQRY(AXMTESTLIB/NEWQRY) OUTPUT(*OUTFILE) +
OUTFILE(QTEMP/OLAUDDDU21) ALWQRYDFN(*NO) +
SETVAR((BLCLAS &CDTE) (BLRCAM &CCAM) +
(LICYER &CYER))
RETURN
==================================================================
You don’t actually disable prompting; it’s more accurate to say that you eliminate the need for prompting by passing the correct parameters into the STRQMQRY command. Prompting occurs when the parameters don’t match.
The most common mistake is that the QM substitution variable names are case-sensitive with lower-case letters and the CL was coded to pass in names that are all upper-case. Ensure that the names match exactly and prompting will disappear.
Tom
Discuss This Question: 8  Replies