Текущее время: Сб, авг 23 2025, 13:52

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


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

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


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

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