Бөлісу құралы:


Сведения о проектировании: поиск комбинаций измерений

Если страница закрывается после редактирования набора измерений Business Central определяет, существует ли отредактированный набор измерений. Если набор не существует, создается новый набор и возвращается код комбинации измерений.

Создание дерева поиска

Таблица 481 Узел дерева набора измерений используется, когда Business Central выполняет оценку того, существует ли набор измерений в таблице 480 Операция набора измерений. Оценка выполняется путем рекурсивного обхода дерева поиска начиная с верхнего уровня (0). Верхний уровень 0 представляет набор измерений без операций набора измерений. Дочерние элементы этого набора измерений представляют наборы измерений только с одной операцией набора измерений. Дочерние элементы этих наборов измерений представляют наборы измерений с двумя дочерними элементами и т. д.

Пример 1

На следующей схеме представлено дерево поиска с шестью наборами измерений. На схеме отображается только идентификационная операция набора измерений.

Пример структуры дерева измерений.

В следующей таблице описан полный список операций набора измерений, формирующих каждый набор измерений.

Наборы измерений Записи набора измерений
Комплект 0 Нет
Комплект 1 AREA 30
Комплект 2 AREA 30, DEPT ADM
Комплект 3 AREA 30, DEPT PROD
Комплект 4 AREA 30, DEPT ADM, PROJ VW
Комплект 5 AREA 40
Комплект 6 AREA 40, PROJ VW

Пример 2

Этот пример показывает, как Business Central оценивает, существует ли набор измерений, состоящий из операций набора измерений AREA 40, DEPT PROD.

Сначала Business Central также обновляет таблицу Узел дерева набора измерений, чтобы гарантировать, что дерево поиска будет выглядеть так, как на следующей схеме. Таким образом, набор измерений 7 становится дочерним набором набора измерений 5.

Пример структуры дерева измерений в NAV 2013 году.

Поиск кода набора измерений

На концептуальном уровне Родительский код, Измерение и Значение измерения в дереве поиска объединяются и используются как первичный ключ, поскольку Business Central перемещается по дереву в том же порядке, что и операции измерений. Функция GET (запись) используется для поиска ИД набора измерений. В следующем примере кода показано, как найти ИД набора измерений с тремя значениями измерений.

DimSet."Parent ID" := 0;  // 'root'  
IF UserDim.FINDSET THEN  
  REPEAT  
      DimSet.GET(DimSet."Parent ID",UserDim.DimCode,UserDim.DimValueCode);  
  UNTIL UserDim.NEXT = 0;  
EXIT(DimSet.ID);  

Однако чтобы сохранить возможность Business Central переименовывать как измерение, так и значение измерения, в таблицу 349 Значение измерения добавлено целочисленное поле ИД значения измерения. Эта таблица преобразует пару полей Измерение и Значение измерения в целочисленное значение. Переименовав измерение и значение измерения, целое значение не меняется.

DimSet."Parent ID" := 0;  // 'root'  
IF UserDim.FINDSET THEN  
  REPEAT  
      DimSet.GET(DimSet.ParentID,UserDim."Dimension Value ID");  
  UNTIL UserDim.NEXT = 0;  
EXIT(DimSet.ID);  

См. также

Подробности дизайна: набор измерений Записи
набор измерений Обзор записей
Детали дизайна: Структура таблицы

Найдите бесплатные модули электронного обучения для Business Central здесь