Yo lo haría así:

                       PARM   KWD(TOFILE)        +
                       TYPE(QUAL2)                    +
                       DFT(*NONE)                       +
                       SNGVAL( (*NONE ))            +
                       PROMPT('A ARCHIVO')

QUAL2:           QUAL       TYPE(*NAME) LEN(10) MIN(1)

                       QUAL       TYPE(*NAME) LEN(10)            +
                       DFT(*LIBL)                     +
                       SPCVAL((*LIBL))                +
                       PROMPT('BIBLIOTECA')

No se si te puede valer.
Un saludo.

El 5 de febrero de 2009 16:43, Javier Mora <[email protected]> escribió:

>  Hola a t...@s:
>
> Estoy creando un mandato en el que necesito especifar un parámetro
> compuesto (por ejemplo biblioteca y archivo) pero en el que puede haber
> valores especiales (por ejemplo *NONE) si no quiero especificar el archivo.
> El parámetro se define así:
>
>              PARM       KWD(TOFILE)                    +
>                         TYPE(QUAL2)                    +
>                         MIN(1)                         +
>                         PROMPT('A archivo')
>  QUAL2:      QUAL       TYPE(*NAME) LEN(10) MIN(1)     +
>                         SPCVAL((*NONE))
>              QUAL       TYPE(*NAME) LEN(10)            +
>                         DFT(*LIBL)                     +
>                         SPCVAL((*LIBL))                +
>                         PROMPT('BIBLIOTECA')
>
> Como se puede observar, el parámetro es obligatorio y la biblioteca
> aparece como *LIBL. Sin embargo si el usuario no quisiera especificar un
> archivo podría poner *NONE en la parte del nombre del archivo. Por ejemplo:
>
> A archivo  . . . . . . . . . . . > *NONE         Nombre, *NONE
>   Biblioteca . . . . . . . . . .     *LIBL       Nombre, *LIBL
>
> El *LIBL de la biblioteca no se cambia. Al traspasar este parámetro al
> programa procesador llega como '*NONE     *LIBL     '. En principio no hay
> problema, como el *LIBL no lo quiero no le hago caso, o lo cambio a blancos
> si me molesta en la variable de entrada.
>
> Me gustaría que por limpieza, ya llegara desde el mandato el *LIBL
> eliminado sin forzar al usuario a hacerlo o que cuando recuperara el mandato
> con F9 no apareciera. Este comportamiento es habitual en los mandatos del
> sistema. Además, me encuentro con otro caso muy parecido en el que estoy
> diseñando un envoltorio (en forma de mandato) para una API del sistema que
> requiere en uno de sus parámetros o *ALL o 'COLASALIDA*LIBL     '.
>
> ¿Cómo puedo eliminar *LIBL cuando uso *NONE? He revisado el manual de
> "Programación CL" pero no encuentro nada sobre este tema. ¿Se puede hacer?
>
> Espero haberme explicado bien.
>
> Un saludo.
>
> *Javier Mora García*
>
>
> __________________________________________________
> Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
> &amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
> http://www.help400.es
> _____________________________________________________
>
> Para darte de baja visita la siguente URL:
> http://listas.combios.es/mailman/listinfo/forum.help400
>
__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a