Программное навешивание sql фильтров на SelectQuery.

¡Hola!

Господа, в своём скрипте (scr_Script) имею

var sq = Services.GetNewItemByUSI('sq_SelectQuery');

sq_SelectQuery имеет вид
SELECT
    [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:
[tbl_Second].[Name] = 'Some string'

со строкой определённой в скрипте (обработчике)
Вывести результат и сбросить фильтр до следующего возникновения события с иной строкой.

Прошу Ваших наставлений по поводу данного вопроса, так как моих познаний TerraSoft не достаточно, а документация SDK довольно бедная.

С уважением
Ваш коллега.

Нравится

7 комментариев

Добавляете в дизайнере в 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 выбрасывается.

А всё заполнено правильно в sq и ds?

"Litvyakov Yegor Vladimirovich" написал:Никаких дополнительных манипуляций не требуется? а то у меня object Error выбрасывается.

Название фильтра и параметра в sq должны совпадать.
Например:
/system/files/sq.png

Премного благодарен!
+10 к пониманию того что делаю =)
Всем ещё раз спасибо!

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