Текущее время: Вс, авг 03 2025, 11:57

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Заполнение показателя в FOX.
СообщениеДобавлено: Вт, апр 29 2014, 17:38 
Специалист
Специалист

Зарегистрирован:
Сб, апр 23 2011, 10:40
Сообщения: 122
Добрый день.

Подскажите, как еще можно записать в показатель значение для всех сочетаний признаков, если сочетания выводятся через отношения признаков, и в кубе, в который записываются данные, есть данные не по всем сочетаниям?

1) Если записывать через FOREACH..., показатель заполняется только для тех сочетаний по которым есть данные в кубе, для остальных сочетаний ничего не записывается.
2) Если использовать FOREACH ... IN SELECTION, формируются сочетания признаков, которых нет в отношениях, и формула валится с ошибкой.
3) Конструкция IF/ENDIF так же не работает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Заполнение показателя в FOX.
СообщениеДобавлено: Вт, апр 29 2014, 17:48 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 10:18
Сообщения: 503
А как Вы используете IF/ENDIF? Почему он не работает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Заполнение показателя в FOX.
СообщениеДобавлено: Ср, апр 30 2014, 09:52 
Специалист
Специалист

Зарегистрирован:
Сб, апр 23 2011, 10:40
Сообщения: 122
Air_demon написал(а):
А как Вы используете IF/ENDIF? Почему он не работает?

Расчет происходит через последовательность планирования: в фильтре исключаются "не присвоенные" сочетания", а сама функция выглядит так:

DATA FY TYPE 0FISCYEAR.
DATA INFPROV TYPE 0INFOPROV.
DATA PLVAR TYPE ZPLVAR.
DATA SEAS TYPE 0FISCPER3.
DATA KOEF TYPE F.
DATA H1 TYPE F.

FY = VARV(ZFISCYEAR).
PLVAR = VARV(ZPLVARV).
INFPROV = VARV(ZIP_PLAN).
KOEF = VARV(ZKF).

FOREACH SEAS IN VARIABLE ZVAR_SEASON.
IF SEAS = '002' OR SEAS = '008'.
H1 = {ZSC, SEAS, FY, INFPROV, PLVAR }.

IF H1 >= 0 OR H1 = #.
{ZSC, SEAS, FY, INFPROV, PLVAR } = KOEF.
ENDIF.

ENDIF.
ENDFOR.

После выполнения, для сочетаний, в разрезе которых были ранее заведены значения, функция проставляет значение в ZSC, а для тех, по которым ничего не велось - ZSC остается пустым.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Заполнение показателя в FOX.
СообщениеДобавлено: Пт, май 02 2014, 19:00 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 30 2007, 17:10
Сообщения: 488
Для начала из полей для изменения можно спокойно вынести 0FISCYEAR, 0INFOPROV и ZPLVAR - они не меняются у вас совсем, а функция будет выглядеть проще (ограничение по переменным перенесите в фильтр).

DATA SEAS TYPE 0FISCPER3.
DATA KOEF TYPE F.
DATA H1 TYPE F.

KOEF = VARV(ZKF).

FOREACH SEAS IN VARIABLE ZVAR_SEASON.
IF SEAS = '002' OR SEAS = '008'.
H1 = {ZSC, SEAS }.

IF H1 >= 0 OR H1 = #.
{ZSC, SEAS } = KOEF.
ENDIF.

ENDIF.
ENDFOR.

Далее можно заметить, что вы по сути заполняете значения только фин.периода '002' или '008'. Странно ожидать чего-то другого ;)

_________________
Карма - это суперпозиция граблей, на которые мы уже успели наступить, но которые еще не долетели...


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

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


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

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


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

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