我有VendTable网格例如,其具有CustAccount字段形式。

我要放置按钮,点击它会打开的CustTable形式,其中所有的客户都是可见的。

如果我只是把CustTable表菜单项,然后点击它会打开的CustTable形式,但这种形式只显示一个记录 - 一个具有相同AccountNum在vendTable.CustAccount。

如何打开整个的CustTable?是否有更好的解决方案不是创建按钮,然后使用::的ClassFactory FormRunOnClient显示形式?

PS。我需要的按钮,所以人民币 - >“转到主表窗体”不算数

有帮助吗?

解决方案

在的问题是,VendTable记录被作为参数传递给CustTable形式,其然后创建一个dynalink施加。该解决方案是避免参数。

重写clicked方法在像这样的显示CustTable菜单项:

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

此呼叫与主叫用户的CustTable形式仅对象和不具有记录参数。

其他提示

我知道这是一个相当古老的问题,但如果有人来这里寻找答案,只需调用对象的方法QueryBuildDataSource clearDynalinks()

例如,你已经创造了一个表格,并自动过滤您的数据源,因为Dynalinks的该动态自动创建,则通过将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个选项,则可以创建一个按钮并覆盖其被点击()方法,或 使用MenuItemButton并分配行动菜单项给它。

使用的MenuItems是一个最佳实践,因为它允许你使用AX安全和配置框架。您可以在类的菜单项,并在类的main()方法,可以根据需要运行FormRunOnClient()的东西联系起来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top