powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Business Objects: рекурентные последовательности
6 сообщений из 6, страница 1 из 1
Business Objects: рекурентные последовательности
    #33653017
ante871
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый

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

BO 6.5.1
...
Рейтинг: 0 / 0
Business Objects: рекурентные последовательности
    #33653179
Bormoglot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ante871День добрый

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

BO 6.5.1

да. Используй функции, начинающиеся со слова "Running" или ф-цию "Previous".
...
Рейтинг: 0 / 0
Business Objects: рекурентные последовательности
    #33655355
ante871
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BormoglotИспользуй функции, начинающиеся со слова "Running" или ф-цию "Previous".

нужно чтобы значение ячейки расчитывалось на основе значениий всех предыдущих ячеек.

ячейка1(i) = ячейка2(i) - ячейка3(i) + f( ячейка1(i-1) )

когда я такую формулу пытаюсь организовать с помощью функции previous(), то BO в редактировании перменной сообщаеет о "зацикливание в определении переменной"
...
Рейтинг: 0 / 0
Business Objects: рекурентные последовательности
    #33657576
ante871
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здесь можно посмотреть похожую задачку с решением, но применить в моём случае не удаётся

Мой пример:
Код: plaintext
1.
2.
3.
4.
Сделка1 Сделка2 
 100          200 
 500          100 
 300          400 
 400          500 

мне необходимо проверить, что
Код: plaintext
1.
2.
3.
Сделка1_(N) > Сделка2_(N) + { Сделка2_(N- 1 ) +...+ {Сделка2_( 2 )+{Сделка2_( 1 ) - Сделка1_( 1 )} - {Сделка1_( 2 )} -...- Сделка1_(N- 1 )}

где функция {X} = (X+|X|)/ 2  , т.е {X} есть само X, если X> 0  и  0  в остальных случаях.

т.е. надо проверить что
400 > 500 + { 400 + {100 + {200 - 100} - 500} - 300}

вычислив значения функции {X} получим
400 > 600 (т.е. результат - "неверно")

в данном случае N = 4, но в общем случае N - любое натуральное число

Гуру, подскажите как реализовать такое вычисление в BO.
...
Рейтинг: 0 / 0
Business Objects: рекурентные последовательности
    #33673601
Bormoglot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ante871 здесь можно посмотреть похожую задачку с решением, но применить в моём случае не удаётся

Мой пример:
Код: plaintext
1.
2.
3.
4.
Сделка1 Сделка2 
 100          200 
 500          100 
 300          400 
 400          500 

мне необходимо проверить, что
Код: plaintext
1.
2.
3.
Сделка1_(N) > Сделка2_(N) + { Сделка2_(N- 1 ) +...+ {Сделка2_( 2 )+{Сделка2_( 1 ) - Сделка1_( 1 )} - {Сделка1_( 2 )} -...- Сделка1_(N- 1 )}

где функция {X} = (X+|X|)/ 2  , т.е {X} есть само X, если X> 0  и  0  в остальных случаях.

т.е. надо проверить что
400 > 500 + { 400 + {100 + {200 - 100} - 500} - 300}

вычислив значения функции {X} получим
400 > 600 (т.е. результат - "неверно")

в данном случае N = 4, но в общем случае N - любое натуральное число

Гуру, подскажите как реализовать такое вычисление в BO.


Может быть я не совсем правильно понял задачу, но мне кажется, что решение следующее:
Делаете две переменных на основе сделка1 и сделка2

Код: plaintext
1.
Рсделка1=RunningSum(<сделка1>) 
Рсделка2=RunningSum(<сделка2>) 
И после этого в отдельном столбце прописываете формулу:
Код: plaintext
= If <Сделка1>><Сделка2>+<Рсделка2>-<Рсделка1> Then "True" Else "False" 
...
Рейтинг: 0 / 0
Business Objects: рекурентные последовательности
    #33675964
ante871
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bormoglot
Может быть я не совсем правильно понял задачу, но мне кажется, что решение следующее:
Делаете две переменных на основе сделка1 и сделка2

Код: plaintext
1.
Рсделка1=RunningSum(<сделка1>) 
Рсделка2=RunningSum(<сделка2>) 
И после этого в отдельном столбце прописываете формулу:
Код: plaintext
= If <Сделка1>><Сделка2>+<Рсделка2>-<Рсделка1> Then "True" Else "False" 


Спасибо за помощь.
Но если повнимательнее присмотреться к задаче, то становится понятно, что ваше решение на шаге i не учитывает функцию {X} , где X - значение на шаге i-1

В тех. поддержке мне сказали, что такая задача для произвольного N не решается в BO.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Business Objects: рекурентные последовательности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]