Текущее время: Чт, июл 31 2025, 17:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 17:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Добрый день!

Подскажите пожалуйста, какое значение имеет символ "*" в начале имени структуры или переменной в программе. Разбираю код, там стоит
Code:
f1 = *ceban-gfwrt * 3 / 1000

Так вот значение *ceban-gfwrt умножается на 3, но почему-то не делится на 1000.

Конкретный пример.
Начальные данные:
*ceban-gfwrt = 264.28
t161s-tlfae = 3.0
Код (стандартный, не мой):
Code:
f1 = *ceban-gfwrt * t161s-tlfae / 1000.
f1 = f1 + *ceban-gfwrt.

После прохода первой строки f1 содержит "7.9284000000000000Е+02", т.е. 792,84
После прохода второй строки f1 содержит "2.7220840000000000Е+04", т.е. 27220,84
По идее в результате действий должно получиться 272,2084. Получаю значение в 100 раз больше и особенно удивляет промежуточное значение.

В чем тут дело может быть?

Заранее спасибо!

_________________
Вежливость - лучшее оружие чайника :-)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 17:22 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
VID написал:
Добрый день!

Подскажите пожалуйста, какое значение имеет символ "*" в начале имени структуры или переменной в программе.

Вы вроде не первый день форум читаете. Недавно отвечали на данный вопрос - это вторая табличная область (объявленная через TABLES) со структурой (в Вашем случае) ceban.
Цитата:
Разбираю код, там стоит
Code:
f1 = *ceban-gfwrt * 3 / 1000

Так вот значение *ceban-gfwrt умножается на 3, но почему-то не делится на 1000.

Конкретный пример.
Начальные данные:
*ceban-gfwrt = 264.28
t161s-tlfae = 3.0
Код (стандартный, не мой):
Code:
f1 = *ceban-gfwrt * t161s-tlfae / 1000.
f1 = f1 + *ceban-gfwrt.

После прохода первой строки f1 содержит "7.9284000000000000Е+02", т.е. 792,84
После прохода второй строки f1 содержит "2.7220840000000000Е+04", т.е. 27220,84
По идее в результате действий должно получиться 272,2084. Получаю значение в 100 раз больше и особенно удивляет промежуточное значение.

В чем тут дело может быть?
При глюках с арифметикой следует вначале проверить состояние галки "Арифметика с фикс. запятой"

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 17:39 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
1. Форум читаю, вот только не всегда время есть, видать пропустил. Пролистал темы до начала июня - на нашел :(
Насколько я понял, вторая табличная область это вроде как просто дополнительной области для хранения данных? Никакими особыми свойствами она (область) не обладает?

2. Насчет галки "Арифметика с фикс. запятой". Подскажите пожалуйста где ее искать...

3. Насколько я понимаю код программы, то с моими значениями должно происходить что-то вроде
Code:
f1 = 264.28 * 3.0 / 1000. (= 0,79284) (на самом деле стоит 792,84)
f1 = 0,79284 + 264.28. (= 265,07284) (на самом деле получаю 27220,84)

Может я чего-то не понимаю?

_________________
Вежливость - лучшее оружие чайника :-)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 17:51 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
1. Не обладает.

2. 3. В свойствах программы.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 18:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Значит программа стандартная - SAPLEBND (Functionpool)
В свойствах эта галка не стоит, т.е. чекбокс не отмечен.
Чем это грозит или что означает?

_________________
Вежливость - лучшее оружие чайника :-)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале  Тема решена
СообщениеДобавлено: Чт, июл 30 2009, 18:01 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
VID написал:
1. Форум читаю, вот только не всегда время есть, видать пропустил. Пролистал темы до начала июня - на нашел :(
Насколько я понял, вторая табличная область это вроде как просто дополнительной области для хранения данных? Никакими особыми свойствами она (область) не обладает?

Да, именно так, всё верно.
Цитата:
2. Насчет галки "Арифметика с фикс. запятой". Подскажите пожалуйста где ее искать...

В свойствах главной программы
Цитата:
3. Насколько я понимаю код программы, то с моими значениями должно происходить что-то вроде
Code:
f1 = 264.28 * 3.0 / 1000. (= 0,79284) (на самом деле стоит 792,84)
f1 = 0,79284 + 264.28. (= 265,07284) (на самом деле получаю 27220,84)

Может я чего-то не понимаю?

Если галка не установлена, то положение десятичной точки игнорируется и все числа считаются как целые, например:
Code:
tables: CEBAN, *CEBAN, T161S.

initialization.
   *CEBAN-GFWRT = '264.28'.
  T161S-TLFAE  = '3.0'.
*
start-of-selection.
  CEBAN-GFWRT = *CEBAN-GFWRT * T161S-TLFAE .
  write: / CEBAN-GFWRT, *CEBAN-GFWRT, T161S-TLFAE.

  CEBAN-GFWRT = CEBAN-GFWRT / 1000.
  write: / CEBAN-GFWRT.

  CEBAN-GFWRT = CEBAN-GFWRT + *CEBAN-GFWRT.
  write: / CEBAN-GFWRT, *CEBAN-GFWRT, T161S-TLFAE.

будет получен следующий результат
Code:
           7 928,40               264,28   3,0
               7,93
             272,21               264,28   3,0

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Чт, июл 30 2009, 18:12 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Огромное спасибо за подробный пример! :pivo: Теперь все стало ясно :D

_________________
Вежливость - лучшее оружие чайника :-)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Имена переменных/структур с "*" в начале
СообщениеДобавлено: Пн, авг 03 2009, 10:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
VID написал:
Огромное спасибо за подробный пример! :pivo: Теперь все стало ясно :D

да-да было дело - я спрашивал ;)
удивился что не "проваливаешься" и поиск использования не проходит для таких обьектов
что есть возмутительно ;)

_________________
Нет сегодняшних проблем -
есть вчерашние ошибки
(с)


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

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


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB