Forms 如何获取表单中记录的当前Id

Forms 如何获取表单中记录的当前Id,forms,axapta,x++,Forms,Axapta,X++,我是ax新手,有个问题 我有一个带有不同控件(Id、名称等)的表单和一个按钮 点击按钮将打开一个新类进行计算 现在我想获取当前id,从表单到类 单击方法: void clicked() { NewClass newclass = new NewClass("Id123"); newclass.method(); } 字符串“id123”应该是我选择的表单中的当前id 如果我使用选择表…,我将获得任何id,而不是表单中所选的id。 该类有一个带参数的parm方法。要计算的类通常有

我是ax新手,有个问题

我有一个带有不同控件(Id、名称等)的表单和一个按钮

点击按钮将打开一个新类进行计算

现在我想获取当前id,从表单到类

单击方法:

void clicked()
{
    NewClass newclass = new NewClass("Id123");
    newclass.method();
}
字符串“id123”应该是我选择的表单中的当前id

如果我使用
选择表…
,我将获得任何id,而不是表单中所选的id。
该类有一个带参数的parm方法。

要计算的类通常有一个
main
方法,既可以使其成为(操作)菜单项的目标,也可以设置要执行的类对象

main
方法获取一个对象,然后通常检查:

static void main(Args args)
{
    SalesTable salesTable = args.record();
    SalesTableCalc calc = new SalesTableCalc();
    calc.getLast();
    calc.parmOrderRecId(salesTable.RecId);
    if (calc.prompt())
        calc.run();
}
在这种情况下,它假定
args.record
SalesTable
记录,创建类的
calc
实例,使用id调用适当的parm方法,最后使用
提示符和
运行
调用
calc
对象

最后一点是如何初始化
Args
对象的
record
属性:

  • 在带有
    SalesTable
    datasource的表单中,这很简单,只需在表单菜单项控件中提及正确的datasource即可。也可以通过周围的容器对象将datasource属性设置为
    SalesTable
    来正确默认
  • 如果没有
    SalesTable
    datasource,则必须在调用
    this.menuffunction().run(Args)之前构造Args对象以供使用