Текущее время: Вт, авг 12 2025, 00:16

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


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

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


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

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