如何将第一个下拉值设置为网格中第一行的默认值,然后第二个值默认为网格中的第二行

时间:2018-06-11 07:22:43

标签: acumatica

在“产品”下拉列表中,有2个值,第一个值(Product)将默认为第一行,第二个值(Co-Product)将默认为第二行。

我在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 :(得分:0)

您很可能在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

相关问题