题
我有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()的东西联系起来。
不隶属于 StackOverflow