MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Ayuda con screen de un report!!!! (foro/showthread.php?t=9198)

Marat 20/11/07 11:17:35

Ayuda con screen de un report!!!!
 
:confused: Holaaaaa!!!
LLevo un mes programando en ABAP y aun estoy muy verde. Tengo un problemilla. Me han pedido que cree un report (sin dynpro) con 4 radiobuttons. Al pulsar en uno de ellos se deben mostrar una serie de parametros, pero al seleccionar otro, esos parametros deben desaparecer y aparecer otros distintos.
He estado leyendo por el foro algunas cosas interesantes, pero a mi no me funcionan...ni el LOOP AT SCREEN, ni nada de nada.

Esto es lo que he puesto, a ver si alguien me puede ayudar:
SELECTION-SCREEN: BEGIN OF BLOCK bloq1 WITH FRAME TITLE text-001.

PARAMETERS: r1 RADIOBUTTON GROUP g1,
r2 RADIOBUTTON GROUP g1,
r3 RADIOBUTTON GROUP g1,
r4 RADIOBUTTON GROUP g1.
PARAMETERS: p1(128) TYPE C default ' ' MODIF ID g2. "parametro con la ruta completa del fichero
SELECTION-SCREEN: END OF BLOCK bloq1.

T SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF r1 = 'X'.
IF SCREEN-GROUP1 = 'g2'.
SCREEN-INVISIBLE = 0.
SCREEN-INPUT = 1.
ENDIF.
ELSE.
IF SCREEN-GROUP1 = 'g2'.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
ENDIF.
ENDIF.
* Se actualizan las modificaciones en la tabla SCREEN
MODIFY SCREEN.
ENDLOOP.

Por favor si alguien me puede ayudar o indicarme donde puedo consultarlo se lo agradezco mucho!!!

ballan 20/11/07 11:21:51

Aqui tienes un pequeño ejemplo, la clave esta en que tiene que asignarle un user-command a algun elemento para que pase por el evento at selection-screen output

En los programas de carga dependiendo de si van a hacerla con fichero local o en el servidor quiero que cambie el parametro que acepta la ruta dependiendo del radiobutton que pinchen y yo lo hago asi


SELECTION-SCREEN: BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.

PARAMETERS: p_local RADIOBUTTON GROUP 001 USER-COMMAND a1 DEFAULT 'X'.
PARAMETERS: p_fondo RADIOBUTTON GROUP 001.

PARAMETERS: p_filel TYPE rlgrap-filename MODIF ID 002.
PARAMETERS: p_filef TYPE string MODIF ID 003.

PARAMETERS: p_test AS CHECKBOX.
PARAMETERS: p_jd TYPE apqi-groupid OBLIGATORY DEFAULT text-002.

SELECTION-SCREEN: END OF BLOCK a1.

AT SELECTION-SCREEN OUTPUT.

IF NOT p_local IS INITIAL.

LOOP AT SCREEN.

IF screen-group1 = '002'.

screen-output = 1.
screen-input = 1.
screen-invisible = 0.
MODIFY SCREEN.

ELSEIF screen-group1 = '003'.

screen-output = 0.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF screen-group1 = '002'.

screen-output = 0.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.

ELSEIF screen-group1 = '003'.

screen-output = 1.
screen-input = 1.
screen-invisible = 0.
MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

robert_milan 20/11/07 12:21:43

VE SI ESTE EJEMPLO TE PUEDE SERVIR

SELECTION-SCREEN: BEGIN OF BLOCK bloq1 WITH FRAME TITLE text-001.

PARAMETERS: carga RADIOBUTTON GROUP g1 USER-COMMAND ent,
modifica RADIOBUTTON GROUP g1,
casa RADIOBUTTON GROUP g1,
anula RADIOBUTTON GROUP g1.
PARAMETERS: p_file(128) TYPE C default ' ' MODIF ID g2. "parametro con la ruta completa del fichero
SELECTION-SCREEN: END OF BLOCK bloq1.

INITIALIZATION.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
ENDIF.
* Se actualizan las modificaciones en la tabla SCREEN
MODIFY SCREEN.
ENDLOOP.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF carga = 'X'.
IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
SCREEN-INVISIBLE = 0.
SCREEN-INPUT = 1.
ENDIF.
ELSE.
IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
ENDIF.
ENDIF.
* Se actualizan las modificaciones en la tabla SCREEN
MODIFY SCREEN.
ENDLOOP.

SALUDOS


Husos Horarios son GMT. La hora en este momento es 07:36:44.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web