在图表中查看的记录数

Record count for view in graph

我有一个简单的 master/detail 维护屏幕的图表。主数据显示在顶部表格中,详细信息显示在底部的网格中。可以删除详细信息行。

我想写一些代码在删除最后一条详细记录时删除主记录。当每一行被删除时,我还需要做其他处理,但我可以处理。我打算在 RowDeleted 处理程序中执行此操作。

我的问题是:我可以访问视图中活动行的计数而不必 运行 通过循环来计算它们吗?我无法从数据库中执行 select,因为它们尚未保存。我有下面图表的摘录。检测最后一个详细信息行已被删除的最简单方法是什么?

    public PXSelect<EDASN> ASN;

    public PXSelectJoin<EDASNShipment,
        LeftJoin<SOShipment, On<SOShipment.shipmentNbr, Equal<EDASNShipment.shipmentNbr>>,
        LeftJoin<SOOrderShipment, On<SOOrderShipment.shipmentNbr, Equal<EDASNShipment.shipmentNbr>>,
        LeftJoin<SOOrder, On<SOOrder.orderNbr, Equal<SOOrderShipment.orderNbr>>>>>,
        Where<EDASNShipment.aSNNbr, Equal<Current<EDASN.aSNNbr>>>> ASNShipment;

        protected virtual void EDASNShipment_RowDeleted(PXCache sender, PXRowDeletedEventArgs e)
    {
        EDASNShipment row = ASNShipment.Current;
        EDASN asn = this.ASN.Current;
        // need to determine if any shipments left on ASN
        // can I access a "count" of active rows from the ASNShipment view cache
    }

我已经解决了这个问题。我刚刚搜索了缓存,如果返回 null,则最后一批货已被删除。

    protected virtual void EDASNShipment_RowDeleted(PXCache sender, PXRowDeletedEventArgs e)
    {
        EDASNShipment row = ASNShipment.Current;
        EDASNShipment asnShipments = this.ASNShipment.Search<EDASNShipment.aSNNbr>(row.ASNNbr);
        // Remove ASN record if no more shipments
        if (asnShipments == null)
        {
            EDASN asn = this.ASN.Current;
            this.ASN.Delete(asn);
            this.Persist();
        }