PDA

Ver la Versión Completa : Desactivar un parametro


novato-sap
11/12/08, 08:16:28
Hola buenos dias, soy nuevo en sap y necesito que me ayudeis. Mi problema es el siguiente:
Yo quiero que al pulsar una opcion usando radiobutton un campo de un parametro me lo desactive, en mi caso la fecha, quedando en forma no editable.
Gracias.

francesc
11/12/08, 09:06:53
En el evento AT SELECTION-SCREEN OUTPUT haces:

loop at screen.

if screen-name = el nombre de tu campo.
screen-active = 0.
endif.

endloop.

novato-sap
11/12/08, 09:17:52
Pero si se utiliza un report, cual es el nombre del campo, sería el del parametro?.
Y se seguiria haciendo asi?
Gracias.

francesc
11/12/08, 11:10:47
Si sería el nombre del campo. Una cosa, en el código anterior hay un par de errores, con la prisa me he confundido. Te lo reescribo correctamente:

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.

IF screen-name = 'P_DATUM'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.

ENDLOOP.

En este caso P_DATUM es el nombre del parámetro. Con screen-input = 0 se mostrará en gris. Con el screen-active = 0 no se mostrará

DavidXD_XD
11/12/08, 14:54:18
Hola ... mas practico que darle el nombre es colocandole un grupo, asi si quieres realizar la misma jugada con otro campo entonces le asignas el grupo, se hace de la siguiente manera:

PARAMETERS: rad1 RADIOBUTTON GROUP grp1 USER-COMMAND uc1,
rad2 RADIOBUTTON GROUP grp1.

* El parametro p_fecha tiene asignado el grupo GR1
PARAMETERS: p_fecha TYPE sy-datum MODIF ID gr1,
p_fecha2 TYPE sy-datum.

INITIALIZATION.
rad1 = 'X'. "Asignando la X a la salida del programa

AT SELECTION-SCREEN OUTPUT.
* Si presiono el primer radiobutton entonces se ocultara el campo p_fecha
IF rad1 = 'X'.
LOOP AT screen.
IF screen-group1 = 'GR1'.
screen-active = 0.
MODIFY screen.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT screen.
IF screen-group1 = 'GR1'.
screen-active = 1.
MODIFY screen.
ENDIF.
ENDLOOP.
ENDIF.

novato-sap
12/12/08, 07:55:24
Muchas gracias a ambos por haberme ayudado. Me habeis ayudado a solucionar mi problema.