DisplayDataDomain: DbDataDomain;
DisplayDataDomain: Prognoz.Platform.Interop.Dal.DbDataDomain;
The DisplayDataDomain property returns type of multibyte information displayed in the attribute.
To get data type to save mulltibyte information in the attribute, use the IDimAttributeInstance.DataDomain property.
Executing the example requires that repository contains table MDM dictionary with the TMDMDICT_MEMOTMDMDICT_MEMO identifier. The dictionary should contain several values.
To execute the example, add links to the Dal, Dimensions, Metabase system assemblies.
Sub UserProc;
Var
mb: IMetabase;
dimension: IDimInstance;
attribute: IDimAttributeInstance;
attributes: IDimAttributesInstance;
i: Integer;
Begin
// Get current repository
mb := MetabaseClass.Active;
// Get table MDM dictionary
dimension := mb.ItemById("TMDMDICT_MEMO").Open(Null) As IDimInstance;
// Get dictionary attributes
attributes := dimension.Attributes;
// Parse obtained attributes
For i := 0 To attributes.Count - 1 Do
attribute := attributes.Item(i);
// If attribute displays data of the Long Text type, display its value
If (attribute.DisplayDataDomain = DbDataDomain.Memo) And
(attribute.Attribute.DataType = DbDataType.String) Then
Debug.WriteLine("Value of the first element: " + attribute.Value(0));
End If;
End For;
End Sub UserProc;
After executing the example for the first dictionary element, the console displays value of the Long Text attribute type, if it exists in the MDM dictionary.
The requirements and result of the Fore.NET example execution match with those in the Fore Example.
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
// Get current repository
mb := Params.Metabase;
// Get table MDM dictionary
dimension := mb.ItemById["TMDMDICT_MEMO"].Open(Null) As IDimInstance;
// Get dictionary attributes
attributes := dimension.Attributes;
// Parse obtained attributes
For i := 0 To attributes.Count - 1 Do
attribute := attributes.Item[i];
// If attribute displays data of the Long Text type, display its value
If (attribute.DisplayDataDomain = DbDataDomain.dddMemo) And
(attribute.Attribute.DataType = DbDataType.ddtString) Then
System.Diagnostics.Debug.WriteLine("Value of the first element: " + attribute.Value[0]);
End If;
End For;
End Sub;
See also: