The following parameters are available to set up value editor using binding string:
Name of the parameter |
Type | Description | Mandatory |
ID | String | Dictionary identifier or key. | Yes |
ATTRIBUTEVALUE | String | Dictionary attribute which values will form cell value. If the binding string does not contain the ATTRIBUTEVALUE attribute, the value will be created based on values of the dictionary attribute with the Identifier purpose. |
None |
LEVELATTR | String | The attribute, which values will be used as element names of all or specified levels. A specific attribute can be set for each dictionary level. The value for this parameter is determined by the following string: 0{X1*Y1,X2*Y2,...,Xn*Yn}, where: X1-Xn is the dictionary level key, for which attribute should be selected; Y1-Yn is the dictionary attribute key, which values will be displayed as element names for the specified level. The example: "0{1*2,2*1}". To specify attribute for all levels, specify -2 as a level key. The example: "0{-2*3}". NOTE. The LEVELATTR parameter cannot be used together with the DISPLAYUSERLISTATTR parameter. |
None |
DISPLAYUSERLISTATTR | String | The custom template, according to which level elements of all levels are created in the expanded editor. Parameter value is a string that can contain any text and attribute substitutions. The attribute substitution looks as follows: %Attribute identifier%. The attributes, for which openness attribute is not set, are available for use. The example: "Name: %NAME% (Date: %USER_DATE_ATTR%)". NOTE. The DISPLAYUSERLISTATTR parameter cannot be used together with the LEVELATTR parameter. |
None |
SELECTIONMODE | String | It determines dictionary element selection mode in the control. The following values can be determined as the parameter values:
|
None |
GROUP | String | Identifier of a group of elements. | None |
SCHEMA | String | Identifier of the selection schema. | None |
NAME | String | The dictionary attribute key, which determines view type of level name in drop-down list. It is used if the dictionary has one level. | None |
NAMESPACE | String | The path to the dictionary, which elements will be displayed in the value editor. The sequence of nested objects to dictionary, as a value, is specified as follows: <container_1 identifier>.<container_2 identifier>. ... .<container_n identifier>. | None |
MULTISELECT | Logical | Availability of multiple selection. | None |
PARAMVALUEx PARAMID_[ident] |
It enables the user to set up value of input parameters if the parametric dictionary is used as a drop-down list. The corresponding parameter can be set in two ways: 1) The parameters of the PARAMVALUEx type are added to the binding string, where x is the parameter number in the list of dictionary parameters (1,2, etc.), for example, PARAMVALUE1 = "10". 2) The parameters of the PARAMID_[ident] type are added to the binding string, where [ident] is the parameter identifier in the list of dictionary parameters, for example, PARAMID_Item = "10". To specify the data type that has the sent value, one can add one of the values of the ForeVariantType enumeration before the value. The data type and the value are separated with a colon. Example:
Due to implementation features, to define an array, use the 8204 value, for example, to send an array of 32-bit integer numbers, specify PARAMID_Item = "8204:[3:1,3:5,3:8,3:9]". |
None | |
DISPLAYATTRIBUTEVALUE | String | It determines the attribute of the dictionary use to display to footer or header. | None |
DISPLAYUSERTEXTATTR | String | The custom template, according to which element names will be created for displayed value. The displayed value is available after selecting dictionary elements and closing the dictionary. Parameter value is a string that can contain any text and attribute substitutions. The attribute substitution looks as follows: %Attribute identifier%. The attributes, for which openness attribute is not set, are available for use. For example: "Name: %NAME% (Date: %USER_DATE_ATTR%)". |
None |
DS_KEY | Integer | Data source key of regular report, for which calculated points are created. | None |
DIM_KEY | Integer | Dimension key, for which the value editor is created. | None |
PT_KEY | Integer | Calculated point key created for data source. | None |
CUSTOMMULTISELECTTEXT | String | Template, according to which editor text is created in case of multiple selection. Creating the template may require any text and the following substitutions:
|
None |
Logical values are set as a character string of the ON/OFF or the True/False type.
The cell displays element names. The value contained in the cell is the value of the attribute determined in the ATTRIBUTEVALUE parameter. If several elements are selected, the cell value is the value array of the specified dictionary attribute.
NOTE. When turning a cell in the edit mode for correct recovery of selection of the dictionary used in the DimCombo control, it is required that the value type in the cell matches with the attribute type of the dictionary, which values are used to create a cell value - ATTRIBUTEVALUE. A unique index should also be created in the dictionary by the ATTRIBUTEVALUE attribute.
Binding string examples:
UI="DimCombo" ID="CALENDAR" ATTRIBUTEVALUE="NAME" LEVELATTR="0{4*4}" MULTISELECT="True" PARAMID_YEAR_START="2000" PARAMID_YEAR_FINISH="2020"
UI="DimCombo" ID="@1033" ATTRIBUTEVALUE="NAME"
Context menu for the DimCombo element looks as follows:
NOTE. The Select group and Display group context menu items are present if there is no restriction for visible dictionary elements from dictionary selection group, that is, the GROUP parameter is not set.
Executing the example requires a form, a button named Button1 on the form, the TabSheetBox component named TabSheetBox1 and the UiTabSheet component named UiTabSheet1. UiTabSheet1 is set as a data source for TabSheetBox1. The repository must contain a dictionary with the D_TO identifier. The dictionary structure contains several levels and a group of elements and a selection schema. The example is a handler of the OnClick event for the Button1 component.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
DimDesc: IMetabaseObjectDescriptor;
BM: IBindingManager;
DimChildren: IMetabaseObjectDescriptors;
DimModel: IDimensionModel;
DimInst: IDimInstance;
Selection: IDimSelection;
Group: IDimElementGroup;
Schema: IDimSelectionSchema;
LvlKey, AttrKey: Integer;
DimComboBinding: IBindingDimCombo;
Begin
MB := MetabaseClass.Active;
DimDesc := MB.ItemById("D_TO");
BM := New BindingManager.Create;
DimModel := DimDesc.Bind As IDimensionModel;
DimChildren := DimDesc.Children;
//Setting up parameters
DimComboBinding := BM.CreateByUi("DimCombo") As IBindingDimCombo;
//Check the existence of the group of elements of the selection schema
//It is expected that the first child object is a group of elements,
//the second is the selection schema
If DimChildren.Count >= 2 Then
Group := DimChildren.Item(0).Bind As IDimElementGroup;
Schema := DimChildren.Item(1).Bind As IDimSelectionSchema;
DimComboBinding.Group := (Group As IMetabaseObject).Id;
DimComboBinding.Schema := (Schema As IMetabaseObject).Id;
//Creating values from names
DimInst := DimDesc.Open(Null) As IDimInstance;
Selection := DimInst.CreateSelection;
Schema.ProcessInplace(Selection, Group);
DimComboBinding.ValueAttribute := "NAME";
DimComboBinding.ValueDefined := True;
DimComboBinding.Value := Selection.ToString;
End If;
//Identifiers as the name of level elements if the level exists
If DimModel.Levels.Count >= 1 Then
LvlKey := DimModel.Levels.Item(1).Key;
AttrKey := DimModel.Attributes.Id.Key;
DimComboBinding.LevelAttribute := "0{" + LvlKey.ToString + "*" + AttrKey.ToString + "}";
End If;
DimComboBinding.Object := DimDesc.Id;
//Multiple selection
DimComboBinding.SelectionMode := SelectionModeEnum.MultiSelect;
UiTabSheet1.TabSheet.Cell(0, 0).Style.Binding := DimComboBinding.AsString;
End Sub Button1OnClick;
Clicking the button sets the value editor for the A0 table cell. When the cell is edited, the dictionary drop-down list is displayed. The list of elements will contain elements included into dictionary group of elements, on the first opening the elements included into dictionary selection schema are selected. Identifiers are displayed as the first level element value, multiple selection option is on. After the selection is set, the cell value is generated from selected elements.