Мне нужно было вывести таблицу TCURR в сетку ALV. Все пошло нормально, но когда пользователь сортирует таблицу по «действительной с» дате (GDATU
), произошли странные вещи. Сортировка в порядке возрастания ведет себя как сортировка в порядке убывания и наоборот. Это связано с тем, что поле GDATU
содержит дату в инвертированном формате и имеет домен GDATU_INV
с процедурой преобразования INVDT
, которая преобразует дату на лету. Сетка ALV корректно отображает дату, но сортировка выполняется с помощью инвертированных дат.Сортировка сетки ALV инвертированной датой
Я решил так:
- Я объявил структуру таблицы, аналогичную
TCURR
и заменить доменGDATU_INV
с простымDATUM
. - я преобразовал перевернутые даты в обычный,
- Я заполнил мою таблицу с преобразованными датами
- После создания каталога поля через FM
LVC_FIELDCATALOG_MERGE
согласноTCURR
структуре Пишет
CONVEXIT,
REF_TABLE,
DATATYPE,
DOMNAME
Поля GDATU линии значения
'',
'',
'DATS',
'Datum' соответственно.
Есть ли более эффективное и простое решение этой проблемы?