Текущее время: Пн, авг 11 2025, 21:41

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: FOX Формула
СообщениеДобавлено: Вт, мар 06 2012, 13:44 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
Молю, расшифруйте поэтапно, что тут происходит?

DATA ITEM TYPE 0CMMT_ITEM.
DATA FISCPER TYPE 0FISCPER.
DATA FISCPER2 TYPE 0FISCPER.
DATA FISCPER3 TYPE 0FISCPER.
DATA FPS TYPE STRING.
DATA GOD1 TYPE STRING.
DATA GOD2 TYPE STRING.
DATA B TYPE F.


FOREACH FISCPER IN SELECTION.
FPS=SUBSTR( FISCPER, 5, 2 ).
GOD1=SUBSTR( FISCPER, 0, 4 ).
IF FPS > '00' AND FPS < '13' .
FISCPER3= VARV( 'ZV_BP_FISCPER013' ).
FISCPER3=TMVL(FISCPER3, -1).
FISCPER2=TMVL(FISCPER, 1).
FOREACH ITEM.
IF ITEM ='BB_DEP'.
IF FISCPER=FISCPER3.
B=B+{0AMOUNT, ITEM ,FISCPER}.
*MESSAGE I001(BB) WITH FISCPER .
ENDIF.
ENDIF.
IF ITEM <> 'BB_DEP'.
B=B+{0AMOUNT, ITEM ,FISCPER}.
*MESSAGE I001(FISC_NEBB) WITH FISCPER ITEM .
ENDIF.
ENDFOR.
GOD2=SUBSTR( FISCPER2, 0, 4 ).
IF GOD1=GOD2.
{0AMOUNT,'BB_DEP', FISCPER2}=B.
*MESSAGE I001(B) WITH FISCPER2 B .
ENDIF.
ENDIF.
ENDFOR.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FOX Формула
СообщениеДобавлено: Вт, мар 06 2012, 15:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
Ладно, не расшифровывайте весь код, я и сам уже разобрался. Только одно непонятно осталось. Объясните значение вот этой конструкции: MESSAGE <type(nnn)> WITH <x1> <x2> <x3> <x4>.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FOX Формула  Тема решена
СообщениеДобавлено: Вт, мар 06 2012, 15:17 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 10:18
Сообщения: 503
Pavlik написал(а):
Молю, расшифруйте поэтапно, что тут происходит?


DATA ITEM TYPE 0CMMT_ITEM. определение переменной для выборки значений по признаку 0CMMT_ITEM - Финансовая позиция
DATA FISCPER TYPE 0FISCPER. определение переменной для выборки значений по признаку 0FISCPER - Фин.год/период
DATA FISCPER2 TYPE 0FISCPER. определение переменной для выборки значений по признаку 0FISCPER - Фин.год/период
DATA FISCPER3 TYPE 0FISCPER. определение переменной для выборки значений по признаку 0FISCPER - Фин.год/период
DATA FPS TYPE STRING. строковая переменная
DATA GOD1 TYPE STRING. строковая переменная
DATA GOD2 TYPE STRING. строковая переменная
DATA B TYPE F. переменная для хранения значений показателя


FOREACH FISCPER IN SELECTION. цикл по Фин.году/периоду. IN SELECTION - указывает на то, что цикл будет осуществлен по данным, у которых 0FISCPER будет совпадать с 0FISCPER указанными в фильтре (помимо этого на выборку влияют прочие ограничения фильтра и формулы).
FPS=SUBSTR( FISCPER, 5, 2 ). выделение периода из Фин.года/периода
GOD1=SUBSTR( FISCPER, 0, 4 ). выделение года из Фин.года/периода
IF FPS > '00' AND FPS < '13' . проверка того, что период попадает в диапазон от 01 до 12 включительно
FISCPER3= VARV( 'ZV_BP_FISCPER013' ). присвоение внутренней переменной FISCPER3 значения внешней Bex-переменной ZV_BP_FISCPER013
FISCPER3=TMVL(FISCPER3, -1). смещение временного период на -1 от текущего значения переменной
FISCPER2=TMVL(FISCPER, 1). смещение временного период на +1 от текущего значения переменной
FOREACH ITEM. цикл данным с фин.позициями попавшими в выборку и возможными к изменению
IF ITEM ='BB_DEP'. если фин.позиция = 'BB_DEP', то выполняем следующий код
IF FISCPER=FISCPER3. если FISCPER=FISCPER3, то....
B=B+{0AMOUNT, ITEM ,FISCPER}. .....аккумулируем значение показателя 0AMOUNT в переменной B, при этом 0CMMT_ITEM = BB_DEP , а 0FISCPER = значению из переменной ZV_BP_FISCPER013 -1 период
*MESSAGE I001(BB) WITH FISCPER .
ENDIF.
ENDIF.
IF ITEM <> 'BB_DEP'. если фин.позиция <> 'BB_DEP', то выполняем следующий код
B=B+{0AMOUNT, ITEM ,FISCPER}. .....аккумулируем значение показателя 0AMOUNT в переменной B, при этом 0CMMT_ITEM <> BB_DEP , а 0FISCPER = текущему значению из первого цикла
*MESSAGE I001(FISC_NEBB) WITH FISCPER ITEM .
ENDIF.
ENDFOR.
GOD2=SUBSTR( FISCPER2, 0, 4 ). выделение года из Фин.года/периода
IF GOD1=GOD2. если год1 = год2, т.е. обработка не выходит за рамки одного года, то....
{0AMOUNT,'BB_DEP', FISCPER2}=B. ....присваиваем накопленное в переменной В значение показателю 0AMOUNT, при этом 0CMMT_ITEM = 'BB_DEP', а 0FISCPER = текущий FISCPER из цикла +1
*MESSAGE I001(B) WITH FISCPER2 B .
ENDIF.
ENDIF.
ENDFOR.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX Формула
СообщениеДобавлено: Вт, мар 06 2012, 20:27 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2010, 23:23
Сообщения: 83
Pavlik написал(а):
Ладно, не расшифровывайте весь код, я и сам уже разобрался. Только одно непонятно осталось. Объясните значение вот этой конструкции: MESSAGE <type(nnn)> WITH <x1> <x2> <x3> <x4>.

Сообщение тип/номер(класс) метки :mrgreen:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FOX Формула
СообщениеДобавлено: Ср, мар 07 2012, 11:38 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
Air_demon - просто мега круто все объяснил!!! Теперь все понятно, спасибо :pivo:


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

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


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

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


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

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