Inicio > ABAP/4 > Tipos de Popup en SAP – Parte 2

Tipos de Popup en SAP – Parte 2

Caso: Se busca mostrar los distintos tipos de POPUP para poder elegir el correcto cada vez que necesitemos uno.

1. POPUP_FOR_INTERACTION

CALL FUNCTION ‘POPUP_FOR_INTERACTION’
EXPORTING
headline = ‘Título (máx 60 caracteres)’
text1 = ‘Texto 1 (máx 60 caracteres)’
text2 = ‘Texto 2 (máx 60 caracteres)’
text3 = ‘Texto 3 (máx 60 caracteres)’
text4 = ‘Texto 4 (máx 60 caracteres)’
text5 = ‘Texto 5 (máx 60 caracteres)’
text6 = ‘Texto 6 (máx 60 caracteres)’
ticon = ‘I’ " Ícono a mostrar
button_1 = ‘SI’
button_2 = ‘NO’
button_3 = ‘CERRAR’
IMPORTING
button_pressed = lv_answer. " Devuelve 1, 2, 3 o 0 si no presionó ningun botón

Uso: similar al popup_to_confirm

Ventajas: fácil uso para informar algo al usuario y obtener una decisión.

Desventajas: no se puede definir la posición ni el tamaño del popup, no permite personalización de botones (son muy simples)

2. REUSE_ALV_POPUP_TO_SELECT

TYPE-POOLS: slis.

TYPES: BEGIN OF ty_output,
checkbox TYPE c,
material TYPE matnr,
fecha TYPE sy-datum,
END OF ty_output.

DATA: lt_output TYPE STANDARD TABLE OF ty_output,
ls_output TYPE ty_output,
lt_fcat TYPE slis_t_fieldcat_alv,
ls_fcat TYPE slis_fieldcat_alv,
lv_sel TYPE slis_selfield,
lt_excl TYPE slis_t_extab,
ls_excl TYPE slis_extab,
lv_exit TYPE c.

"Creamos Catalogo de Datos
CLEAR ls_fcat.
ls_fcat-row_pos = ‘1’.
ls_fcat-col_pos = ‘1’.
ls_fcat-fieldname = ‘CHECKBOX’.
ls_fcat-tabname = ‘LT_OUTPUT’.
APPEND ls_fcat TO lt_fcat.

CLEAR ls_fcat.
ls_fcat-row_pos = ‘1’.
ls_fcat-col_pos = ‘2’.
ls_fcat-fieldname = ‘MATERIAL’.
ls_fcat-tabname = ‘LT_OUTPUT’.
ls_fcat-seltext_m = ‘Material’.
APPEND ls_fcat TO lt_fcat.

CLEAR ls_fcat.
ls_fcat-row_pos = ‘1’.
ls_fcat-col_pos = ‘3’.
ls_fcat-fieldname = ‘FECHA’.
ls_fcat-tabname = ‘LT_OUTPUT’.
ls_fcat-seltext_m = ‘Fecha’.
APPEND ls_fcat TO lt_fcat.

"Creamos Exclusiones de Toolbar
ls_excl-fcode = ‘&ALL’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&SAL’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&ETA’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘%SC’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘%SC+’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&OUP’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&ODN’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&ILT’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&OL0’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&CRB’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&CRL’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&CRR’. APPEND ls_excl TO lt_excl.
ls_excl-fcode = ‘&CRE’. APPEND ls_excl TO lt_excl.

ls_output-material = ‘EV1957-00005’.
ls_output-fecha = ‘20131111’.
APPEND ls_output TO lt_output.
ls_output-material = ‘VT7000-12100’.
ls_output-fecha = ‘20131112’.
APPEND ls_output TO lt_output.

