IDimAttributeInstance.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: IDimInstance;
    attribute: IDimAttributeInstance;
    attributes: IDimAttributesInstance;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем табличных справочник НСИ
    dimension := mb.ItemById("TMDMDICT_MEMO").Open(NullAs IDimInstance;
    // Получаем атрибуты справочника
    attributes := dimension.Attributes;
    // Перебираем полученные атрибуты
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item(i);
        // Если атрибут имеет тип «Длинный текст», то выводим его значение
        If (attribute.DataDomain = DbDataDomain.Memo) And
            (attribute.Attribute.DataType = DbDataType.String) Then
            Debug.WriteLine("Значение первого элемента: " + attribute.Value(0));
        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: IDimInstance;
    attribute: IDimAttributeInstance;
    attributes: IDimAttributesInstance;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем табличных справочник НСИ
    dimension := mb.ItemById["TMDMDICT_MEMO"].Open(NullAs IDimInstance;
    // Получаем атрибуты справочника
    attributes := dimension.Attributes;
    // Перебираем полученные атрибуты
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item[i];
        // Если атрибут имеет тип «Длинный текст», то выводим его значение
        If (attribute.DataDomain = DbDataDomain.dddMemo) And
            (attribute.Attribute.DataType = DbDataType.ddtString) Then
            System.Diagnostics.Debug.WriteLine("Значение первого элемента: " + attribute.Value[0]);
        End If;
    End For;
End Sub;

См. также:

IDimAttributeInstance