IRdsDictionaryElementData.SetAttributeValue

Синтаксис Fore

SetAttributeValue(Attribute: Integer; Value: Variant; [Options: RdsDictionaryElementDataOptions = 0]);

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

SetAttributeValue(
    Attribute: uinteger; Value: object;
    Options: Prognoz.Platform.Interop.Rds.RdsDictionaryElementDataOptions);

Параметры

Attribute. Индекс атрибута, значение которого необходимо изменить.

Value. Новое значение атрибута.

Options. Параметры изменения значения атрибута.

Описание

Метод SetAttributeValue позволяет изменить значение указанного атрибута элемента.

Комментарии

Для изменения значения параметрического атрибута параметр Options должен быть равен RdsDictionaryElementDataOptions.AllowChangeParamAttribute.

Пример Fore

Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «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;

После выполнения примера справочник будет открыт с заданным значением параметра. Затем будет изменено значение параметра для первого элемента.

Пример Fore.NET

Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «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;

После выполнения примера справочник будет открыт с заданным значением параметра. Затем будет изменено значение параметра для первого элемента.

См. также:

IRdsDictionaryElementData