CALL FUNCTION ‘REUSE_ALV_POPUP_TO_SELECT’
EXPORTING
i_title = ‘Titulo (máx 35 caracteres)’
i_selection = ‘X’ " (X) = permite seleccionar, ( ) = sólo visualizar
i_allow_no_selection = ‘S’ " Allow copy although nothing is selected
i_zebra = ‘X’ " Modo Zebra para registros
i_screen_start_column = 5 " Posición ALV
i_screen_start_line = 5 "
i_screen_end_column = 100 "
i_screen_end_line = 10 "
i_checkbox_fieldname = ‘CHECKBOX’ " Campo de selección
* i_linemark_fieldname = " color para una línea
* i_scroll_to_sel_line = ‘X’ " remarca una línea
i_tabname = ‘LT_OUTPUT’ " Tabla de salida
* i_structure_name = " Nombre estructura
it_fieldcat = lt_fcat " Catálogo de campos
it_excluding = lt_excl " Excluir botones
* i_callback_program = " Name of the calling program
* i_callback_user_command = " USER_COMMAND handling form routine name
* is_private = " Internal private use only
IMPORTING
es_selfield = lv_sel " Info de la selección para una selección simple
e_exit = lv_exit " Queda en ‘X’ cuando el usuario aprieta Cancelar
TABLES
t_outtab = lt_output " Tabla de entrada/salida
EXCEPTIONS
program_error = 1
OTHERS = 2.

IF sy-subrc <> 0.
* Error
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* Si no puso cancelar…
IF lv_exit NE ‘X’.

ENDIF.
ENDIF.

Uso: Permite definir un ALV simple y dar al usuario la posibilidad de visualizar o seleccionar los registros

Ventajas: fácil uso para que el usuario elija datos de un ALV simple

Desventajas: Poca personalización del ALV para otros eventos

3. POPUP_GET_VALUES

DATA: lt_fields TYPE TABLE OF sval,
lw_fields TYPE sval,
lc_return TYPE c.

CLEAR lw_fields.
lw_fields-tabname = ‘MARA’.
lw_fields-fieldname = ‘MATNR’.
*lw_fields-comp_tab = ‘MARA’.
*lw_fields-comp_field = ‘MATNR’.
lw_fields-field_attr = ’01’. " Atributo para visualización del campo en el dynpro
" ( ) grado de visibilidad normal, listo para entrada
" 01 visible, listo para entrada
" 02 grado de visibilidad normal, no listo para entrada
" 03 visible, no listo para entrada
" 04 No visualizar
lw_fields-value = ‘EV1957-00005’. " Valor por defecto
lw_fields-field_obl = ‘X’. " Obligatorio indicar un valor
lw_fields-fieldtext = ‘Material’. " Texto descriptivo izquierdo
APPEND lw_fields TO lt_fields.

CLEAR lw_fields.
lw_fields-tabname = ‘EKET’.
lw_fields-fieldname = ‘EINDT’.
*lw_fields-comp_tab = ‘EKET’.
*lw_fields-comp_field = ‘EINDT’.
lw_fields-field_attr = ’01’.
lw_fields-value = sy-datum.
lw_fields-field_obl = ‘X’.
lw_fields-fieldtext = ‘Fecha’.
APPEND lw_fields TO lt_fields.

CALL FUNCTION ‘POPUP_GET_VALUES’
EXPORTING
* no_value_check = ‘ ‘ " Desactiva verificaciones del correspondiente tipo de datos
popup_title = ‘Título (máx 60 caracteres)’
start_column = ‘5’
start_row = ‘5’
IMPORTING
returncode = lc_return
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.

IF sy-subrc <> 0.
* Error
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.

CHECK lc_return IS INITIAL.
LOOP AT lt_fields INTO lw_fields.
* Obtengo el dato ingresado
ENDLOOP.

ENDIF.

Uso: Permite mostrar una serie de campos para que el usuario ingrese datos y luego poder tomarlos

Ventajas: fácil uso para que el usuario elija datos simples

Desventajas: Es muy simple, se debe hacer referencia a una tabla

4. POPUP_TO_DISPLAY_TEXT

CALL FUNCTION ‘POPUP_TO_DISPLAY_TEXT’
EXPORTING
titel = ‘Título (máx 70 caracteres)’
textline1 = ‘Texto 1 (máx 70 caracteres)’
textline2 = ‘Texto 1 (máx 70 caracteres)’
start_column = 25
start_row = 6.

Uso: Permite mostrar un popup informativo con dos líneas de texto

Ventajas: popup simple informativo y posee parámetros para ubicarlo en la pantalla

Desventajas: muy simple

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: