7

例如,我有带有 VendTable 网格的表格,其中有 CustAccount 字段。

我想放置按钮,单击它将打开所有客户都可见的 CustTable 表单。

如果我只是放置 CustTable menuitem,然后单击它将打开 CustTable 表单,但在此表单中只显示一条记录 - 一条与 vendTable.CustAccount 中的 AccountNum 相同。

如何打开整个 custTable?有没有比创建按钮更好的解决方案,然后使用 ClassFactory::FormRunOnClient 显示表单?

PS。我需要按钮,所以 RMB->"Go to the Main Table Form" 不算。

4

3 回答 3

6

问题是该VendTable记录被用作CustTable表单的参数,然后创建一个动态链接。解决办法是避免争论。

覆盖显示菜单项clicked中的方法,如下所示:CustTable

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

CustTable仅使用调用者对象调用表单,而没有记录参数。

于 2009-08-26T09:28:23.237 回答
4

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

例如,您创建了一个表单,并且由于 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

希望能帮助到你...

于 2011-11-30T17:08:24.920 回答
0

您有 2 个选项,您可以创建一个按钮并覆盖其 clicked() 方法,或者使用 MenuItemButton 并为其分配一个 Action MenuItem。

使用 MenuItems 是最佳实践,因为它允许您使用 AX 安全和配置框架。您可以将一个类与 MenuItem 相关联,并且在该类的 main() 方法中,您可以根据需要运行 FormRunOnClient() 内容。

于 2009-08-25T09:46:06.490 回答