gpt4 book ai didi

acumatica - 如何在 Acumatica 中创建主从网格?

转载 作者:行者123 更新时间:2023-12-01 11:17:13 28 4
gpt4 key购买 nike

我正在一个自定义页面上工作,通过按层次顺序显示表数据来可视化父记录和子记录之间的关系。

我的 BLC 中有 2 个数据 View ,我想将其用作两个 的数据源。 PXGrids 以主/明细格式显示数据。在主网格中选择记录时,所有相关的子条目都应显示在详细信息网格中。

我应该如何申报我的 2 PXGrids 在aspx中完成这个任务?

最佳答案

例如,如果某些 BLC 包含 分类 数据 View 和 相关产品 数据 View ,您将指定 分类 view 成为主网格和 的数据源产品展示 view 成为详细信息网格的数据源。在主网格中选择一个类别时,与该类别关联的所有产品都将显示在产品数据 View 的详细信息网格中。

public class ProductCategories : PXGraph<ProductCategories>
{
#region Actions
public PXSave<Category> Save;
public PXCancel<Category> Cancel;
#endregion

#region Data Members
public PXSelect<Category> Categories;

public PXSelect<CategoryProduct,
Where<CategoryProduct.categoryID,
Equal<Current<Category.categoryID>>>> CategoryProducts;
#endregion

#region Event Handlers
protected virtual void Category_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
this.CategoryProducts.Cache.AllowInsert = e.Row != null;
}
#endregion
}

如上面的代码片段所示,详细 View 通过 被主 View 引用。当前 BQL 运算符。另外,请注意 已选择行 定义的事件处理程序分类 DAC 禁用 插入 如果主网格中没有单个记录,则单击详细信息网格上的按钮。

下一步是配置主从 PXGrids 在 Aspx 中:
  • 用于主网格集 同步位置 属性(property)到 ,然后定义 自动回拨 OnChangeCommand 属性如下相应地刷新细节网格每次将在主网格中选择不同的记录或根本没有记录时:
    <px:PXGrid ID="masterGrid" runat="server" DataSourceID="ds" SkinID="Details"
    SyncPosition="True" Caption="Categories" CaptionVisible="True" Width="100%">
    <AutoCallBack Command="Refresh" Target="detailGrid" />
    <OnChangeCommand Command="Refresh" Target="detailGrid" />
    ...
    </px:PXGrid>
  • 对于细节网格,只需要定义一个 刷新 CallbackCommand 强制主网格与详细信息网格一起选择数据。通过这样做,框架将提高先前定义的 Category_RowSelected 事件处理程序和禁用 插入 在主网格中没有记录的情况下,详细信息网格上的按钮:
    <px:PXGrid ID="detailGrid" runat="server" DataSourceID="ds" SkinID="Details"
    Caption="Products" CaptionVisible="True" Width="100%">
    <CallbackCommands>
    <Refresh SelectControlsIDs="masterGrid" />
    </CallbackCommands>
    ...
    </px:PXGrid>

  • 为了更好的用户体验,建议放置master-detail PXGrids PXSplitContainer 如下面的代码片段所示:
    <px:PXSplitContainer runat="server" ID="sp" PositionInPercent="true" SplitterPosition="50"
    SkinID="Horizontal" Orientation="Horizontal" Panel1MinSize="250" Panel2MinSize="250">
    <AutoSize Enabled="true" Container="Window" />
    <Template1>
    <px:PXGrid ID="masterGrid" runat="server" DataSourceID="ds" SkinID="Details"
    SyncPosition="True" Caption="Categories" CaptionVisible="True" Width="100%">
    <AutoCallBack Command="Refresh" Target="detailGrid" />
    <OnChangeCommand Command="Refresh" Target="detailGrid" />
    <Levels>
    <px:PXGridLevel DataMember="Categories">
    <Columns>
    ...
    </Columns>
    </px:PXGridLevel>
    </Levels>
    <AutoSize Enabled="True" />
    </px:PXGrid>
    </Template1>
    <Template2>
    <px:PXGrid ID="detailGrid" runat="server" DataSourceID="ds" SkinID="Details"
    Caption="Products" CaptionVisible="True" Width="100%">
    <CallbackCommands>
    <Refresh SelectControlsIDs="masterGrid" />
    </CallbackCommands>
    <Levels>
    <px:PXGridLevel DataMember="CategoryProducts">
    <Columns>
    ...
    </Columns>
    </px:PXGridLevel>
    </Levels>
    <AutoSize Enabled="True" />
    </px:PXGrid>
    </Template2>
    </px:PXSplitContainer>

    这是主详细信息的方式 PXGrids 应该在 Acumatica 网页中查看和操作:

    enter image description here
    enter image description here
    enter image description here

    关于acumatica - 如何在 Acumatica 中创建主从网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264233/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com