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