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