Dynamics ax 4.0, открывающая форму без применения фильтра к текущей записи
-
19-09-2019 - |
Вопрос
Например, у меня есть форма с сеткой VendTable, в которой есть поле CustAccount.
Я хочу разместить кнопку, нажатие на которую откроет форму CustTable, где будут видны все клиенты.
Если я просто добавлю CustTable menuitem, то при нажатии на него откроется форма CustTable, но в этой форме отображается только одна запись - та, которая имеет тот же номер учетной записи, что и в vendTable.Счет за заказ.
Как открыть всю пользовательскую таблицу целиком?Есть ли лучшее решение, чем создать кнопку, а затем использовать ClassFactory::FormRunOnClient для отображения формы?
PS.Мне нужна кнопка, поэтому RMB-> "Перейти к основной форме таблицы" не считается.
Решение
Проблема в том, что VendTable
запись применяется в качестве аргумента CustTable
form, которая затем создает dynalink.Решение состоит в том, чтобы избежать спора.
Переопределить clicked
метод в CustTable
отобразить пункт меню следующим образом:
void clicked()
{
this.menufunction().run(new Args(element));
}
Это вызывает CustTable
form только с вызывающим объектом и без аргумента записи.
Другие советы
Я знаю, что это довольно старый вопрос, но если кто-то придет сюда в поисках ответа, просто вызовите метод clearDynalinks()
в объекте QueryBuildDataSource.
Например, вы создали форму, и она автоматически фильтрует ваш источник данных из-за ссылок Dynalinks, которые Dynamics создает автоматически. Вы решаете эту проблему, помещая следующий код внутри init()
метод в вашей форме Источник данных:
QueryBuildDatasource qbds;
;
qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();
// Next line is optional, it clears initial ranges
qbds.clearRanges();
// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges
Надеюсь, поможет...
У вас есть 2 варианта, вы можете либо создать кнопку и переопределить ее метод clicked(), либо использовать MenuItemButton и назначить ей действие MenuItem.
Использование MenuItems является лучшей практикой, поскольку оно позволяет вам использовать платформу AX security & configuration framework.Вы можете связать класс с MenuItem, и в методе main() класса вы можете запускать FormRunOnClient() по мере необходимости.