Пономарев Артем написал:
Попробуйте более внятно сформулировать.
Пока не ясно, что у вас ОК на экране, когда
Code:
BEGIN OF VRM_VALUE,
KEY(40) TYPE C,
TEXT(80) TYPE C,
END OF VRM_VALUE,
и вы передаете в одно из этих полей строку в 512 символов.
вот картинка :
http://s54.radikal.ru/i143/0906/ae/16412fe28ce4.jpgКогда выбираю значение в списке под верхней левой кнопкой "Выбрать поле", то отрабатывает PAI событие, в котором я читаю выбранное значение. При чтении этого значения сап обрубает его на 20 символов - это видно в Message на скрине.
Вот в скрины дебага в PAI после выборки. Видно, что значение поля режется на 20 символов :
http://s58.radikal.ru/i162/0906/52/9674aebf2a1e.jpgв то время, как реально данные лежат нормальные :
http://s61.radikal.ru/i174/0906/cd/bcf897dbc7ef.jpgкусок кода PBO, который заносит значения :
if FValues[] is not INITIAL.
sort FValues by wa.
delete ADJACENT DUPLICATES FROM FValues." comparing wa.
sort FValues by wa.
loop at FValues.
value_vrm-KEY = FValues-wa.
value_vrm-TEXT = FValues-wa.
APPEND value_vrm TO VALUES_vrm.
endloop.
endif.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'FIELD_VALUES'
values = values_vrm.
FIELD_VALUES[] = FValues[].
Вообще, с кодом всё нормально вроде - проблема именно с рабочей областью, которую САП сам заполняет.
То что, только 80 символов можно передать в поле и 40 в ключ я знаю, но мне столько и не нужно реально

А вот 20 маловато будет
darkvolk написал:
AlexyeNov написал(а):
но я не знаю как получить индекс выбранного элемента в поле-списке - в sy что то не попадает ничего по этому поводу (например, пробовал LISTI, LSIND и тд).
а GET CURSOR LINE <line> здесь не сработает?
Сейчас проверил - нет, тоже не работает.
Думаю кстати есть решение - нужно в ключ (value_vrm-KEY) пихать текущий элемент массива и тогда этого хватит на всё, а потом просто читать по индексу ключа в таблице. Щас сделаю и напишу что получилось.