Иногда при разработке какой-то логики хочется что-то поменять в коде и сразу же посмотреть на его работоспособность. Обычная последовательность действий при этом: закрыть окно программы TSClient, запустить программу заново, ввести логин и пароль, открыть нужную карточку. И так каждый раз.

Чтобы ускорить процесс, достаточно в код скрипта окна добавить функцию Main, где открыть это окно:

function Main() {
        // указать USI сервиса окна
        var wnd = Services.GetNewItemByUSI('wnd_MyWindow');
        wnd.Prepare();
        wnd.Show();
}

Открываем в TSAdmin скрипт окна, нажимаем клавишу F9 и это окно тут же открывается.

Предостережение первое: некоторые особенности поведения в TSClient и TSAdmin отличаются, поэтому окончательную проверку работоспособности лучше делать обычным образом.

Предостережение второе: изменённые сервисы надо сохранить. Если произойдёт сбой недоделанного ещё пока скрипта, может рухнуть TSAdmin и всё несохранённое пропадёт. То же произойдёт, если начать отладку и закрыть Visual Studio.

Нравится

Поделиться

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

Уважаемые коллеги!
Кто сталкивался с такой задачей:

1. написать в SQL табличную функцию
2. вызвать ее из террасофта, предварительно отправив нужные параметры
3. результат функции (табличка) загнать в Datase (Memory, на пример) для дальнейшего отображения в реестре?

Если где-то есть на форуме - укажите.
Версия 3.3.1

Нравится

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

Использовал это для ХП, а вот для табличных функций пока не пробовал... Не уверен, что так получиться сделать, как планировал (для моей конкретной задачи)... буду искать альтернативное решение...

Саша, спасибо, что напомнил о данном материале ;)

--
www.it-sfera.com.ua

"Виталий Ковалишин aka samael" написал:Использовал это для ХП, а вот для табличных функций пока не пробовал...

Объясни, пожалуйста, что такое табличные функции.

Уже нашел :)

Табличная функция - это хранимая функция, которая возвращает PL/SQL - коллекцию как результирующий набор

Начиная с 3.1.0 я использую такие в Oracle, например: tsp_GetLoginInfo.
Но это для Oracle.

Не знал что такое же есть и для MSSQL.

Понимаешь, я хотел написать функцию, которая динамически строит таблицу для выборки по входящим параметрам. Потом все это дело нужно отображать в реестре (реестр тоже может накладывать свои фильтры)...
Ладно, уже найден обходной вариант! :)

--
www.it-sfera.com.ua

"Виталий Ковалишин aka samael" написал:Ладно, уже найден обходной вариант! :)

Интересно какой?

:) Не скажу... Все штатными методами ТС - CustomSQL...

А вот о табличных функциях:
Table-Valued User-Defined Functions
User-defined functions that return a table data type can be powerful alternatives to views

http://msdn.microsoft.com/en-us/library/ms191165.aspx

--
www.it-sfera.com.ua

Виталий, есть еще один вариант как сделать так, чтобы сервис SelectQuery мог вернуть результат в виде набора данных из хранимки из функции. Но при этом нельзя будет ни сортировать ни фильтровать стандартными средствами.

Какой ?
Зарегистрировать ее как сервис таблицы?

--
www.it-sfera.com.ua

Ну это немного напоминает шаманство и как до этого дошли секрет:)
Я прикрепил сервисы для 3.3.1 Загрузите и уведите как это реализовано.

Это будет работать и для других версий.

Кстати для хранимок немного по другому придется делать, но принцип тот же.

Жесть :)
Но, обходной вариант сработал нормально... а вот на будущее - спасибо большое и поклон до земли! :biggrin:

--
www.it-sfera.com.ua

+1 Александр, спасибо:smile:

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