[英]Dynamics ax 4.0, opening form without applying filter on current record
例如,我有VendTable网格的表单,其中包含CustAccount字段。
我想放置按钮,单击将打开CustTable表单,其中所有客户都可见。
如果我只是放置CustTable menuitem,然后单击它将打开CustTable表单,但在此表单中只显示一条记录 - 一条记录与vendTable.CustAccount中的AccountNum相同。
如何打开整个custTable? 是否有比创建按钮更好的解决方案,然后使用ClassFactory :: FormRunOnClient来显示表单?
PS。 我需要按钮,所以RMB - >“转到主表格”不计算在内。
问题是VendTable
记录作为参数应用于CustTable
表单,然后创建一个dynalink。 解决方案是避免争论。
覆盖CustTable
显示菜单项中clicked
方法,如下所示:
void clicked()
{
this.menufunction().run(new Args(element));
}
这仅使用调用者对象调用CustTable
表单,而不使用record参数。
我知道这是一个相当古老的问题,但如果有人来这里寻找答案,只需在对象QueryBuildDataSource上调用方法clearDynalinks()
。
例如,您创建了一个表单,它会自动过滤您的数据源,因为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并为其分配一个Action MenuItem。
使用MenuItems是一种最佳实践,因为它允许您使用AX安全性和配置框架。 您可以将类与MenuItem相关联,在类'main()方法中,您可以根据需要运行FormRunOnClient()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.