Здравствуйте.
Помогите решить один вопрос:
Существует отчет выводимый, с помощью фильтра, в таблицу Excel. Возможно ли добавить в контекстное меню, вызываемое правой кнопкой мыши, этот отчет отдельным пунктом.
Например:
1. заходим в список физ.лиц
2. на нужном клиенте нажимаем ПКМ
3. в контекстном меню выбираем пункт "Действия -> Отчеты"
4. выбираем нужный отчет
5. формируем таблицу Excel

Спасибо.

Нравится

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

Здравствуйте, Евгений!

1) Запустите …\bin\TSAdmin.exe, воспользовавшись поиском (Ctrl+F) в дереве сервисов найдите сервис wnd_ContactGridArea;
2) Откройте найденный сервис wnd_ContactGridArea на редактирование и в дереве компонентов на закладке «Не визуальные» создайте новый: ActionMenuItem;
3) Для отладки свойство IsVisible оставьте сначала True, затем перейдя на вкладку «События» двойным кликом по полю OnPrepare добавить новый обработчик;
4) Обработчик добавится в сервис src_ContactGridArea в функцию ActionMenuItemOnPrepare(),
function ActionMenuItemOnPrepare(ActionMenuItem)
5) По аналогии как это сделано с реестром записей, добавьте логику создания опций меню:
function ActionMenuItemOnPrepare(ActionMenuItem) {

BuildTaskActionMenu();

}

6) BuildTaskActionMenu() – функция, аналогичная BuildActionMenu() сервиса src_MailCommon.
В ней реализуйте логику формирования меню действий для вашей детали, с соответствующим функционалом.

Также, чтобы добавить переход на новый раздел, Вам необходимо в теле функции FillReferencesDictionary скрипта scr_WindowUtils добавить ссылку следующего вида:

RefDictionary.Add('ds_***', 'wnd_***Workspace');

Более подробно описано в приведенных темах на Community:
http://www.community.terrasoft.ru/forum/topic/2087
http://www.community.terrasoft.ru/forum/topic/1073
http://www.community.terrasoft.ua/forum/topic/7319

Дмитрий, спасибо за ответ.
Но пункты 5 и 6 поставили в тупик.

Евгений,

После создания ActionMenuItem, в теле функции обработки события OnExecute элемента ActionMenuItem нужно реализовать вывод отчета. В качестве примера используйте функцию ReportMenuItemExecute сервиса scr_ReportUtils.
А именно:

1. Если отчет строится для выделенных записей, пример вывода отчета Excel:

ProcessPrepareExcelReport(QueryID, WorkspaceWindow, SelectedIDs);

2. Если отчет строится для всех записей, пример вывода отчета Excel:

ProcessPrepareExcelReport(QueryID, WorkspaceWindow);

Где:
QueryID - идентификатор пользовательского запроса, на основании которого строится отчет.
WorkspaceWindow - объект окна раздела.
SelectedIDs - массив выделенных записей реестра.

Наталья, спасибо за ответ.
Но я после пункта 4 в ответе от Дмитрия не понимаю, что нужно сделать

Евгений, я привела полную реализацию, которую следует выполнить вместо действий, описанных в 4-м и далее пунктах ответа Дмитрия.

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

Добрый день

Контекстное меню в реестре "Перейти к": как сделать, чтобы ссылки на объекты открывались в новом окне?

Нравится

1 комментарий

Здравствуйте, Антон!
Переход осуществляется в скрипте "MoveToModuleScript" страницы "MainPage". Можно попробовать его модифицировать так, чтобы страница открывалась в новой вкладке.

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