Acumatica 如何从重定向页面刷新网格

Acumatica 如何从重定向页面刷新网格,acumatica,Acumatica,我有一个查询页面,其中标题是POLine表,网格是链接到POLine的新表。我不能将无界DAC用于过滤器,因为我想提供在现有记录上导航的选项 如果我直接打开页面并输入POLine信息,网格将正确刷新 我在“采购订单”页面中包含了一个按钮,该按钮具有打开我的查询页面的操作。在这种情况下,过滤器被正确加载,但网格在按下网格的刷新按钮之前不会显示记录 这是我的行动: public PXAction<POOrder> Reconcile; [PXUIField(DisplayName

我有一个查询页面,其中标题是POLine表,网格是链接到POLine的新表。我不能将无界DAC用于过滤器,因为我想提供在现有记录上导航的选项

如果我直接打开页面并输入POLine信息,网格将正确刷新

我在“采购订单”页面中包含了一个按钮,该按钮具有打开我的查询页面的操作。在这种情况下,过滤器被正确加载,但网格在按下网格的刷新按钮之前不会显示记录

这是我的行动:

public PXAction<POOrder> Reconcile;
    [PXUIField(DisplayName = "Reconcile", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
    [PXButton(CommitChanges = true, OnClosingPopup = PXSpecialButtonType.Cancel)]
    public virtual void reconcile()
        {
            POLine pOLineRow = Transactions.Current;

            if (pOLineRow == null)
            {
                return;
            }

            if (pOLineRow.OrderNbr != null)
            {
                PEPOOrderReconciliationMaint pEPOOrderReconciliationgraph = PXGraph.CreateInstance<PEPOOrderReconciliationMaint>();

                pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current = pEPOOrderReconciliationgraph.POOrderReconcileRecord.Search<POLine.orderType, POLine.orderNbr, POLine.lineNbr>(pOLineRow.OrderType, pOLineRow.OrderNbr, pOLineRow.LineNbr, pOLineRow.OrderType);


                if (pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current != null)
                {    
                    throw new PXRedirectRequiredException(pEPOOrderReconciliationgraph, false, "PORECONCILIATION") { Mode = PXBaseRedirectException.WindowMode.NewWindow };
                }
            }
        }
公共行动协调;
[PXUIField(DisplayName=“协调”,MapEnableRights=PXCacheRights.Select,MapViewRights=PXCacheRights.Select)]
[PXButton(CommitChanges=true,OnClosingPopup=PXSpecialButtonType.Cancel)]
公共虚拟空协调()
{
POLine pOLineRow=事务。当前;
if(pOLineRow==null)
{
返回;
}
if(pOLineRow.OrderNbr!=null)
{
PEPOOrderReconciliationMaint pEPOOrderReconciliationgraph=PXGraph.CreateInstance();
pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current=pEPOOrderReconciliationgraph.POOrderReconcileRecord.Search(pOLineRow.OrderType,pOLineRow.OrderNbr,pOLineRow.LineNbr,pOLineRow.OrderType);
if(pEPOOrderReconciliationgraph.poorderreconcililecord.Current!=null)
{    
抛出新的PXRedirectRequiredException(pEPOOrderReconciliationgraph,false,“PORECONCILIATION”){Mode=PXBaseRedirectException.WindowMode.NewWindow};
}
}
}
我以前没有在详细程度上使用过搜索方法,但我在PoreceipEntry中找到了此Acumatica参考:

    POLineR polineR = _graph.purchaseLinesUPD.Search<POLineR.orderType, POLineR.orderNbr, POLineR.lineNbr>
(itemsource.OrderType, itemsource.OrderNbr, itemsource.LineNbr);
POLineR POLineR=\u graph.purchaseLinesUPD.Search
(itemsource.OrderType、itemsource.OrderNbr、itemsource.LineNbr);
我还尝试使用PXSelect直接赋值:

    pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current = PXSelect<POLine,Where<POLine.orderType, 
Equal<Required<POLine.orderType>>,And<POLine.orderNbr, 
Equal<Required<POLine.orderNbr>>,And<POLine.lineNbr, 
Equal<Required<POLine.lineNbr>>>>>>
.Select(this, pOLineRow.OrderType, pOLineRow.OrderNbr, pOLineRow.LineNbr);
pEPOOrderReconciliationgraph.poorderreconcililecord.Current=PXSelect
.选择(此,pOLineRow.OrderType,pOLineRow.OrderNbr,pOLineRow.LineNbr);
但我认为这与错误无关。我认为它更倾向于ASPX中的刷新选项

这是我的ASPX代码:

  <%@ Page Language="C#" MasterPageFile="~/MasterPages/FormDetail.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="PR501000.aspx.cs" Inherits="Page_PR501000" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPages/FormDetail.master" %>

<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
    <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="Purchase.PEPOOrderReconciliationMaint" PrimaryView="POOrderReconcileRecord">
        <CallbackCommands>
            <px:PXDSCallbackCommand Name="SaveClose" Visible="false" PopupVisible="false"/>
            <px:PXDSCallbackCommand Name="Save" Visible="false" CommitChanges="true"/>
            <px:PXDSCallbackCommand Name="Cancel" Visible="true" CommitChanges="true"/>
            <px:PXDSCallbackCommand Name="Insert" Visible="false" CommitChanges="true"/>
            <px:PXDSCallbackCommand Name="CopyPaste" Visible="false" CommitChanges="true"/>
            <px:PXDSCallbackCommand Name="Delete" Visible="false" CommitChanges="true"/>
        </CallbackCommands>
    </px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
    <px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" 
        Width="100%" DataMember="POOrderReconcileRecord" TabIndex="4500">
        <Template>
            <px:PXLayoutRule runat="server" StartColumn="True">
            </px:PXLayoutRule>
            <px:PXDropDown ID="edOrderType" runat="server" DataField="OrderType">
            </px:PXDropDown>
            <px:PXSelector ID="edOrderNbr" runat="server" DataField="OrderNbr" AutoRefresh="True" CommitChanges="True">
            </px:PXSelector>
            <px:PXLayoutRule runat="server" StartColumn="True"/>
            <px:PXSelector ID="edLineNbr" runat="server" CommitChanges="True" DataField="LineNbr">
            </px:PXSelector>
        </Template>
    </px:PXFormView>
</asp:Content>
<asp:Content ID="cont3" ContentPlaceHolderID="phG" Runat="Server">
    <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Style="z-index: 100; margin-top: 0px;" 
        Width="100%" Height="150px" SkinID="Details" TabIndex="21000" KeepPosition="True" SyncPosition="True" AdjustPageSize="Manual">
        <Levels>
            <px:PXGridLevel DataKeyNames="OrderType,OrderNbr,LineNbr" DataMember="POReceiptLineRecord">
                <RowTemplate>
                    <px:PXSegmentMask ID="edInventoryID" runat="server" DataField="InventoryID" CommitChanges="True" Size="M" Width="200px">
                    </px:PXSegmentMask>
                    <px:PXNumberEdit ID="edReceiptQty" runat="server" AlreadyLocalized="False" DataField="ReceiptQty" CommitChanges="True" Size="S">
                    </px:PXNumberEdit>
                </RowTemplate>
                <Columns>
                    <px:PXGridColumn DataField="InventoryID">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="ReceiptQty" TextAlign="Right" Width="100px">
                    </px:PXGridColumn>
                </Columns>
            </px:PXGridLevel>
        </Levels>
        <AutoSize Container="Window" Enabled="True" MinHeight="150" />
    </px:PXGrid>
</asp:Content>

这是PEPOORDERRecommiliationMaint代码:

public class PEPOOrderReconciliationMaint : PXGraph<PEPOOrderReconciliationMaint, POLine>
{
    public PXSelect<POLine> POOrderReconcileRecord;

    public PXSelect<POReceiptLine,
                Where<
                    POReceiptLine.pOType, Equal<Current<POLine.orderType>>,
                    And<POReceiptLine.pONbr, Equal<Current<POLine.orderNbr>>,
                    And<POReceiptLine.pOLineNbr, Equal<Current<POLine.lineNbr>>>>>> POReceiptLineRecord;

    #region Cache Attached
    #region OrderType
    [PXDBString(2, IsFixed = true, IsKey = true)]
    [POOrderType.List()]
    [PXUIField(DisplayName = "Type", Enabled = true)]
    protected virtual void POLine_OrderType_CacheAttached(PXCache Sender)
    {
    }
    #endregion
    #region OrderNbr
    [PXDBString(15, IsUnicode = true, InputMask = "", IsKey = true)]
    [PXUIField(DisplayName = "Order Nbr.", Visible = true)]
    [PXSelector(typeof(Search<POOrder.orderNbr,
        Where<POOrder.orderType, Equal<Current<POLine.orderType>>>>))]
    protected virtual void POLine_OrderNbr_CacheAttached(PXCache Sender)
    {
    }
    #endregion
    #region LineNbr
    [PXDBInt(IsKey = true)]
    [PXUIField(DisplayName = "Line Nbr.", Visible = true, Enabled = true)]
    [PXSelector(typeof(Search<POLine.lineNbr,
            Where<POLine.orderNbr, Equal<Current<POLine.orderNbr>>,
            And<POLine.orderType, Equal<Current<POLine.orderType>>>>>))]
    protected virtual void POLine_LineNbr_CacheAttached(PXCache Sender)
    {
    }
    #endregion
    #endregion
}
公共类pepoorderrecommiliationmaint:PXGraph
{
公共PXSelect POORDERRECLILERECORD;
公共PXSelect>POReceiptLineRecord;
#区域缓存已连接
#区域订单类型
[PXDBString(2,IsFixed=true,IsKey=true)]
[POOrderType.List()]
[PXUIField(DisplayName=“Type”,Enabled=true)]
受保护的虚拟无效POLine\u OrderType\u CacheAttached(PXCache发送方)
{
}
#端区
#区域订单
[PXDBString(15,IsUnicode=true,InputMask=”,IsKey=true)]
[PXUIField(DisplayName=“Order Nbr.”,Visible=true)]
[PXSelector(typeof(Search))]
受保护的虚拟void POLine\u OrderNbr\u CacheAttached(PXCache发送方)
{
}
#端区
#区域丁腈橡胶
[PXDBInt(IsKey=true)]
[PXUIField(DisplayName=“Line Nbr.”,Visible=true,Enabled=true)]
[PXSelector(typeof(Search))]
受保护的虚拟void POLine\u LineNbr\u缓存已连接(PXCache发送方)
{
}
#端区
#端区
}

此类问题通常由不正确的Aspx标记引起。您能用自定义查询页面的Aspx标记更新您的问题吗?谢谢!我用Aspx代码更新了问题@RuslanDev我可以另外要求您用PepoorderRecciliationMaint源代码更新问题吗?@RuslanDev我用PepoorderRecciliationMaint图形代码更新了问题。ThanksI用PEPOOrderReconciliationMaint图形代码更新了问题。谢谢@RuslanDev