当我在FieldVerifying或FieldUpdating事件处理程序中为一个查找字段的网格字段抛出错误时,它只显示红色而不是描述的查找值的ID。
错误抛出非常简单(见下文)。 TField是通过我的方法通用提供的IBqlField。
throw new PXSetPropertyException<TField>(Message.WarehouseDoesntMatchShipTo, PXErrorLevel.Error);
有没有办法让它以红色显示描述?
答案 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);
}