AS/400 - OPNQRYF

 
Vista:

OPNQRYF

Publicado por David Barron (32 intervenciones) el 01/05/2010 00:55:15
Buen Día a todos:
Ojalá me puedean ayudar
la vdd es que soy nuevo en esto del OPNQRYF y tengo dudas de como poner las variables en la instrucción ya que o me marca un error o no me corre el queiry.
quiero abrir un archivo en donde el TSCODE sea 18 y 19, el TSCO sea = a CIA1 y la TSDATE sea un rango entre FECHAA y FECHAB.

los valores los tomo de la pantalla y hago la declaración de variables asi

PGM PARM(&USRPRF)
DCL VAR(&FECHA1) TYPE(*DEC) LEN(7 0)
DCL VAR(&FECHA2) TYPE(*DEC) LEN(7 0)
DCL VAR(&FECHAA) TYPE(*CHAR) LEN(7)
DCL VAR(&FECHAB) TYPE(*CHAR) LEN(7)
DCL VAR(&CIA) TYPE(*DEC) LEN(3 0)
DCL VAR(&CIA1) TYPE(*CHAR) LEN(3)
DCL VAR(&USRPRF) TYPE(*CHAR) LEN(10)
DCL VAR(&SQL) TYPE(*CHAR) LEN(150)

INICIO: DCLF FILE(*LIBL/MOSFC01F) RCDFMT(CAPTURA)
SNDRCVF RCDFMT(CAPTURA)


IF COND(&IN03 *EQ '1') THEN(GOTO CMDLBL(FUERA))

FECINI y FECFIN son un valor numerico de 10,0 (20091001) y lo que hago es pasarlo a un valor de 7,0 (1091001)

CHGVAR VAR(&FECHA1) VALUE(&FECINI - 19000000)
CHGVAR VAR(&FECHA2) VALUE(&FECFIN - 19000000)

FECHA1 Y FECHA2 son valores numericos de 7,0 y los paso a FECHAA y FECHAB caracter de 7

CHGVAR VAR(&FECHAA) VALUE(&FECHA1)
CHGVAR VAR(&FECHAB) VALUE(&FECHA2)

CIA es un valor numerico de 3,0 y lo paso a un valor caracter de 3

CHGVAR VAR(&CIA1) VALUE(&CIA)

Abro el OPNQRYF de esta forma pero me marca errores

OVRDBF FKITSAVE SHARE(*YES)
OPNQRYF FILE((FKITSAVE)) QRYSLT('TSCO *EQ ' || &CIA1 +
|| ' & Tsdate *ge' *BCAT &FECHAA || ' & +
tsdate *le ' || FECHAB|| ' & tscode *eq +
%VALUES(''18' ''19''')') +
KEYFLD((TSCO) (TSLOCT) (TSPN)

CALL PGM(RFGSUMRY) PARM(&PRM)


ENDPGM

me podrías ayudar por favor, te lo agradeceré muchisimo ya que no tengo quien me ayude y me urge sacar este programa.

Gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder