Archivo
Botón en Pantalla Selección / Lista de Iconos en SAP
Caso: se desea agregar un botón en el toolbar, en la pantalla de selección, tal cual se indica en la siguiente imagen:
Solución: Debemos armar el siguiente código.
REPORT zver_icono_log.
TABLES: sscrfields.
DATA gv_dyntxt TYPE smp_dyntxt.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
CLEAR gv_dyntxt.
gv_dyntxt-text = ‘LOG’.
gv_dyntxt-icon_id = ‘@DH@’.
gv_dyntxt-icon_text = ‘LOG’.
gv_dyntxt-quickinfo = ‘Visualizar LOG’.
sscrfields-functxt_01 = gv_dyntxt.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN ‘FC01’.
* PERFORM log_errores.
ENDCASE .
Si deseamos agregar más íconos, seguimos numerando con el 2, 3, 4 etc, cambiando estas instrucciones (por ejemplo para el segundo botón):
SELECTION-SCREEN FUNCTION KEY 2, sscrfields-functxt_02 y WHEN ‘FC02’.
Para seleccionar el tipo de ícono a mostrar, hay dos formas de ver los íconos en SAP:
1. Por la transacción ICON podemos visualizar la lista de íconos en SAP:
2. El report RSTXICON nos permite conocer los códigos a utilizar. Por ejemplo, para el ICON_CHECHED el código a utilizar es @01@.
También se puede usar el report SHOWICON para listarlos según distintos criterios.
Los íconos están agrupados, como se indican en este post:
http://www1.sapdesignguild.org/resources/ma_guidelines_2/interaction/status_icons.html
Push Button dinámico en dynpro
Transacción: SE51, SE80
Escenario: Se busca crear un pushbutton dinámico en una dynpro: cuando inicie la pantalla el botón tendrá un ícono y un texto y luego de realizar una acción se busca que tenga otro ícono y otro texto distinto.
Para ello, necesitamos crear una variable con el mismo nombre del pushbutton en el TOP del programa y después en el PBO hacer el cambio.
* En el TOP
DATA: BTN_CANCELAR(20) type c.
* PBO
PROCESS BEFORE OUTPUT.
MODULE texto_boton.
* MODULES
MODULE texto_boton OUTPUT.
LOOP AT SCREEN.
* Botón cancelar: cuando se realiza una factura, muestra el botón VOLVER
IF screen-name = ‘BTN_CANCELAR’.
IF w_fac_generada = ‘X’.
btn_cancelar = ‘@2W@Volver’.
ELSE.
btn_cancelar = ‘@02@Cancelar Factura’.
ENDIF.
ENDIF.
ENDLOOP.
Podemos buscar los íconos de SAP en la tabla ICON por la transacción SE16. Para conocer los distintos códigos de ícono de cada uno, tenemos que concatenar el campo id+1(2) e id entre arrobas.
Ejemplo:
La X roja, o ICON_INCOMPLETE sería: @02@. Como en la SE16 aparecen con la imagen un truco es ir al matchcode, elegir el que uno quiere y el valor que retorna es el código buscado.
Sino este programa puede ser útil para listarlos:
REPORT ZSAPIconsList .
DATA :
gs_icon TYPE ICON,
gt_icon TYPE TABLE OF ICON.
SELECT * FROM icon INTO TABLE gt_icon.
LOOP AT gt_icon INTO gs_icon.
WRITE
gs_icon-name,
33 ‘@’,
34 gs_icon-id+1(2),
36 ‘@’,
40 gs_icon-id.
ENDLOOP.
Estadísticas
- 1.263.969 hits
Categorías
- ABAP/4 (116)
- BAPIs (6)
- Diccionario (1)
- Exits (4)
- Formularios (Smartforms/Sapscript) (4)
- Tips and Tricks (2)
- BASIS (8)
- Consultoría Funcional (17)
- Otras (4)