[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_M
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
SAPфорум.RU • Просмотр темы - DATA(var) - неприятный сюрприз
Текущее время: Вт, янв 23 2018, 05:50

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Вт, дек 22 2015, 18:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июн 15 2007, 17:24
Сообщения: 97
Недавно, ну как недавно пяти лет еще не прошло, в языке появились автоматические переменные, объявляемые как DATA(var) = ...
Я обрадовался, наконец то можно объявлять по месту, держись, C#, мы тебя догоним.
Правда, все оказалось "как обычно", эта та же переменная, что и просто DATA var, scope ее ровно такой же здоровенный, никаких локальных в пределах цикла переменных нет. Синтаксический сахар, ну да и то ладно, используем.

А вот сегодня пишут мне - у тебя расчет какой-то странный (считается банальщина - кол-во * цену, суммируется в разном порядке). И тут возникает прикол, который можно продемонстрировать на этом:

data x type p DECIMALS 2.
data y type p DECIMALS 3.
x = '1.44'.
y = '1.445'.
data(z) = x * y.

Какого типа переменная Z? C# и прочие хаскели подсказывают нам, что должен быть p decimal 5. Хелп самого абапа говорит - "The date type of the variable is determined by the operand type. It must be possible to derive this type statically in full.". Ну что, вроде статически все определимо, предупреждений нет, проблем быть не должно.

Фиг!
Z = 2 и тип Z = P DECIMALS 0.
Произошел самый что ни на есть каст в целое, с округлением.
Я, честно говоря, в шоке. В тот момент, когда другие языки уже окучивают по полной шаблоны/ФП/ПМ и прочее и прочее, нам предлагается какое-то студенческое поделие.

PS. На предыдущих страницах не нашел вроде...


Последний раз редактировалось Николай Рыжов Чт, дек 24 2015, 02:09, всего редактировалось 4 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз  Тема решена
СообщениеДобавлено: Ср, дек 23 2015, 11:29 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 98
Однако...
Можно закостылить, засунув умножение в EXACT :lol: Это если заранее не объявлять переменную.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, дек 24 2015, 05:38 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 10:41
Сообщения: 139


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, дек 24 2015, 23:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июн 15 2007, 17:24
Сообщения: 97
Кстати, уровень исполнения можно даже и по хелпу увидеть:

The date type of the variable is determined by the operand type. It must be possible to derive this type statically in full.

Знаю, знаю, что помощь и код пишут совершенно разные люди. Но это вот всё символизирует.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Пт, дек 25 2015, 17:07 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 98
К слову о подлянках... Вспомнил случай. В выражении вида x = menge * abs( wrbtr ) (где х определен ранее), словил от abs() округление до целого :shock:


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Пн, фев 01 2016, 21:38 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 16:54
Сообщения: 77
Ну в сапчике даже в стандартных саповских названиях переменных и функций можно встретить грамматические ошибки токо так. Там тоже не боги работают :)

_________________
F5-F6-F7-F8


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, ноя 23 2017, 11:21 
Начинающий
Начинающий

Зарегистрирован:
Пн, ноя 20 2017, 18:38
Сообщения: 1
Array слову о подлянках... Вспомнил случай. В выражении вида x = menge * abs( wrbtr ) (где х определен ранее), словил от abs() округление до целого :shock:
Нельзя ли подробнее?
Какого типа объявлена Х,
какого menge?

Я пробую, не округляется ничего.

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, ноя 23 2017, 12:49 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 988
Откуда: что и все
Пол: Мужской
строители велосипедов решили вывод типов сделать "как менеджер сказал".

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, ноя 23 2017, 13:28 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 11:34
Сообщения: 689
Откуда: Tashkent -> Astana -> Moscow
Пол: Мужской
Думаю вот эта оговорка объясняет такую "не совсем стандартную" реализацию инлайн объявлений (без EXACT)
Arrayf more than one equally valid operand type is possible in the same declaration position, the recommended preferred data type is generally used.

видно в вашем случае как раз это и был рекомендованный тип :gigi:
_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: DATA(var) - неприятный сюрприз
СообщениеДобавлено: Чт, ноя 23 2017, 13:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 19:21
Сообщения: 973
Работа с целочисленными значениями - рекомендации лучших собаководов.

_________________
я твой сап эфай внедрял


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
[ Time : 0.196s | 19 Queries | GZIP : Off ]