Текущее время: Пт, авг 01 2025, 14:05

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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