首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Acumatica PXCheckUnique -如何在错误消息上显示重复订单Nbr

Acumatica PXCheckUnique是Acumatica ERP系统中的一个特性,用于在保存数据时检查唯一性约束。当使用PXCheckUnique特性时,如果存在重复的订单号(Nbr),系统会自动阻止保存,并显示错误消息。

要在错误消息上显示重复订单号(Nbr),可以按照以下步骤进行操作:

  1. 在Acumatica中打开相关的订单页面,例如销售订单页面。
  2. 找到保存按钮的事件处理程序,通常命名为"Persist"或"Save"。
  3. 在事件处理程序中,使用PXSelect语句查询数据库,检查是否存在具有相同订单号(Nbr)的订单记录。
  4. 如果存在重复的订单记录,使用PXUIFieldAttribute.SetError方法将错误消息设置为相关字段(通常是订单号字段)。
  5. 错误消息可以是自定义的文本,例如"订单号重复,请输入唯一的订单号"。
  6. 如果需要,可以将错误消息与其他验证规则结合使用,例如检查订单号的格式是否正确。

以下是一个示例代码片段,演示如何在错误消息上显示重复订单号(Nbr):

代码语言:csharp
复制
public PXAction<SOOrder> Persist;
[PXButton]
[PXUIField(DisplayName = "Save", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Update)]
protected virtual IEnumerable persist(PXAdapter adapter)
{
    // 检查订单号是否重复
    SOOrder order = Base.Document.Current;
    SOOrder duplicateOrder = PXSelect<SOOrder,
        Where<SOOrder.orderNbr, Equal<Required<SOOrder.orderNbr>>,
        And<SOOrder.orderType, Equal<Required<SOOrder.orderType>>>>>
        .Select(Base, order.OrderNbr, order.OrderType);

    // 如果存在重复订单记录,设置错误消息
    if (duplicateOrder != null && duplicateOrder.OrderNbr != order.OrderNbr)
    {
        PXUIFieldAttribute.SetError<SOOrder.orderNbr>(Base.Document.Cache, order, "订单号重复,请输入唯一的订单号");
    }

    return Base.Persist(adapter);
}

在上述示例中,我们使用了PXSelect语句查询数据库,检查是否存在具有相同订单号(Nbr)的订单记录。如果存在重复订单记录,我们使用PXUIFieldAttribute.SetError方法将错误消息设置为订单号字段(SOOrder.orderNbr)。在这种情况下,错误消息为"订单号重复,请输入唯一的订单号"。

请注意,上述示例仅演示了如何在错误消息上显示重复订单号(Nbr),实际应用中可能需要根据具体需求进行调整和扩展。

对于Acumatica ERP系统中的其他特性和功能,您可以参考腾讯云的Acumatica产品介绍页面(https://cloud.tencent.com/product/acumatica)获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券