Особенности @XRANGE
@XRANGE возвращает массив из указанного диапазона, причем возвращает все пересечение элементов нулевого уровня направления, стоящим в конце выражения ->(на последней позиции). Т.Е. выражение
@XRANGE( @CURRMBRRANGE(«Год»,LEV,0,-3,-3)->@CURRMBR(«Период»)
, @CURRMBR(«Год»)->@CURRMBR(«Период»)
)
Вернет последние 37 месяцев, при условии что в направлении Период у нас нет технических элементов, иначе они тоже попадут в результат запроса.
Что бы запрос корректно выполнялся, во втором случае, нужно исключить из результата выполнения «мусор», с помощью @REMOVE и @LIST
@REMOVE(
@LIST( @XRANGE(
@CURRMBRRANGE(«Год»,LEV,0,-3,-3)->@CURRMBR(«Период»)
, @CURRMBR(«Год»)->@CURRMBR(«Период»)
)
)
, @LIST( &YearPrev2->»Период Н А«
,&YearPrev1->»Период Н А«
,&YearCurr->»Период Н А«,&YearNext1->»Период Н А«
,&YearNext2->»Период Н А«
,&YearNext3->»Период Н A«))
@DESCENDANTS
Данная функция возвращает потомков с выбранного направления – или с элемента. Также можно указать с какого уровня брать значения @DESCENDANTS(«Итого за год»,0) – тогда отпадает необходимость в использовании операции пересечении множеств (@DESCENDANTS(«Итого за год») and @LEVMBRS(“Период”,0)
Работа с @CURRMBRRANGE && @RANGE
Очень часто, встает вопрос о работе с массивом значений, который параметризирован c помощью оператора пересечения между направлениями “->” И что бы избежать ручного прописывания всех возможных вариантов, очень удобно использовать функцию @RANGE совместно с @CURRMBRRANGE.
Например :
@RANGE (@CURRMBRRANGE(«Год»,LEV,0,-1,-1),@DESENDANTS («Всего за год»))
Вернет однострочный массив значений
%Предыдущий год от текущего%->%Первый месяц%
%Предыдущий год от текущего%->%Второй месяц%
….
%Предыдущий год от текущего%->%Двенадцатый месяц%
-
Архивы
- Сентябрь 2009 (2)
- Август 2009 (3)
- Июль 2009 (10)
- Июнь 2009 (7)
- Май 2009 (8)
- Апрель 2009 (10)
- Март 2009 (8)
- Февраль 2009 (31)
- Январь 2009 (20)
- Декабрь 2008 (5)
- Сентябрь 2008 (3)
- Август 2008 (4)
-
Рубрики
-
RSS
RSS записей
RSS комментариев