Dynamics ax 4.0, открытие формы без применения фильтра к текущей записи - PullRequest
7 голосов
/ 24 августа 2009

Например, у меня есть форма с сеткой VendTable, в которой есть поле CustAccount.

Я хочу разместить кнопку, нажатие на которую откроет форму CustTable, где видны все клиенты.

Если я просто добавлю пункт меню CustTable, то при нажатии на него откроется форма CustTable, но в этой форме отображается только одна запись - та, которая имеет тот же AccountNum, что и в vendTable.CustAccount.

Как открыть весь custTable? Есть ли лучшее решение, чем создать кнопку, а затем использовать ClassFactory :: FormRunOnClient для отображения формы?

PS. Мне нужна кнопка, поэтому RMB -> «Перейти к форме главной таблицы» не считается.

Ответы [ 3 ]

6 голосов
/ 26 августа 2009

Проблема в том, что запись VendTable применяется в качестве аргумента к форме CustTable, которая затем создает ссылку. Решение состоит в том, чтобы избежать аргумента.

Переопределите метод clicked в пункте меню CustTable, например:

void clicked()
{
    this.menufunction().run(new Args(element));
}

Вызывает форму CustTable только с объектом вызывающей стороны и без аргумента записи.

3 голосов
/ 30 ноября 2011

Я знаю, что это довольно старый вопрос, но если кто-то приходит сюда в поисках ответа, просто вызовите метод 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

Надеюсь, это поможет ...

0 голосов
/ 25 августа 2009

У вас есть 2 варианта, вы можете либо создать кнопку и переопределить ее метод clicked (), либо используйте MenuItemButton и назначьте ему Action MenuItem.

Использование MenuItems является наилучшей практикой, поскольку оно позволяет использовать инфраструктуру безопасности и конфигурации AX. Вы можете связать класс с MenuItem, а в методе класса main () вы можете при необходимости запустить материал FormRunOnClient ().

...