Для того сделать popup окно с полями для ввода значений не обязательно рисовать для этого целый экран.
Есть замечательный функциональный модуль POPUP_GET_VALUES, позволяющий решить ту же задачу буквально за 5 минут.
Одним из параметров функционального модуля является внутренняя таблица, основанная на структуре, в которую помещаются
названия пар типа таблица-поле для ввода, плюс значение по умолчанию, если необходимо а так же признак обязательности поля.
После того как пользователь ввёл данные и закрыл окно, производится считывание введенных значений.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | *&---------------------------------------------------------------------* *& Include ZXCOFU21 cr:zhmailik_vadim@belsap.com *&---------------------------------------------------------------------* data: sval type sval, retcode, ls_zhm_brak type zhm_brak, it_zhm_brak type table of zhm_brak, t_fields type table of sval. if sy-tcode = 'CO15' and is_caufvd-iasmg > 0 and is_caufvd-aufnr is not initial."Вводим номер и дату акта о браке select single * from zhm_brak into ls_zhm_brak where nact = ls_zhm_brak-nact and data = ls_zhm_brak-data and aufnr = ls_zhm_brak-aufnr. if sy-subrc <> 0. sval-tabname = 'ZHM_BRAK'. sval-fieldname = 'NACT'. sval-fieldtext = 'Номер акта'. sval-field_obl = 'X'. sval-value = space. append sval to t_fields. sval-tabname = 'ZHM_BRAK'. sval-fieldname = 'DATA'. sval-fieldtext = 'Дата'. sval-field_obl = 'X'. sval-value = sy-datum. append sval to t_fields. " Вызываем функциональный модуль " do. call function 'POPUP_GET_VALUES' exporting popup_title = 'Введен брак введите, пожалуйста, номер акта и дату' importing returncode = retcode tables fields = t_fields exceptions error_in_fields = 1 others = 2. if retcode = 'A' or sy-subrc <> 0. leave program. else. " Если PUPUP окно закрыто по кнопке ОК - считываем введенные пользователем значения. " read clear: sval, ls_zhm_brak. read table t_fields with key fieldname = 'NACT' into sval. ls_zhm_brak-nact = sval-value. read table t_fields with key fieldname = 'DATA' into sval. ls_zhm_brak-data = sval-value. ls_zhm_brak-aufnr = is_caufvd-aufnr. ls_zhm_brak-data_create = sy-datum. ls_zhm_brak-user_create = sy-uname. ls_zhm_brak-time_create = sy-uzeit. select single * from zhm_brak into ls_zhm_brak where nact = ls_zhm_brak-nact and data = ls_zhm_brak-data. if sy-subrc <> 0. insert zhm_brak from ls_zhm_brak. exit. else. message 'Такой номер существует, повторите, пожалуйста, ввод' type 'I'. endif. endif. enddo. endif. endif. |