Это недостаток языка C ++. Вы не можете взять адрес ссылки, так как попытка сделать это приведет к адресу адреса, на который ссылается, и, следовательно, вы никогда не сможете получить указатель на ссылку. std::vector
работает с указателями на его элементы, поэтому для сохранения значений нужно указывать. Вместо этого вам придется использовать указатели.
Вам необходимо вызвать метод CHECK_CHANGED_DATA
из CL_GUI_ALV_GRID
для передачи входных данных из сетки ALV во внутреннюю таблицу (он работает для всех типов полей ввода в ALV, т.е. на флажки).
Лучший способ - отобразить вывод в ALV, используя CL_GUI_ALV_GRID .
Для изменения сетки ALV,
Вы должны зарегистрировать событие DATA_CHANGED и помочь вам написать свой код в случае изменения данных.
Для выбранных строк, вы должны создать поле флажка в itab, которое поможет вам управлять выбранными строками.
Если вы хотите перенести изменения экрана в itab, вам нужно вызвать метод check_changed_data для передачи изменений из экрана в itab при событии PAI .
Для некоторых сценариев, если вы хотите узнать какие-либо изменения в содержимом строки, вам нужно создать еще одно поле data_change символьного типа длиной 1. Вы можете пометить это поле в соответствующем событии, если есть изменение в содержании итаб.
С уважением,
Умар Абдулла