SetAttributeValue(Attribute: Integer; Value: Variant; [Options: RdsDictionaryElementDataOptions = 0]);
SetAttributeValue(
Attribute: uinteger; Value: object;
Options: Prognoz.Platform.Interop.Rds.RdsDictionaryElementDataOptions);
Attribute. Индекс атрибута, значение которого необходимо изменить.
Value. Новое значение атрибута.
Options. Параметры изменения значения атрибута.
Метод SetAttributeValue позволяет изменить значение указанного атрибута элемента.
Для изменения значения параметрического атрибута параметр Options должен быть равен RdsDictionaryElementDataOptions.AllowChangeParamAttribute.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «RDS_REPO», содержащим параметрический справочник с идентификатором «DICT». Данный справочник содержит атрибут с идентификатором «PARAM», связанный с целочисленным параметром. Добавьте ссылки на системные сборки «Metabase», «Rds».
Sub UserProc;
Var
mb: IMetabase;
RdsKey: Integer;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
AttrKey, AttrInd: Integer;
ParamsVal: IRdsParamValues;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Element: IRdsDictionaryElement;
Data: IRdsDictionaryElementData;
Begin
mb := MetabaseClass.Active;
RdsKey := mb.ItemById("RDS_REPO").Key;
Dict := mb.ItemByIdNamespace("DICT", RdsKey).Edit As IRdsDictionary;
Attrs := Dict.Attributes;
AttrKey := Attrs.FindById("PARAM").Key;
ParamsVal := Dict.Params.CreateValues;
ParamsVal.FindById("PARAM").Value := 0;
DictInst := Dict.Open(ParamsVal);
Elements := DictInst.Elements;
Element := Elements.Item(1);
Data := Element.Data;
AttrInd := Data.AttributeIndex(AttrKey);
Data.SetAttributeValue(AttrInd, 2, RdsDictionaryElementDataOptions.AllowChangeParamAttribute);
DictInst.Update(Element.Key, Data);
End Sub UserProc;
После выполнения примера справочник будет открыт с заданным значением параметра. Затем будет изменено значение параметра для первого элемента.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «RDS_REPO», содержащим параметрический справочник с идентификатором «DICT». Данный справочник содержит атрибут с идентификатором «PARAM», связанный с целочисленным параметром.
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
RdsKey: uinteger;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
AttrKey: uinteger;
AttrInd: integer;
ParamsVal: IRdsParamValues;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Element: IRdsDictionaryElement;
Data: IRdsDictionaryElementData;
Begin
mb := Params.Metabase;
RdsKey := mb.ItemById["RDS_REPO"].Key;
Dict := mb.ItemByIdNamespace["DICT", RdsKey].Edit() As IRdsDictionary;
Attrs := Dict.Attributes;
AttrKey := Attrs.FindById("PARAM").Key;
ParamsVal := Dict.Params.CreateValues();
ParamsVal.FindById("PARAM").Value := 0;
DictInst := Dict.Open(ParamsVal);
Elements := DictInst.Elements;
Element := Elements.Item[1];
Data := Element.Data;
AttrInd := Data.AttributeIndex[AttrKey];
Data.SetAttributeValue(AttrInd As uinteger, 2, RdsDictionaryElementDataOptions.rdsdiceledatoptAllowChangeParamAttribute);
DictInst.Update(Element.Key, Data);
End Sub;
После выполнения примера справочник будет открыт с заданным значением параметра. Затем будет изменено значение параметра для первого элемента.
См. также: