|
24.12.2017, 15:51 | #1 |
Участник
|
D365. SysOperation Framework. кастомное имя диалогового окна
Dynamics 365 Upd10
Добрый день, может кто-то сможет помочь с таким вопросом. в гугле и на форуме ответа на вопрос не нашла. у меня есть фреймворк. Классы датаконтракт ,сервис. в сервисе следующий статический метод public static client void runFromForm(TmpFrmVirtual _tmpFrmVirtualLine) { SysOperationServiceController controller; TestDataContract dataContract; controller = new SysOperationServiceController(classStr(TestService), methodStr(TestService, processTest), SysOperationExecutionMode::Synchronous); dataContract = controller.getDataContractObject('_TestDataContract'); dataContract.parmTmpFrmVirtualLines(_tmpFrmVirtualLine); controller.startOperation(); } я вызываю этот метод в методе кликед он менюитема формы, и у меня запускается сервис с диалоговым окном с полями из класса дата контаракта. Как сделать чтобы в заголовке диалого окна не печаталcя текст из название класса сервиса и метода ентрипоинта , т.е. следующий 'TestService. processTest ', а какой то кастомный текст. |
|
24.12.2017, 20:12 | #2 |
Administrator
|
Ноги растут из класса SysOperationServiceController, от которого Вы вероятно отнаследовались.
В нем есть метод defaultCaption(), в котором и прописывается название класса и метод, который Вы видите. Если же залезть повыше, в класс SysOperationController, то Вы увидите, что есть метод parmDialogCaption, в котором Caption (т.е. заголовок окна) вычисляется из метки вызываемого пункта меню. И если не получилось оттуда вытащить значение - то срабатывает метод defaultCaption, который как раз перекрыт классом пониже. Соответственно, Вы можете в своем классе (наследнике SysOperationController) перекрыть метод parmDialogCaption и написать там все, что пожелаете.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 24.12.2017 в 22:19. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Aquarius (1). |
25.12.2017, 17:25 | #3 |
Участник
|
Большое спасибо ,сделала по вашему совету ,заработало! я использовала изначально стандартный контроллер, но сделала наследника ,где перекрыла указанный вами метод.
а не подскажите,можно ли убрать в этом диалоговом окне вкладку Run in the BackGround с стандартными параметрами . UPd. нашла ответ на свой второй вопрос - нашла метод public boolean canGoBatch() в классе SysOperationController, в наследнике перекрыла его. Последний раз редактировалось Aquarius; 25.12.2017 в 17:39. |
|
|
|