You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica中无法调用Ask()方法,2021 R2如何获取数据视图?

问题解答:Acumatica中Ask()方法调用失败的原因与解决方案

错误核心原因

你尝试在**SOOrder实体对象(row)**上调用Ask()方法,但Ask()是PXGraph或PXDataView类的成员方法,实体对象本身并不包含这个方法——这和2021 R2版本没有关系,是调用对象的误用。

课程示例中ShipmentLines.Ask(...)能正常运行,是因为ShipmentLines是页面对应的PXDataView实例,而非实体对象。

正确实现方式

有两种常用的正确调用方式:

方式1:通过当前Graph实例调用

事件所在的类继承自PXGraph,直接用this指代当前Graph实例即可调用Ask():

protected virtual void _(Events.RowSelected<SOOrder> e)
{
    if (e.Row is null) return;
    this.Ask("Ask User something", MessageButtons.OK);
}

方式2:通过指定DataView调用

如果需要关联特定视图的上下文,可以先获取对应的PXDataView实例再调用(前提是Graph中已定义该视图):

// 假设当前Graph中已定义SOOrder的视图:public PXSelect<SOOrder> Orders;
protected virtual void _(Events.RowSelected<SOOrder> e)
{
    if (e.Row is null) return;
    Orders.Ask("Ask User something", MessageButtons.OK);
}

关于版本变更的说明

Acumatica 2021 R2并没有修改Ask()方法的调用规则,该方法始终属于PXGraph或PXDataView,实体对象无法直接调用,课程示例的逻辑是正确的,只是你误用了调用对象。

内容的提问来源于stack exchange,提问作者MarkJoel60

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:15:29