В конце концов я обнаружил удивительный факт, что внутренние типы ABAP-словаря для валюты и количества (элементы данных на их основе) неявно сохраняют информацию о знаках независимо от того, какие настройки были установлены в домене элементов данных.
Даже с указанным выше доменом элемент данных сохраняет знак в ALV. Можем ли мы предотвратить такое поведение ALV (или ABAP)?
Я внимательно прочитал документацию по обоим CURR и QUAN, но не нашли ни единого слова о знаке. Кто-нибудь может это объяснить?
Единственное решение, с которым я закончил, заключалось в использовании типа DEC и элементов данных на основе DEC.
ДОПОЛНЕНИЕ: простой тест для проверки описанной проблемы
1. Создайте три переменные типов BNOMS
(домен BWHR
), MATQUAN
(домен MENG10
) и MENGEP
(домен MENGEP
). Все эти типы являются стандартными типами DDIC с снятым флажком в домене.
2. Присвойте им отрицательное значение
3. Выведите их в ALV
Поскольку типы BNOMS
и MATQUAN
относятся к типам CURR и QUAN, они все равно будут выводить знак, а MENGEP
- нет, поскольку он имеет тип DEC. Во время выполнения все они сохраняют знак, однако в ALV ограничения домена типа DEC соблюдаются, поэтому я склонен думать, что это больше проблема, связанная с ALV.