Программа "вылетает" после 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.
Фрагмент кода:

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;
Показать все комментарии