Как установить значение первого раскрывающегося списка по умолчанию для первой строки в сетке, а затем значение по умолчанию по умолчанию для второй строки в сетке - PullRequest
0 голосов
/ 11 июня 2018

В раскрывающемся списке «Продукт» есть 2 значения: первое значение (продукт) будет использоваться по умолчанию только для первой строки, а второе значение (совместный продукт) будет использоваться по умолчанию из второй строки.

Я пробовал этов событии FieldDefaulting

    protected void TSFormulaProdsNCoProds_Product_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
    {
        var row = (TSFormulaProdsNCoProds)e.Row;
        if (row == null)
            return;
        if (TSFormProdsNCoProds.Select().Count == 0)
        {
            e.NewValue = "P";
        }
        else
        {
            e.NewValue = "C";
        }
    }

Может кто-нибудь дать мне предложение?

1 Ответ

0 голосов
/ 12 июня 2018

Скорее всего, атрибут PXDefault оформлен на уровне DAC.В этом случае вам нужно установить флаг Cancel, чтобы предотвратить выполнение обработчиков событий FieldDefaulting, определенных в атрибутах.

Пример: -

protected void TSFormulaProdsNCoProds_Product_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
{
    var row = (TSFormulaProdsNCoProds)e.Row;
    if (row == null)
        return;

    e.NewValue = (TSFormProdsNCoProds.Select().Count == 0) ? "P" : "C";
    e.Cancel = true;
}

Это объясняется в Example 5.2: Inserting a Default Detail Data Record из T200 Acumatica Framework Fundamental course.

T200-Example 5.2

...