Actualizar SCREEN al modificar parámetro

Hola buenas tardes comunidad, tengo un problema el cual es el siguiente:

image
image

Tengo esa pantalla en la cual quieren que al modificar el centro haga una búsqueda a esa tabla para recuperar el folio tengo una idea de como se hace pero no exactamente, sé que debo asociar un evento al momento de modificar mi campo centro, hacer mi búqueda y luego modificar la pantalla para agregar mi campo.

Mi código es el siguiente:

PARAMETERS: p_werks  TYPE t001w-werks  OBLIGATORY,            " Centro
            p_copies TYPE zclsd_tb_031-num_fol OBLIGATORY.    " Cantidad a imprimir

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) lv_fol.
SELECTION-SCREEN END OF LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks.
  PERFORM selection_screen.

INITIALIZATION.
  lv_fol = 'FOLIO: '.

START-OF-SELECTION.
  PERFORM obtener_data.
  PERFORM llamar_impresion.

FORM selection_screen.

  LOOP AT SCREEN INTO DATA(ls_screen).
    IF p_werks IS NOT INITIAL.
        SELECT SINGLE num_fol
         FROM zclsd_tb_031 INTO lv_folio
         WHERE werks EQ p_werks.

       WRITE lv_folio TO lv_fol.
       CONCATENATE 'Folio: ' lv_fol INTO lv_fol.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
ENDFORM.

Alguien me puede orientar un poco ? o ha hecho algo parecido ?

hola @abapero

A mi se me ocurre modificar tu loop, de la siguiente manera:

data lv_folio_aux type c length 10.

at selection-screen output.

perform selection_screen.

end-of-selection.

START-OF-SELECTION.

*demás rutinas que tienes

  LOOP AT SCREEN.
    IF p_werks IS NOT INITIAL.
        SELECT SINGLE num_fol
         FROM zclsd_tb_031 INTO lv_folio
         WHERE werks EQ p_werks.
        clear lv_folio_aux
       Move lv_folio TO lv_folio_aux.
       lv_fol =  lv_folio_aux.

      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

Saludos

Creo que te falta la sentencia USER-COMMAND uc, el parametro del centro:

PARAMETERS: p_werks TYPE t001w-werks USER-COMMAND uc OBLIGATORY.

O creo que es al revez

PARAMETERS: p_werks TYPE t001w-werks OBLIGATORY USER-COMMAND uc.

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.