26.12.2022, 10:07 | #1 |
Участник
|
Как на классе добавить кнопку, которая откроет справочную систему.
Добрый день.
Нужно на классе добавить в методе dialog кнопку которая вызывала бы справку. Кто-то сталкивался с таким? |
|
26.12.2022, 10:24 | #2 |
Участник
|
В какой системе и какого вида справка?
|
|
26.12.2022, 10:28 | #3 |
Участник
|
ax 2012. Нужно вызвать контекстную справку по кнопке из диалога. Знаю, что можно нажать F1 и справка откроется, но нужно сделать через кнопку.
На форме такая кнопка есть. А для класса в методе dialog не знаю как сделать. Последний раз редактировалось DaniilT; 26.12.2022 в 10:31. |
|
26.12.2022, 10:47 | #4 |
Участник
|
Цитата:
На форме такая кнопка есть.
Dialog - это, в принципе, обычная форма. Поэтому вы можете добавить в runtime туда такую же кнопку, как на обычной форме, указав нужные свойства, переопределив, при необходимости, метод нажатия на кнопку и т.д. |
|
26.12.2022, 10:50 | #5 |
Участник
|
на форме ее нету. Я сделал аналогичную кнопку через CommandButton на форме. Но не знаю как добавить в dialog CommandButton. Не знаете как можно это сделать ? Мне нужно переопределить стандартную справку axapta
|
|
26.12.2022, 10:52 | #6 |
Участник
|
Может кто знает как через код вызвать справку ?
|
|
26.12.2022, 11:24 | #7 |
Участник
|
taskF1 в макросе Task
и соответственно можно вызвать task(#taskF1) на форме к примеру. Попробовать сейчас нет возможности но путь видится таким |
|
26.12.2022, 12:00 | #8 |
Участник
|
Можно пойти другим путем. Диалог заменить на обычную форму, пример class Tutorial_RunbaseForm
|
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
26.12.2022, 15:44 | #9 |
Участник
|
Я не совсем по теме. Некоторые наблюдения из практики
1. Пользователи информационные сообщения не читают. Никакие. Даже info. 2. На синхронизацию текста справки и изменение функционала никто не смотрит. Даже сам автор справки и/или модификации Это означает, что все то, что ты напишешь - это для консультантов и разработчиков. Пользователи это использовать не будут. К сожалению Очень быстро текст справки "разойдется" с реальным функционалом. Тут дело даже не в "других разработчиках". Ты сам не вспомнишь, что надо еще справку поправить при внесении изменений в код. Другими словами, написание контекстной справки занятие почти бесполезное. Если это делается по требованию руководства, то я бы просто сделал табличку с memo-полем и дополнительный объект на форме для отображения его содержимого. Делать реальную справку особого смысла нет. Ну, разве что, для самообразования. Но занятие это почти бесполезное PS: Стандартная форма диалога - это \Forms\Dialog. Никто не мешает прямо в нее добавить кнопку для контекстной справки. Сделать по умолчанию невидимой и написать "обвязку" для отображения и привязки к контексту
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Pandasama (2), LETTO (1). |
27.12.2022, 10:28 | #10 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Я не совсем по теме. Некоторые наблюдения из практики
1. Пользователи информационные сообщения не читают. Никакие. Даже info. 2. На синхронизацию текста справки и изменение функционала никто не смотрит. Даже сам автор справки и/или модификации Это означает, что все то, что ты напишешь - это для консультантов и разработчиков. Пользователи это использовать не будут. К сожалению Понятное дело, справкой в единственном экземпляре на какой-то специфической форме никто пользоваться не будет, но никто не запрещает "культивировать" данный подход (тернистый путь) - систематически добавлять и актуализировать (самое главное) данную опцию с развитием системы. Необходимо учитывать как существующую культуру в компании, так и грамотность среднестатистического пользователя. Безболезненным переход вряд ли будет. Последний раз редактировалось Товарищ ♂uatr; 27.12.2022 в 10:31. |
|
|
За это сообщение автора поблагодарили: Владимир Максимов (1). |
28.12.2022, 09:40 | #11 |
Участник
|
Цитата:
X++: public Object dialog() { ; dialog = super(); dialog.addMenuItemButton(MenuItemType::Action, menuitemactionstr(MyMenuItem)); return dialog; }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
28.12.2022, 15:14 | #12 |
Участник
|
Ну, напрямую FormControlType, который CommandButton в диалог наследника RunBase не добавить.
Если хочется попрограммировать, то в теме есть две наводки: Pustik написал как добавить MenuFunctionButton. axm2017 указал, что CommandButton всего лишь вызов определенного события. То есть:
Если хочется еще попрограммировать, то вообще можно создать специальный menu item для использования для вызова справки, который вызывает класс, состоящий только из метода main, в котором получаем formRun и на нем вызываем task. В этом случае не нужно ничего перехватывать. Если хочется много попрограммировать, то можно уже в своем наследнике RunBase на этапе перед отображением формы создать уже именно CommandButton по аналогии с безумным подходом в методе run класса InventJournalPrintForm_RU |
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
28.12.2022, 15:35 | #13 |
Участник
|
Ах. Не получится перехватить clicked.
В отличии от addField метод addMenuItemButton ничего не возвращает, поэтому просто так registerOverrideMethod не вызовешь, придется сначала искать нужный контрол. |
|
28.12.2022, 15:42 | #14 |
Участник
|
Поэтому классик из одного метода main:
X++: public static void main(Args _args) { Object caller; Integer commandId; ; if (_args && _args.caller() && _args.parm() != '' && str2IntOk(_args.parm())) { caller = _args.caller(); if (SysDictClass::isEqualOrSuperclass(classIdGet(caller), classNum(FormRun))) { try { commandId = str2int(_args.parm()); caller.task(commandId); } catch { exceptionTextFallThrough(); } } } } Естественно, в реальности нужно покрасивее делать, это только как идея. |
|
29.12.2022, 13:35 | #15 |
Участник
|
Цитата:
Впервые такое в моей практике. |
|
29.12.2022, 13:47 | #16 |
Участник
|
А в трешке даже в контекстном меню пункт был, чтобы расширенную справку по полю открывать.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|