Здравствуйте.
Помогите пожалуйста разобраться:
В запросе добавила параметр CreditTypeID и фильтр с тем же именем (рис. sq)
Передала значение параметру CreditTypeID (рис. sq_Parametr)
Присвоила филтру значение параметра (рис. sq_Where)
Сохранила запрос и посмотрела в Preview (рис. sq_Preview)
На рисунке видно условие where. Но когда работает запрос, в профайлере нет условия where(рис. Profiler), и данные не фильтруются.
Спасибо.
Нравится
Добрый день Марина!!!
вопрос. В базе данных CreditTypeID.Type
какой имеет тип? Так как называете вы параметр CreditTypeID, по логике данный параметр должен иметь тип uniqueidentifier
, а в вашем случае данный параметр имеет Числовой тип. Это не ошибка?
Не ошибка, имена параметра и условия неудачно написала, в базе данных CreditDetails.Type типа int.
Версия программы 3.2.0.90
Такое поведение, что вы описали может происходить когда вы программно отключаете Фильтр, при выполнение запроса. Приведите в пример тот кусок кода где вы обращаетесь к Датасету или Запросу и исполняете его.
function RefreshWorkspace() {
var GridDataset = BaseWorkspace.GridDataset;
if (!GridDataset) {
return;
}
try {
GridDataset.Close();
GridDataset.Open(); // здесь profiler захватывает запрос(без фильтра)
Попробовала так:
написала в скрипте грида, который должен фильтроваться
function dlDataOnDatasetBeforeOpen(Dataset, DoOpen)
{
ApplyDatasetFilter(Dataset, 'CreditDetailType', 52, true);
}
но фильтр все еще не работает
после моей фильтрации работает следующая функция написанная в scr_ContactCreditWorkspace
function dlContactCreditOnDatasetBeforeOpen(Dataset) {
var IsInSingleRowMode = GetIsInSingleRowMode();
if (IsInSingleRowMode != true) {
ApplyStandardWorkspaceFilter();
}
}
и грид не фильтруется. Но если писать мой фильтр прямо в этой функции, после ApplyStandardWorkspaceFilter()
function dlContactCreditOnDatasetBeforeOpen(Dataset) {
var IsInSingleRowMode = GetIsInSingleRowMode();
if (IsInSingleRowMode != true) {
ApplyStandardWorkspaceFilter();
ApplyDatasetFilter(Dataset, 'CreditDetailType', 52, true);
}
}
то работает.
Вопрос, можно ли так писать?
Добрый день Марина!!!
да так можно включать преднастроенные фильтры в SQL запросе. Молодцы что разобрались сами.