Программное навешивание sql фильтров на SelectQuery.
¡Hola!
Господа, в своём скрипте (scr_Script) имею
sq_SelectQuery имеет вид
[tbl_First].[ID] AS [ID],
[tbl_First].[Name] AS [Name]
FROM
[dbo].[tbl_Second] AS [tbl_Second]
LEFT OUTER JOIN
[dbo].[tbl_First] AS [tbl_First] ON [tbl_First].[FK] = [tbl_Second].[ID]
WHERE([tbl_Second].[ID] = [tbl_First].[FK]
Из скрипта необходимо добавить к
sq
фильтр типа CustomSQLFilter
:со строкой определённой в скрипте (обработчике)
Вывести результат и сбросить фильтр до следующего возникновения события с иной строкой.
Прошу Ваших наставлений по поводу данного вопроса, так как моих познаний TerraSoft не достаточно, а документация SDK довольно бедная.
С уважением
Ваш коллега.
Нравится
Добавляете в дизайнере в sq ещё один фильтр с текстовым параметром, затем его налагаете функцией ApplyDatasetFilter (для SelectQuery аналогичная ApplySelectQueryFilter).
Примеры можно найти в конфигурации по названию функции.
От теории к практике.
Не совсем пойму, как создать фильтр с текстовым параметром (я совсем новичок, ещё недели нет, как окунулся в TerraSoft).
Как я понял в самом SelectQuery с фильтра надо будет снять галку. А в коде применять его функцией
ApplySelectQueryFilter(sq, 'filter_name', 'здесь моя строка с которой хочу сравнивать поле указанное в фильтре', true (который говорит что галку надо поставить и применить фильтр));
Верный ли мой ход мыслей?
Верно. В дизайнере sq создаёте параметр, затем там же создаёте фильтр сравнения нужного поля с этим параметром.
Кроме sq лучше создать в дизайнере сервис ds и работать программно уже с ним.
"Зверев Александр" написал:Кроме sq лучше создать в дизайнере сервис ds и работать программно уже с ним.
То есть этот фильтр сразу применять к набору данных не затрагивая sq?
ApplyDatasetFilter(ds, 'filter_name', 'temp_string', true);
Никаких дополнительных манипуляций не требуется? а то у меня object Error выбрасывается.
"Litvyakov Yegor Vladimirovich" написал:Никаких дополнительных манипуляций не требуется? а то у меня object Error выбрасывается.
Название фильтра и параметра в sq должны совпадать.
Например:
Премного благодарен!
+10 к пониманию того что делаю =)
Всем ещё раз спасибо!