Фильтры
Разработка

Программа "вылетает" после ApplyDatasetIncludeFilter

Вот такой код :

if (Count > 0)
{
    MessageBox('aaa');
    ApplyDatasetIncludeFilter(TurnoverMonthDataset, 'AssortmentID', List, true); MessageBox('bbb');
}  
MessageBox('ccc');

Сообщение 'aaa' я еще вижу, а ни 'bbb, ни 'ccc' уже не выдается.
Так же нет сообщения об ошибке. Просто дальше ничего не отрабывается.
В соседнем скрипте все тоже самое работает. Вроде все служебные скрипты подключены. В чем может быть дело?

Нравится

4 комментария

Еще странную вещь наблюдаю. Добавляю необходимый скрипт - scr_DB, и при нажатии на Ctrl (на фнкции ApplyDatasetIncludeFilter) я перехожу в скрипт scr_DB именно на эту процедуру. После запуска моего фильтра (где собственно и находится выше указанный код), и после "остановки" программы, я не могу опять (через Ctrl ) перейти на ApplyDatasetIncludeFilter. Тогда я удаляю scr_DB, вставляю ее заново - и могу перейти.

Вопрос снимается. Оказывается я неправильно в select_query указала этот фильтр. Я указала AssortmentID в WHERE и как параметр. А нужно было только в WHERE.

И все-таки проблема есть. В случае, если фильтр участвует в подзапросе, опять возникает ситуация, описанная мною в первом посте. Вот вид подзапроса :

Опять никакой реакции после строки ApplyDatasetIncludeFilter

Наталия, ознакомьтесь с примером включения IncludeFilter, расположенного в подзапросе, в скрипте scr_TasksWorkspace, в функции ApplyContactFilter.
Фрагмент кода:

[javascript]
BaseFilters = Dataset.SelectQuery.Items(0).Filters.Items(0);
var Filter = BaseFilters.ItemsByCode('ContactIDs');
if (!Assigned(Filter)) {
Filter = BaseFilters.Items(0).ItemsByCode('ContactIDs');
}
var Parameters = Dataset.SelectQuery.Parameters;
var TeamFilter = Filter.ItemsByCode('tcTeam');
var SubSelectFilter = TeamFilter.TestExpression
.ExpressionSelectQuery.Items(0).Filters;
var OwnerIDsFilter = Filter.ItemsByCode('tcOwnerIDs');
var ContactIDsFilter = Filter.ItemsByCode('tcContactIDs');
var SubContactIDsFilter = SubSelectFilter.ItemsByCode('tcContactIDs');
ApplyIncludeFilter(OwnerIDsFilter, IDs, true, null, Parameters);
ApplyIncludeFilter(ContactIDsFilter, IDs, true, null, Parameters);
ApplyIncludeFilter(SubContactIDsFilter, IDs, true, null, Parameters);
TeamFilter.IsEnabled = true;
Filter.IsEnabled = true;
[/javascript]

Показать все комментарии