PDA

Ver la Versión Completa : Problemas con selection-screen


misa
15/07/08, 16:15:03
Hola,

estoy creando un report con varios botones en la pantalla de seleccion, dependiendo del boton que se pulse y pulsando 'ejecutar' se deben rellenar unos campos de la pantalla u otros a partir de un select, pero no soy capaz, porque en el AT SELECTION SCREEN OUTPUT no me modifica los campos porque sy-ucomm es initial y no guarda el valor de 'ejecutar'.

Alguien me podria ayudar?????


Gracias

frankmerlos
15/07/08, 17:09:41
HOLA.

CUANDO UTILIZAS BOTONES DEBES DE UTILIZAR SSCRFIELDS-UCOMM HE INCLUIR ESA TABLA.

ESTE EJEMPLO ES UNA PEQUEÑA CALCULADORA QUE EMPEZE A HACER EN ABAP.

*&---------------------------------------------------------------------*
*& Report PLANTILLA
*&
*&---------------------------------------------------------------------*

REPORT ZSVFRANK MESSAGE-ID BA.

TABLES SSCRFIELDS.

DATA: OPERANDO1 TYPE P DECIMALS 2,
OPERANDO2 TYPE P DECIMALS 2,
OPERACION TYPE C,
RESULTADO TYPE P DECIMALS 2.

SELECTION-SCREEN
BEGIN OF BLOCK LIMIT WITH FRAME TITLE TEXT1.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(10) TEXT2 FOR FIELD P1.
PARAMETERS: P1(25).

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN: PUSHBUTTON /1(5) NUM1
USER-COMMAND NUM_1.

SELECTION-SCREEN: PUSHBUTTON 7(5) NUM2
USER-COMMAND NUM_2.

SELECTION-SCREEN: PUSHBUTTON 13(5) NUM3
USER-COMMAND NUM_3.

SELECTION-SCREEN: PUSHBUTTON /1(5) NUM4
USER-COMMAND NUM_4.

SELECTION-SCREEN: PUSHBUTTON 7(5) NUM5
USER-COMMAND NUM_5.

SELECTION-SCREEN: PUSHBUTTON 13(5) NUM6
USER-COMMAND NUM_6.

SELECTION-SCREEN: PUSHBUTTON /1(5) NUM7
USER-COMMAND NUM_7.

SELECTION-SCREEN: PUSHBUTTON 7(5) NUM8
USER-COMMAND NUM_8.

SELECTION-SCREEN: PUSHBUTTON 13(5) NUM9
USER-COMMAND NUM_9.

SELECTION-SCREEN: PUSHBUTTON /7(5) NUM0
USER-COMMAND NUM_0.

SELECTION-SCREEN END OF BLOCK LIMIT.

INITIALIZATION.
MOVE 'CALCULADORA' TO TEXT1.
MOVE 'VALORES' TO TEXT2.
MOVE '1' TO NUM1.
MOVE '2' TO NUM2.
MOVE '3' TO NUM3.
MOVE '4' TO NUM4.
MOVE '5' TO NUM5.
MOVE '6' TO NUM6.
MOVE '7' TO NUM7.
MOVE '8' TO NUM8.
MOVE '9' TO NUM9.
MOVE '0' TO NUM0.

AT SELECTION-SCREEN.
PERFORM OPERAR.

*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*
*& CUERPO DEL PROGRAMA
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*

START-OF-SELECTION.

IF OPERACION = 'E'.
WRITE : 'NO ES POSIBLE REALIZAR LA DIVISION ENTRE 0'.
ELSE.
PERFORM OPERAR.
WRITE: 'RESULTADO DE LA OPERACION : ', RESULTADO.
ENDIF.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form OPERAR
*&---------------------------------------------------------------------*

FORM OPERAR .
CASE SSCRFIELDS-UCOMM.
WHEN 'NUM_1'.
CONCATENATE P1 '1' INTO P1.
RESULTADO = '1'.
WHEN 'NUM_2'.
CONCATENATE P1 '2' INTO P1.
RESULTADO = '2'.
WHEN 'NUM_3'.
CONCATENATE P1 '3' INTO P1.
RESULTADO = '3'.
WHEN 'NUM_4'.
CONCATENATE P1 '4' INTO P1.
RESULTADO = '4'.
WHEN 'NUM_5'.
CONCATENATE P1 '5' INTO P1.
RESULTADO = '5'.
WHEN 'NUM_6'.
CONCATENATE P1 '6' INTO P1.
RESULTADO = '6'.
WHEN 'NUM_7'.
CONCATENATE P1 '7' INTO P1.
RESULTADO = '7'.
WHEN 'NUM_8'.
CONCATENATE P1 '8' INTO P1.
RESULTADO = '8'.
WHEN 'NUM_9'.
CONCATENATE P1 '9' INTO P1.
RESULTADO = '9'.
WHEN 'NUM_0'.
CONCATENATE P1 '0' INTO P1.
RESULTADO = '0'.
ENDCASE.
ENDFORM. " OPERAR

SALUDOS, ESPERO TE SIRVA

misa
16/07/08, 14:43:39
Muchas gracias, es lo que estaba buscando.
Voy a adaptarlo y a ver si consigo que funcione