【问题标题】:Acumatica. Customization using sender.SetValueExtAcumatica。使用 sender.SetValueExt 进行自定义
【发布时间】:2018-05-17 09:18:10
【问题描述】:

我正在尝试在 Acumatica ERP 的发货屏幕上创建自定义。

当我们选择订单号时,我创建了额外的自定义以将 OpenOrderQty 复制到 ShippedQty

这是我的代码:

  public void SOShipLine_RowInserting(PXCache sender, PXRowInsertingEventArgs e, PXRowInserting baseMethod)
  {
      if (baseMethod != null)
          baseMethod(sender, e);

      SOShipLine line = e.Row as SOShipLine;

      if (line == null) return; // just in case
  
      if (line.ShippedQty == 0)
      {

        sender.SetValueExt<SOShipLine.ShippedQty>(line, line.OpenOrderQty);
      
      }
  }         

但是,当我发布自定义时,出现错误:

\App_RuntimeCode\SOShipmentEntry.cs(85):错误 CS0118: 'PX.Objects.SO.SOShipLine.ShippedQty' 是一个 'property' 但使用起来像 一个“类型”

sender.SetValueExt 有问题吗?

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    您可以通过使用“shippedQty”变量而不是“ShippedQty”来修复该错误。注意第一个字母是不同的大小写,小写和大写。

    大写变量是一个 C# 属性,用于获取值或设置字段值时使用:

    line.ShippedQty = 1M;
    var myQuantity = line.ShippedQty;
    

    当您将字段称为类型时,使用小写变量。当您提供 SetValueExt 的通用类型 (T) 时,您并没有设置或获取 T 的值。您是在告诉 SetValueExt 它应该使用该类型来设置 line.ShippedQty 字段的值:

    SetValueExt<SOShipLine.shippedQty>
    

    当期望一个类型(lowercaste)时,它通常被称为 Visual Studio intellisense 中的 Field 参数:

    【讨论】:

    • 亲爱的 HB_Acumatica。问题解决了。根据您的描述小写和大写: sender.SetValueExt(line, line.OpenOrderQty);我将 ShippedQty 更改为 shippingQty 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 2020-06-29
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多