【问题标题】:How do I access custom fields in Acumatica C#如何访问 Acumatica C# 中的自定义字段
【发布时间】:2018-07-17 02:55:28
【问题描述】:

我正在尝试更新 GLTran 中的自定义字段。在“帐户详细信息”屏幕上,我有一个按钮,单击该按钮应更新每个选定交易的自定义字段。我无法访问自定义字段以对其进行更新。这是我最近的代码迭代:

public class AccountByPeriodEnq_Extension:PXGraphExtension<AccountByPeriodEnq>
{
    public PXAction<AccountByPeriodFilter> recon;

    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Reconcile")]
    protected void Recon()
    {
        PXCache gltran = Base.Caches[typeof(GLTran)];
        foreach (GLTran tran in gltran.Updated)
        {
            var GLTranEx = tran.GetExtension<GLTranExt>(); 
            //                                 ^^^^
            //This is giving "The type or namespace name "GLTranExt" could not be found

            GLTranEx.UsrRecon = true;                
        }
    }
}

请放轻松,因为这是我第一次尝试 Acumatica 自定义。

【问题讨论】:

  • 添加 using NAMESPACE; 其中 NAMESPACE 是 GLTranExt dac 扩展的命名空间
  • 命名空间是一样的。在我的 VS 环境中必须有一些东西。我重新启动了我的服务器以安装一些更新,当它重新启动时,它开始在 Acumatica 中工作,即使我仍然在 VS 中收到错误消息。当我将调试器附加到 IIS 时,它会毫无问题地通过它。
  • VS 中的错误可能是由于无法通过智能感知静态分析检查的运行时类型,通常发生在 DAC 扩展上。您可以将它们作为非错误丢弃。

标签: c# acumatica


【解决方案1】:

乍一看,似乎无法从 AccountByPeriodEnq_Extension 类型的名称空间访问 GLTranExt 类型的名称空间。您可以将这两种类型放在同一个命名空间中,或者使用“使用”指令声明命名空间。

再看一遍,可能是因为我在您使用的某些地方看到的命名不匹配:

GLTranEx

在其他方面:

GLTranExt

使用自定义项目编辑器时,您可以使用 VIEW SOURCE 按钮检查 DAC 扩展的命名空间:

如果您将 DAC 扩展作为代码文件,命名空间在源代码中:

namespace PX.Objects.GL
{
  public class GLTranExt : PXCacheExtension<PX.Objects.GL.GLTran>
  {
  }
}

正如您所见,GLTran 的默认扩展名进入命名空间 PX.Objects.GL 在您的代码中,我希望该命名空间上有一个“使用”指令:

using PX.Objects.GL;

public class AccountByPeriodEnq_Extension:PXGraphExtension<AccountByPeriodEnq>
{
}

或者把命名空间前缀放在类型上:

PX.Objects.GL.GLTranExt GLTranEx = tran.GetExtension<PX.Objects.GL.GLTranExt>(); 

【讨论】:

  • 我重新启动了我的服务器,它现在似乎可以工作了。我的新问题是它没有节省价值。我选择行,单击我的按钮,然后行更新,但如果我离开屏幕并返回,值就消失了。
  • 您能否提供有关 DAC 扩展的更多信息?要检查的最明显的事情是 UsrRecon 的类型是否为 PXDBBool 而不是 PXBool。带有 DB 的类型被持久化到数据库,而没有它的类型是未绑定的(在内存中,非持久化)。
  • 没错,就是PXDBBool
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多