PDA

Ver la Versión Completa : Botones en pantalla de seleccion.


javibest
26/03/08, 15:09:33
Se puede poner en un Report (de tipo 1) un status ? o un boton diferente a los que salen por defecto ? estoy intentando asignar un status en el evento initialization , pero luego no consigo que se ejecute nada . Me salen mensajes de error muy raros ....

vickxo
26/03/08, 15:25:11
Si se puede, de hecho puedes copiar un status de uno estandar o de alguno programilla perdido en tu r3, para signarlo solo usas
SET PF-STATUS 'Z_TU_STATUS'.

Y ya con eso se carga, los eventos se disparan con los codigos de funcion que definas en el set statis, saludos!

DavidXD_XD
26/03/08, 15:27:06
Claro q si funciona, dale una chekeada a este post y me comentas ....

http://www.mundosap.com/foro/showthread.php?t=11605

javibest
27/03/08, 06:44:33
Gracias por las respuestas, pero lo de asignar un status , si lo hago, aparecen los botones, pero si pincho en ellos, me sale un mensaje
"Posicionar el cursor en una seleccion".
No se por qué

Y lo de agregar botones a codigo, no consigo que al pulsarlos se ejecute el evento start-of-selection. Se ejecutan otros que no me sirven ...

ecm
27/03/08, 07:15:21
Mando un ejemplo de una pantalla de selección con botones añadidos por código. Añade dos botones a la barra.

REPORT ysel_01 MESSAGE-ID z1.


TABLES: sscrfields, trdir.
DATA v_ucomm LIKE sy-ucomm.
DATA e_smp_dyntxt LIKE smp_dyntxt.
TABLES d020t.
INCLUDE <icon>.
TYPE-POOLS slis.
*----------------------------------------------------------------------*
* Parameters *
*----------------------------------------------------------------------*
SELECT-OPTIONS: repo FOR trdir-name.

SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
*break-point.
ENDLOOP.
*----------------------------------------------------------------------*
* EVENT: Initialization
*----------------------------------------------------------------------*
INITIALIZATION.

e_smp_dyntxt-text = 'Botón 1'.
e_smp_dyntxt-icon_id = icon_cancel.
e_smp_dyntxt-icon_text = 'Texto Icono'.
e_smp_dyntxt-quickinfo = 'Quickinfo'.
e_smp_dyntxt-path = 'Path'.
sscrfields-functxt_01 = e_smp_dyntxt.


CONCATENATE icon_okay 'Botón 2'
INTO sscrfields-functxt_02.
*----------------------------------------------------------------------*
* EVENT: validate users entries on the selection screen *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
BREAK-POINT.

*----------------------------------------------------------------------*
* EVENT: Start-Of-Selection
*----------------------------------------------------------------------*
START-OF-SELECTION.
BREAK-POINT.

javibest
27/03/08, 08:18:04
pues lo que comentaba , que cuando pulsas en uno de los 2 botones que tu has agregado , se para en el evento at selection screen y no en el start of selection ...

ecm
27/03/08, 09:22:21
Creo que no se puede, que solo se lanza el START-OF-SELECTION cuando se pulsa el botón de código 'ONLI', pero se puede hacer un apaño.

AT SELECTION-SCREEN.
clear vl_ucomm.
IF sy-ucomm EQ 'FC01'.
* Se informa alguna variable que indique que botón se ha pulsado
vl_ucomm = sy-ucomm.
* Se obliga al programa a simular que se ha pulsado Ejecutar
sscrfields-ucomm = 'ONLI'.
ENDIF.

START-OF-SELECTION.
*Se mira que valor tiene la variable porque sy-ucom siempre va a tener
* el 'ONLI'
IF vl_ucomm EQ 'FC01'.
.....
ENDIF.