IDimAttribute.DataDomain

Синтаксис Fore

DataDomain: DbDataDomain;

Синтаксис Fore.NET

DataDomain: Prognoz.Platform.Interop.Dal.DbDataDomain;

Описание

Свойство DataDomain возвращает тип данных для хранения в атрибуте многобайтовой информации.

Комментарии

Если свойство DataDomain имеет значение DbDataDomain.Memo, а свойство IDimAttribute.DataType - значение DbDataType.String, то атрибут имеет тип «Длинный текст».

При работе с атрибутом «Длинный текст» учитывайте следующие ограничения:

Для табличных справочников НСИ и составных табличных справочников НСИ DataDomain может принимать значения DbDataDomain.Memo или DbDataDomain.None.

Пример Fore

Для выполнения примера в репозитории предполагается наличие табличного справочника НСИ с идентификатором «TMDMDICT_MEMOTMDMDICT_MEMO».

Для выполнения примера добавьте ссылки на системные сборки: Dal, Dimensions, Metabase.

Sub UserProc;
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем табличный справочник НСИ
    dimension := mb.ItemById("TMDMDICT_MEMO").Bind As IDimensionModel;
    // Получаем атрибуты справочника
    attributes := dimension.Attributes;
    // Перебираем полученные атрибуты
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item(i);
        // Если атрибут имеет тип «Длинный текст», то выводим информацию о нем
        If (attribute.DataDomain = DbDataDomain.Memo) And
            (attribute.DataType = DbDataType.String) Then
            Debug.WriteLine("Наименование: " + attribute.Name);
            Debug.WriteLine("Идентификатор: " + attribute.Id);
            Debug.WriteLine("Ключ: " + attribute.Key.ToString);
        End If;
    End For;
End Sub UserProc;

В результате выполнения примера в окно консоли будет выведена информация об атрибутах типа «Длинный текст», если они присутствуют в справочнике НСИ.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем табличный справочник НСИ
    dimension := mb.ItemById["TMDMDICT_MEMO"].Bind() As IDimensionModel;
    // Получаем атрибуты справочника
    attributes := dimension.Attributes;
    // Перебираем полученные атрибуты
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item[i];
        // Если атрибут имеет тип «Длинный текст», то выводим информацию о нем
        If (attribute.DataDomain = DbDataDomain.dddMemo) And
            (attribute.DataType = DbDataType.ddtString) Then
            System.Diagnostics.Debug.WriteLine("Наименование: " + attribute.Name);
            System.Diagnostics.Debug.WriteLine("Идентификатор: " + attribute.Id);
            System.Diagnostics.Debug.WriteLine("Ключ: " + attribute.Key.ToString());
        End If;
    End For;
End Sub;

См. также:

IDimAttribute