Acumatica.Настройка с использованием sender.SetValueExt - PullRequest
0 голосов
/ 17 мая 2018

Acumatica

Я пытаюсь создать настройку на экране отгрузки в Acumatica ERP.

Я создаю дополнительную настройку для копирования OpenOrderQty в Shipped Qty при выборе номера заказа.

Вот моя кодировка:

  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» является «свойством», но используется как «тип»

Проблема в отправителе. SetValueExt?

Thansk.

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете исправить эту ошибку, используя переменную ' s hippedQty' вместо ' S hippedQty'.Обратите внимание, что первая буква - это другой регистр, строчные и прописные.

Прописная переменная является свойством C # и используется, когда вы хотите получить значение или установить значение поля:

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

Переменная нижнего регистра используется, когда вы называете поле типом.Когда вы предоставляете универсальный тип (T) для SetValueExt, вы не устанавливаете или не получаете значение T. Вы говорите SetValueExt, что он должен использовать этот тип для установки значения поля line.ShippedQty:

SetValueExt<SOShipLine.shippedQty>

При ожидании типа (нижней касты) он часто упоминается как параметр поля в визуальной студии intellisense: enter image description here

...