Создание поля динамического выбора обязательно

Мне нужно определить одно поле динамического выбора, как требуется, я использую стартовый вариант при выполнении tcode.

При назначении экрана атрибутов вариантов отсутствует опция "обязательное поле" при динамическом выборе, только "защищать поле". Есть идеи, как это реализовать?

1 ответ

При назначении экрана атрибутов вариантов не требуется указывать поля при динамическом выборе

Есть Required атрибут в экранном варианте, и его можно использовать для обязательного заполнения регулярного поля, а также для динамического выбора.

Если вам этого не хватает, проверьте ваш релиз или, возможно, ваша установка повреждена. Я не верю, что это зависит от кода.

Если вы говорите о динамическом выборе, то вы можете защитить только поля. Пример с демонстрационной программойDEMO_LIST_OUTPUT (который основан на F1S Логическая база данных):

Вы можете защитить только эти поля от ввода, а все остальные атрибуты деактивированы (они не реализованы, как вы можете видеть в подпрограмме MODIFY_SCREEN программы SAPLSSEL).

Единственный возможный обходной путь для имитации обязательного поля - реализовать код ABAP после того, как пользователь ввел выбор (или нет). Например, в программеDEMO_LIST_OUTPUT, вы можете добавить этот код ABAP, который проверяет, что поле экрана "Номер соединения" содержит значение, когда пользователь выполняет программу:

TABLES sscrfields.
AT SELECTION-SCREEN.
  DATA dynsel TYPE rsds_trange.
  CALL FUNCTION 'RS_REFRESH_FROM_DYNAMICAL_SEL'
    EXPORTING
      curr_report        = sy-repid
      mode_write_or_move = 'W'
    IMPORTING
      p_trange           = dynsel
    EXCEPTIONS
      not_found          = 1
      wrong_type         = 2.
  DATA(connid) = VALUE spfli-connid(
    dynsel[ tablename = 'SPFLI'
        ]-frange_t[ fieldname = 'CONNID'
            ]-selopt_t[ 1 ]-low OPTIONAL ).
  IF sscrfields-ucomm = 'ONLI' AND connid IS INITIAL.
    MESSAGE 'Flight Connection number is required' TYPE 'E'.
  ENDIF.

NB: протестировано с помощью ABAP 7.52. Динамический выбор может быть реализован неявно через логические базы данных (которые устарели с ABAP 7.02 или 7.31) или явно путем вызова функциональных модулей.FREE_SELECTIONS_INIT а также FREE_SELECTIONS_DIALOG.

Другие вопросы по тегам