在查找字段上抛出PXSetPropertyException仅显示ID

时间:2017-10-31 17:30:51

标签: acumatica

当我在FieldVerifying或FieldUpdating事件处理程序中为一个查找字段的网格字段抛出错误时,它只显示红色而不是描述的查找值的ID。

Error field

错误抛出非常简单(见下文)。 TField是通过我的方法通用提供的IBqlField。

throw new PXSetPropertyException<TField>(Message.WarehouseDoesntMatchShipTo, PXErrorLevel.Error);

有没有办法让它以红色显示描述?

1 个答案:

答案 0 :(得分:1)

尝试在抛出异常之前将新值设置为仓库CD字符串值。在您的示例中需要查询INSite。

如果您想要旧仓库CD值(用户尝试更改前的值),只需将PXSelect中使用的值更改为row.SiteID

protected virtual void SOLine_SiteID_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
{
    var row = (SOLine)e.Row;
    if (row == null)
    {
        return;
    }

    INSite inSite = PXSelect<INSite, Where<INSite.siteID, Equal<Required<INSite.siteID>>>>.Select(this, e.NewValue);
    e.NewValue = inSite?.SiteCD;
    throw new PXSetPropertyException($"Invalid Warehouse {inSite?.SiteCD}", PXErrorLevel.Error);
}