Как вставить / обновить значения в пользовательских полях сетки, используя кнопку загрузки - PullRequest
0 голосов
/ 09 июля 2019

На экране Physical Inventory Review я добавил несколько пользовательских полей в сетку, я использую файл Excel для импорта данных.Мой вопрос заключается в том, как я могу вставить / обновить значения в моих пользовательских полях.Я правильно выбрал отображение, но не смог вставить / обновить значения.Может кто-нибудь, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 15 июля 2019

Внутри графика INPIReview появляется метод, который обрабатывает импорт: PrepareImportRow

  • :( Не является виртуальным, поэтому вы не можете его переопределить
  • :) Я нашел хитростьэто может помочь

Использование события PXImportAttribute для получения контроля над импортированным объектом

public class INPIReviewExt : PXGraphExtension<INPIReview>
{
    public override void Initialize()
    {
        base.Initialize();

        PXImportAttribute piDetails = this.Base.PIDetail.Attributes.Find(a => a is PXImportAttribute) as PXImportAttribute;
        piDetails.RowImporting += PiDetailsRowImporting;
    }

    private void PiDetailsRowImporting(object sender, PXImportAttribute.RowImportingEventArgs e)
    {
        ......
    }
}

Внимание :

  • событиевызывается до PrepareImportRow.Вы должны вставить новую запись со всеми ключами в кэш.
  • Также немного усложнился тот факт, что Acumatica использует объект INBarCodeItem вместо INPIDetail.При небольшом внимании вы можете добиться успеха.
  • Если вы сгенерируете метод события с помощью TAB на VS, вы получите символ подчеркивания ("") в имени метода.Acumatica выдаст ошибку события подписчика события.Просто удалите «» из названия метода (как я сделал)
...