我有一个自定义处理页面。数据视图的主要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)非常有用。

09-25 19:49