oko_5: почитайте 405 курс или хелп
1) оператор hide привязывает к выведенной строке информацию, которую вы указываете как ее операнд. После выовда списка, не забудьте затереть эту строку
2) при выполнении AT LINE-SELECTION, в ту же переменную происходит восстановление из памяти данных привязанных к строке экранного списка. Только нужно учитывать еще номера уровней списка, с которыми вы работаете (поле sy-lsind). после использования следует снова затереть значение в этой переменной, иначе вы не сможете различить ситуацию "щелкнули по строке, к которой ничего не было привязано"
в вашем примере (предполагаем, что поле oz содержит в каждой строке уникальное значение для всей внутренней таблицы)
Code:
loop at itab1.
write: / itab1-sum,itab1-oz,itab1-noz,itab1-data+6(4).
hide: itab1-oz. "здесь мы привязываем к каждой строке выводимого списка уникальный ключ строки внутр. таблицы
endloop.
clear itab1-oz.
AT LINE-SELECTION.
if itab1-oz is not initial. "проверям, что щелкнули по строке, для которой запоминали ключ
*в случае нескольких уровней списка, надо добавить анализ sy-lsind
read table itab1 with key oz = itab1-oz. "считываем по уникальному ключ строку таблицы
if sy-subrc = 0.
*делаем то что нам нужно
endif.
clear itab1-oz. "зачищаем для дальнейшего корректного использования
endif.