Dynamics ax 4.0, открывающая форму без применения фильтра к текущей записи

StackOverflow https://stackoverflow.com/questions/1320414

  •  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() по мере необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top