Добрый день.
Необходимо динамически изменять запрос для динамических групп, например для пользователей из разных компаний(у них должны быть разные группы). Как это реализовать?(изменить запрос на выборку этих групп). И где вызывается инициализация групп(например в разделе контрагенты)
Нравится
+ подскажите пожалуйста как можно передавать параметры и изменять select Query
А может сделать несколько динамических групп с разными настройками фильтрации и правильно раздать на них права, чтобы каждая группа пользователей видела свои динамические группы?
Можно, но может ли ,допустим, один контрагент входить в несколько групп(и везде отображать), плюс в любом случаи мне нужно будет передавать параметр в selectQuery и там с помощью switch`а выбирать что-то конкретное под пользователя, а я не знаю как это сделать=(
+ как в select query передаются параметры? мне это необходимо для использования их в запросах
SelectQuery.Parameters.ItemsByName(FilterName).Value = ParamValue;
либо
ApplySelectQueryFilter(SelectQuery, FilterName, ParamValue, Enabled);
необходимо подключать скрипт scr_DB
А в хранимки как я понял параметр используется с помощью такого синаксиса Where ID=:Parameter
А как вручную поменять selectquery, у меня не получается изменить сам t-sql в обход дизайнера
мне необходимо в написать что-то типа:
Select
(case (:Parametr)
when'1' then 'Example1'
when '2' then 'Example2'
end
) as Name
Поточнее это я сделал но результата нет
Для этого в сервисе SelectQuery Вы можете использовать CustomSQLColumn. Перед выполнением SelectQuery.Open() Вам необходимо установить значение параметра. Это можно сделать с помощью функции SetParameterValue из скрипта scr_DB.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Пробывал писать так:
(case @IsAeroClub
when 1 then tbl_Contact.Name
when 0 then tbl_ContactTur.Name
else '-10'
end )
и так
(case :IsAeroClub
when 1 then tbl_Contact.Name
when 0 then tbl_ContactTur.Name
else '-10'
end )
и без скобок
Присвоение параметра делал в OnDatasetBeforeOpen:
if( Connector.CurrentUser.AccountName=="Ваша компания")
Dataset.SelectQuery.Parameters.ItemsByName("IsAeroClub").Value = true;
Результат всегда- столбец не определён
Правильно :IsAeroClub. Лучше в скобках.
tbl_Contact и tbl_ContactTur - эти таблицы есть в Вашем запросе? Их необходимо включить в CustomSQL-колонку (внизу под текстом SQL есть список используемых таблиц).
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Всё подключил
(case :IsAeroClub
when 1 then tbl_Contact.Name
when 0 then tbl_ContactTur.Name
else '-10'
end )
Присвоение параметра делал в OnDatasetBeforeOpen:
if( Connector.CurrentUser.AccountName=="Ваша компания")
Dataset.SelectQuery.Parameters.ItemsByName("IsAeroClub").Value = true;
function ds_AccountOnDatasetAfterOpen(Dataset) {
//TODO
debugger;
Dataset.GotoFirst();
Но тут всё равно не активно
var DataField = Dataset.DataFields.ItemsByName("PrimaryContactNameTur");
}
тоже самое и с
(case :IsAeroClub
when 1 then '1'
when 0 then '2'
else '-10'
end )
