我有一个自定义处理页面。数据视图的主要DAC是 ARRegister ,但是有数据视图委托。视图和委托都将 ARCashSale 和 ARInvoice 加入主DAC,其原因是...某些记录是现金销售,其他记录是发票,逾期费用等。包括一些网格列,这些列显示特定于现金销售的数据。我在流程图中调用静态方法来分配流程委托。该方法运行无错误。
在数据视图委托中,我检查BQL返回的每个记录的doc类型。
如果是现金出售,那么yield return new PXResult<ARRegister, ARCashSale>(register, cashsale)
其他yield return new PXResult<ARRegister>(register)
委托的原因是检查其他一些使用标准BQL无法确定的条件。我注意到在用户选择“全部处理”后,现金销售专用列中的数据消失了。我无法确定原因。检查其他人是否经历过这种情况。
DataView
public PXProcessingJoin<ARRegister,
LeftJoin<cs.ARCashSale, On<ARRegister.docType, Equal<cs.ARCashSale.docType>, And<ARRegister.refNbr, Equal<cs.ARCashSale.refNbr>>>,
LeftJoin<ARInvoice, On<ARRegister.docType, Equal<ARInvoice.docType>, And<ARRegister.refNbr, Equal<ARInvoice.refNbr>>>,
InnerJoin<Customer,On<ARRegister.customerID,Equal<Customer.bAccountID>>>>>,
Where2<Where<ARRegister.released, Equal<True>, And<ARRegister.branchID, Equal<Current<AccessInfo.branchID>>>>,
And<Where<Customer.finChargeApply,Equal<True>>>>> Registers;
最佳答案
这是一个比较老的问题,但是我有一个类似的问题。
您需要向要处理的DAC添加一个名为“Selected”的布尔字段。
我解决它的方法是使用本地DAC。
您可以使其继承自ARRegister,而只需添加必填字段。
在我的情况下,我使用了从主DAC继承来的PXProjection,并添加了从合并的DAC中需要的字段。请注意,您需要将BqlField = typeof(DAC.field)
属性添加到这些字段的type属性中,以将它们映射到正确的DAC。
然后,在PXProcessing
视图中,您只需使用本地DAC。
另外,对BQL进行故障排除时,尝试“请求探查器”屏幕(SM205070)非常有用。