Вопрос
Ошибка при попытке создания копии фильтра с другим названием
23 июля 2010 13:43
При попытке создания фильтра путем копирования уже существующего фильтра возникает ошибка:
TSObjectLibrary.Filters: Дублируется значение свойства 'UID'. Значение '{CAE2A991-7CEE-4E64-A401-55C449801955}' уже существует
Использую вот такой код:
var Filters = Dataset.SelectQuery.Items(0).Filters.Items(0);
var LikeFilter = Filters.ItemsByCode(FilterName);
var Parameters = SelectQuery.Parameters;
var Parameter = Parameters.ItemsByName(FilterName);
var Name = FilterName+'1';
var TempLikeFilter = LikeFilter.CreateCopy();
TempLikeFilter.Code = Name;
TempLikeFilter.IsEnabled = true;
var TempParameter = Parameter.CreateCopy();
TempParameter.Name = Name;
TempParameter.Value = SearchValue;
TempLikeFilter.ValueExpression.Parameter = TempParameter;
Filters.Add(TempLikeFilter);
var LikeFilter = Filters.ItemsByCode(FilterName);
var Parameters = SelectQuery.Parameters;
var Parameter = Parameters.ItemsByName(FilterName);
var Name = FilterName+'1';
var TempLikeFilter = LikeFilter.CreateCopy();
TempLikeFilter.Code = Name;
TempLikeFilter.IsEnabled = true;
var TempParameter = Parameter.CreateCopy();
TempParameter.Name = Name;
TempParameter.Value = SearchValue;
TempLikeFilter.ValueExpression.Parameter = TempParameter;
Filters.Add(TempLikeFilter);
На последней строчке происходит ошибка. Помогите разобраться, пожалуйста.
Нравится
2 комментария
23 июля 2010 14:02
надо добавить что-то типа такого:
TempLikeFilter.UID = <тут новый GUID>;
23 июля 2010 14:17
"Валерий Андрусик" написал:надо добавить что-то типа такого:
TempLikeFilter.UID = <тут новый GUID>;
Спасибо, помогло :smile:
Теперь вот так работает:
var Filters = Dataset.SelectQuery.Items(0).Filters.Items(0); var LikeFilter = Filters.ItemsByCode(FilterName); var Parameters = SelectQuery.Parameters; var Parameter = Parameters.ItemsByName(FilterName); var Name = FilterName+'1'; var TempLikeFilter = LikeFilter.CreateCopy(); TempLikeFilter.UID = Connector.GenGUID(); TempLikeFilter.Code = Name; TempLikeFilter.IsEnabled = true; var TempParameter = Parameter.CreateCopy(); TempParameter.UID = Connector.GenGUID(); TempParameter.Name = Name; TempParameter.Value = SearchValue; TempLikeFilter.ValueExpression.Parameter = TempParameter; Filters.Add(TempLikeFilter); Parameters.Add(TempParameter);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать