Acumatica:如何将警告更改为错误?
Acumatica: How do I change a warning to an error?
问题:
我们想将销售订单输入屏幕 SO301000 上的警告消息更改为错误消息。我们特别要更改的警告是当行项目数量将取可用数量负值时。目前它是黄色警告消息,但我们希望它是红色错误。
Current Warning Message
我是一名程序员,但对 Acumatica 不熟悉。我已经完成了课程,但没有涵盖这种特殊情况。
我希望能在正确的方向上找到一个开始的点。我会从那里拿走它。感谢任何指导。
尝试使用方法PXUIFieldAttribute.GetWarning
获取警告信息。然后使用PXUIFieldAttribute.SetError
设置错误。
示例:
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public void SOLine_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
const string targetWarning = "Target Warning Message";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (warning?.Contains(targetWarning) == true)
PXUIFieldAttribute.SetError<SOLine.orderQty>(sender, e.Row, warning);
else
PXUIFieldAttribute.SetError<SOLine.orderQty>(sender, e.Row, null);
}
}
试试这个:
public class Ext_SOOrderEntry : PXGraphExtension<SOOrderEntry>
{
public void SOLine_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e, PXRowUpdated del)
{
del?.Invoke(sender, e);
if (e.Row == null)
return;
const string targetWarning = "quantity available will go negative";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (!string.IsNullOrEmpty(warning)
&& warning.Contains(targetWarning))
{sender.RaiseExceptionHandling<SOLine.orderQty>(e.Row,
((SOLine)e.Row).OrderQty,
new PXSetPropertyException(warning,
PXErrorLevel.Error));
}
}
public void SOLine_Availability_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e, PXFieldSelecting del)
{
del?.Invoke(sender, e);
if (e.Row == null)
return;
const string targetWarning = "quantity available will go negative";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (!string.IsNullOrEmpty(warning)
&& warning.Contains(targetWarning))
{
sender.RaiseExceptionHandling<SOLine.orderQty>(e.Row,
((SOLine)e.Row).OrderQty,
new PXSetPropertyException(warning,
PXErrorLevel.Error));
}
}
}
问题: 我们想将销售订单输入屏幕 SO301000 上的警告消息更改为错误消息。我们特别要更改的警告是当行项目数量将取可用数量负值时。目前它是黄色警告消息,但我们希望它是红色错误。
Current Warning Message
我是一名程序员,但对 Acumatica 不熟悉。我已经完成了课程,但没有涵盖这种特殊情况。
我希望能在正确的方向上找到一个开始的点。我会从那里拿走它。感谢任何指导。
尝试使用方法PXUIFieldAttribute.GetWarning
获取警告信息。然后使用PXUIFieldAttribute.SetError
设置错误。
示例:
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public void SOLine_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
const string targetWarning = "Target Warning Message";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (warning?.Contains(targetWarning) == true)
PXUIFieldAttribute.SetError<SOLine.orderQty>(sender, e.Row, warning);
else
PXUIFieldAttribute.SetError<SOLine.orderQty>(sender, e.Row, null);
}
}
试试这个:
public class Ext_SOOrderEntry : PXGraphExtension<SOOrderEntry>
{
public void SOLine_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e, PXRowUpdated del)
{
del?.Invoke(sender, e);
if (e.Row == null)
return;
const string targetWarning = "quantity available will go negative";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (!string.IsNullOrEmpty(warning)
&& warning.Contains(targetWarning))
{sender.RaiseExceptionHandling<SOLine.orderQty>(e.Row,
((SOLine)e.Row).OrderQty,
new PXSetPropertyException(warning,
PXErrorLevel.Error));
}
}
public void SOLine_Availability_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e, PXFieldSelecting del)
{
del?.Invoke(sender, e);
if (e.Row == null)
return;
const string targetWarning = "quantity available will go negative";
string warning = PXUIFieldAttribute.GetWarning<SOLine.orderQty>(sender, e.Row);
if (!string.IsNullOrEmpty(warning)
&& warning.Contains(targetWarning))
{
sender.RaiseExceptionHandling<SOLine.orderQty>(e.Row,
((SOLine)e.Row).OrderQty,
new PXSetPropertyException(warning,
PXErrorLevel.Error));
}
}
}