Cómo poner un valor por defecto en un campo de la pantalla de selección

Cuando el usuario ejecuta un reporte, en lugar de obligarle a teclear cada vez un valor en un campo, ABAP permite asignar un valor por defecto en la propia definición de la pantalla de selección.

ABAP ofrece dos caminos: la opción rápida con DEFAULT y la opción más flexible con INITIALIZATION.

DEFAULT

Valor por defecto en PARAMETERS

PARAMETERS: p_bukrs TYPE bukrs DEFAULT '1000'.

El campo aparecerá con 1000 ya escrito. El usuario puede modificarlo si lo necesita.

Valor por defecto en SELECT-OPTIONS

SELECT-OPTIONS: s_cpudt FOR bkpf-cpudt DEFAULT sy-datum.

Con estos pocos caracteres (DEFAULT sy-datum) ahorrarás tiempo a tus usuarios y evitarás ejecuciones incompletas del programa.

INITIALIZATION

Cuando quieres precargar un rango (por ejemplo, últimos 30 días) o añadir alguna lógica, debes rellenar la SELECT-OPTIONS en el evento INITIALIZATION.

TABLES: bsad.

SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_kunnr FOR bsad-kunnr,
s_bukrs FOR bsad-bukrs,
s_cpudt FOR bsad-cpudt OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl.

INITIALIZATION.
s_cpudt-sign = 'I'.
s_cpudt-option = 'BT'. " Between
s_cpudt-low = sy-datum - 30.
s_cpudt-high = sy-datum.
APPEND s_cpudt.

START-OF-SELECTION.

DEFAULT es la forma más rápida y limpia de pre-rellenar un campo o rango. Para lógica condicional, usa INITIALIZATION.