Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Заметки о динамических документах

Динамические документы 2-го типа создаются быстрее

(http://*****/abap-osnovi/user-interface/dinamicheskie-dokumenty-chast-2/).

При создании сложных заголовках удобно использовать абсолютную нумерацию колонок, а не относительную (относительно выводимого поля в строке), для этого используется переменная

cl_dd_table_area ->act_col_no

пример:

*****
* CLASS lcl_event_handler_sv *
*****
CLASS lcl_event_handler_sv DEFINITION.
 PUBLIC SECTION.
 METHODS:
 handle_links FOR EVENT clicked OF cl_dd_link_element
 IMPORTING sender,
ENDCLASS. "lcl_event_handler_sv DEFINITION

*****
DATA: gdd_tarea TYPE REF TO cl_dd_table_area,

 gdd_link TYPE REF TO cl_dd_link_element.

DATA: link_no TYPE sdydo_element_name.

DATA: handler_sv TYPE REF TO lcl_event_handler_sv.

DATA: ii TYPE i,

 iii TYPE i,

 last_write TYPE i,

st_rab1 TYPE string,
 wa TYPE string,

id_r TYPE string.

DATA str_html TYPE string.

 gdd_tarea->act_col_no = 5.
 CALL METHOD gdd_tarea->span_rows
 EXPORTING
 col_with_span = 5
 no_of_rows = 2.
 CALL METHOD gdd_tarea->add_text
 EXPORTING
 text = 'Заголовок 1'.

 gdd_tarea->act_col_no = 6.
 CALL METHOD gdd_tarea->span_columns
 EXPORTING
 col_start_span = 6
 no_of_cols = 4.
 CALL METHOD gdd_tarea->add_text
 EXPORTING
 text = 'Заголовок 2'.

Возникла необходимость вывода в форму и работы с переменной типа CHECKBOX.

Удалось решить эту проблему следующим образом.

Создаем в нужном месте ссылку и вешаем прерывание, как обычно, только чтоб ее не было видно:

 CALL METHOD gdd_tarea->add_link
 EXPORTING
 text = ''
 name = link_no
 tooltip = 'согласование'
 IMPORTING
 link = gdd_link.
 SET HANDLER handler_sv->handle_links FOR gdd_link.

Формируем строку, и перед CALL METHOD gdd_tarea->new_row.

*определим строки HTML кода для нашей строки в gdd_tarea->html_table

 SEARCH gdd_tarea->html_table FOR gdd_tarea->cursor.
 IF sy-subrc EQ 0.
 ii = sy-tabix.
 ENDIF.
 CALL METHOD gdd_tarea->new_row.

 last_write = ii.
 SEARCH gdd_tarea->html_table FOR gdd_tarea->cursor.
 IF sy-subrc EQ 0.
 iii = sy-tabix - 1.
 ELSE.
 iii = 0.
 ENDIF.

*запишем HTML код

 WHILE last_write <= iii.
 READ TABLE gdd_tarea->html_table INDEX last_write INTO wa.
 CONCATENATE str_html wa INTO str_html.
 ADD 1 TO last_write.
 ENDWHILE.

* очистим

DELETE gdd_tarea->html_table FROM ii TO iii.

* найдем id линка

 FIND 'id=' IN str_html MATCH OFFSET iiii.
 IF sy-subrc EQ 0.
 iiii = iiii + 4.
 st_rab1 = str_html+iiii.
 FIND '"' IN st_rab1 MATCH OFFSET iiii.
 IF sy-subrc EQ 0.
 iiii = iiii.
 MOVE st_rab1(iiii) TO id_r.
 ENDIF.
 ENDIF.

* строка HTML кода для CHECKBOX, галка включена (checked), Id формируем сами * (не обязательно), определяем действие по onclick - инициируем нажатие линка * по ID

CONCATENATE '<input type="checkbox" checked id="chb' id_r
 '" onclick="document. getElementById(''' id_r ''').click();void(0);"><a' INTO st_rab1.

*вставим перед линком наш HTML
REPLACE '<a' WITH st_rab1 INTO str_html.

*запишем измененный HTML

 CALL METHOD gdd_tarea->html_insert
 EXPORTING
 contents = str_html
 CHANGING
 position = ii.

......

Дальше формируем следующие строки.