SO301000页面对话框网格无法添加多条订单记录问题
问题:SO301000页面对话框无法展示多条客户历史订单
已实现功能
- 可拉取当前客户的所有订单
- 点击操作按钮可正常打开/关闭对话框
- 可将单条订单添加至对话框内的网格
未解决问题
- 无法向网格中添加多条订单,手动添加也无效果,且网格始终显示同一条订单(仅需展示订单信息,无需编辑)
相关代码
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry> { public PXFilter<MSCustomerOrderDac> MSCustomerViewForm; public PXFilter<MSCustomerOrderDac> MSCustomerOrderViews; //Issue. public PXAction<SOOrder> ViewCustomerOrders; [PXUIField(DisplayName = "View Customer", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)] [PXButton(Category = "Other")] [PXUIEnabled(typeof(Where<SOOrder.customerID.IsNotNull>))] protected virtual IEnumerable viewCustomerOrders(PXAdapter adapter) { MSCustomerOrderViews.AllowInsert=true; PXSelectBase<SOOrder> orders = new PXSelectReadonly<SOOrder, Where<SOOrder.customerID, Equal<Current<SOOrder.customerID>>>>(Base); int linenumber = 0; foreach (SOOrder order in orders.Select()) { MSCustomerOrderDac newOrder = new MSCustomerOrderDac(); newOrder.OrderNumber = order.OrderNbr; newOrder.LineNbr = linenumber++; newOrder = MSCustomerOrderViews.Insert(newOrder); } if (MSCustomerViewForm.AskExt(true) != WebDialogResult.OK) //need this to show the form {} return adapter.Get(); } [PXVirtual] [Serializable] public class MSCustomerOrderDac : IBqlTable { #region OrderNumber [PXString] [PXUIField(DisplayName = "Order Number")] public virtual String OrderNumber { get; set; } public abstract class orderNumber : PX.Data.BQL.BqlString.Field<orderNumber> { } #endregion [PXInt(IsKey = true)] public virtual Int32? LineNbr { get; set; } public abstract class lineNbr : PX.Data.BQL.BqlInt.Field<lineNbr> { } } }
已尝试跳出循环手动添加多条记录,但无效果;也曾参考过社区相关帖子,但问题场景不同。
内容的提问来源于stack exchange,提问作者Shoonly
相关产品推荐
相关产品推荐

