【问题标题】:Acumatica: AutoCallback with multiple targetAcumatica:具有多个目标的 AutoCallback
【发布时间】:2016-06-09 10:32:08
【问题描述】:

我有 3 个网格,一个网格作为头部,另一个作为细节,我想在网格第一次选择记录时刷新 2 个网格。我试过用AutoCallBack,但是还是只能刷新1格,怎么自动调用呢?

【问题讨论】:

  • 您的意思是想让grid2显示与grid1中所选行相关的记录吗?那么当用户在grid1中选择一些记录时,grid2应该重新加载记录吗?

标签: c# erp acumatica


【解决方案1】:

有几种方法可以做到这一点,但一个很好的例子是查看 Org -> Org Structure 下的“Assignment and Approval Maps”。

在此屏幕中,当您单击“规则”网格时,“条件”网格会自动刷新。

这主要由两个项目控制

1) 顶部/主网格中的 AutoCallback 命令 2)下部/细节网格中的参数。

例如,在引用的屏幕中有两个网格“topGrid”和“bottomGrid”

topGrid 有以下内容

 <AutoCallBack Target="tree" Command="Refresh" ActiveBehavior="True">
   <Behavior RepaintControlsIDs="formRuleType,bottomGrid" ></Behavior>
 </AutoCallBack>

当顶部网格行被选中/更改时,这将刷新底部网格。 topGrid 定义中的“KeepPosition”和“SyncPosition”标志将在选择行时强制发布(保持“当前”作为当前选择的行。

现在在底部网格中,您有以下内容:

<Parameters>
   <px:PXControlParam ControlID="topGrid" Name="routeID" PropertyName="DataValues[&quot;AssignmentRouteID&quot;]" Type="Int32" ></px:PXControlParam>
</Parameters>   

这表示“bottomGrid”有一个名为“routeID”的参数,它从 topgrid 的“AssignmentRouteID”中提取它的值。

如果您查看 bottomGrid 的 BQL(主要数据成员是“Rules”,您将看到以下定义:

protected virtual IEnumerable rules([PXDBInt] int? routeID)
{

定义使用定义的参数,将其传递到此处以供选择语句返回正确的记录

使用这种方法,您可以在头部网格选择一行时刷新您的详细信息网格。同时,detail grid 使用 headgrid 中的一个值作为其 select 语句的参数。

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2016-08-02
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2013-10-29
    相关资源
    最近更新 更多