Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает значение меры в кубе, форсируя неприменимые размерности на их All level (или элемент по умолчанию, если не агрегируемый) при возврате результата для определённого кортежа.
Syntax
ValidMeasure(Tuple_Expression)
Arguments
Tuple_Expression
Допустимое выражение многомерных выражений (MDX), возвращающее кортеж.
Remarks
Функция ValidMeasure возвращает значение кортежа, игнорируя атрибуты, не связанные с группой мер меры, значение которой возвращает кортеж. Атрибут может быть не связан с мерой по двум причинам:
Размерность атрибута не связана с группой меры меры в кортеже.
Размерность атрибута не связана с группой меры меры, но атрибут гранулярности не является ключевым атрибутом, и атрибут гранулярности не имеет прямой связи с атрибутом в кортеже.
Поведение, заданное этой функцией, является стандартным на стороне сервера и управляется свойством IgnoreUnrelatedDimensions на объекте группы мер.
Для каждого атрибута в указанном кортеже с гранулярностью (то есть когда элемент кортежа не является элементом All) текущая координата для каждого такого атрибута перемещается следующим образом:
Связанные атрибуты с указанным атрибутом перемещаются в тот член, который существует вместе с текущим участником.
Связанные атрибуты с указанным атрибутом перемещаются в All (или в стандартный член, если иерархия не агрегируема).
Несвязанные атрибуты перемещаются в член All (в зависимости от измерения).
Пример
Следующий запрос показывает, как функция ValidMeasure может быть использована для отмены поведения свойства IgnoreUnrelatedDimensions. В кубе Adventure Works группа меры Sales Targets имеет IgnoreUnrelatedDimensions установлен как False; поскольку измерение Дата присоединяется к этой группе по гранулярности календарного квартала, это означает, что мера квоты продаж по умолчанию возвращает нулевой уровень ниже календарного квартала (хотя в MDX Script также есть расчёт, который распределяет значения до уровня месяца). Использование функции ValidMeasure в рассчитанной мере можно использовать для того, чтобы мера Sales Quota вела себя так, будто IgnoreUnrelatedDimensions была установлена в True, и заставить Sales Quota отображать значение текущего календарного квартала.
WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,
[Date].[Calendar].MEMBERS ON 1
FROM [Adventure Works]
Аналогично, группа измерений целей продаж никак не связана с измерением Продвижение, поэтому ниже All Member любой иерархии по Промоушену она возвращает null. Опять же, это поведение можно изменить, используя ValidMeasure:
WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,
[Promotion].[Promotions].members ON 1
FROM [Adventure Works]