繁体   English   中英

动态轴4.0,打开表格而不对当前记录应用过滤器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM