如何解决为什么我的交叉引用INItemXRef表上没有显示“当前”记录?
因此,我在“销售订单”屏幕中添加了一个新标签,用于显示INItemXRef记录-交叉引用数据。我添加了一个动作来显示当前记录。 图形定制如下:
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
public PXSelect<INItemXRef> substituteProducts;
public PXAction<SOOrder> showAlt;
[PXUIField(displayName = "Show Alt")]
[PXButton]
public virtual void ShowAlt()
{
substituteProducts.Ask($"Current AltID : {substituteProducts.Current.AlternateID}",MessageButtons.OK);
}
}
我的asp:
<px:PXTabItem Text="Subs">
<Template>
<px:PXGrid runat="server" ID="gridSubs" Width="100%" SkinID="Inquire" SyncPosition="True" MatrixMode="True" DataSourceID="ds">
<Levels>
<px:PXGridLevel DataMember="substituteProducts">
<Columns>
<px:PXGridColumn datafield="AlternateID" Width="180" />
</Columns>
</px:PXGridLevel>
</Levels>
<AutoSize Enabled="True" MinHeight="400" />
<ActionBar>
<CustomItems>
<px:PXToolBarButton DependOnGrid="gridSubs" CommandSourceID="ds" CommandName="ShowAlt" />
</CustomItems>
</ActionBar>
</px:PXGrid>
</Template>
</px:PXTabItem>
当我尝试访问视图的“当前”记录时。由于某种原因,它总是指向最高记录。我看不到它可以正常工作的其他屏幕。
所以我试图更改表和列,其余的保持不变。
//public PXSelect<INItemXRef> substituteProducts;
public PXSelect<BAccount> substituteProducts;
public PXAction<SOOrder> showAlt;
[PXUIField(displayName = "Show Alt")]
[PXButton]
public virtual void ShowAlt()
{
substituteProducts.Ask($"Current AltID : {substituteProducts.Current.AcctCD}",MessageButtons.OK);
//substituteProducts.Ask($"Current AltID : {substituteProducts.Current.AlternateID}",MessageButtons.OK);
}
令人惊讶的是,它按预期工作。证明我的网格配置正确。
那么这是怎么回事?这个问题对于INItemXRef是唯一的吗?
TIA
解决方法
当网格的当前记录未正确更新时,我发现这是以下原因之一:
- 未在网格中设置SyncPosition
- DAC没有正确设置IsKey属性
- DAC可在同一页面的多个数据视图中重复使用
就您而言,我可以看到已设置SyncPosition。同样,DAC也应设置其IsKey属性。 因此,您可以检查图表的其他数据视图中是否使用了INItemXRef吗? Acumatica缓存层的工作方式无法在多个视图中重复使用相同的DAC,并且具有不同的数据/当前属性。
作为解决方法,您可以使用基于INItemXRef的PXProjection创建新的DAC。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。