如何在D365FO使用视图在窗体上显示某一个财务维度(Financial dimensions)

在这篇文章中,我们将了解如何使用视图将财务维度(Financial dimensions)显示为表单网格中的字段,该视图将使用计算列直接从表中检索信息。这是一种快速获取信息以将其显示在列表中的方法,并且能够使用控件按维度值进行筛选。

解决方案:

如何做:

步骤 1:创建视图

我们创建一个新的视图 ( FTDDimensionSetView ),使用 DimensionAttributeValueSet 作为数据源,并添加 RecId 作为视图字段。请注意,此 RecId 将是  表中我们想要显示维度的DefaultDimension字段(本例中为CustTrans  ),这就是为什么我在视图中也将其命名为 DefaultDimension。

步骤 2:创建计算列方法

我们将对要添加到视图中的每个维度值使用一个静态方法。标准 DimensionSetEntity 实体需要对其进行概括,并且仅使用一个复杂的方法,在配置好所有维度后,使用插件加载所有维度,这些维度会自动创建,因为每个实现都有不同的维度……在我们的例子中,我们不需要额外的复杂性,因为我们已经知道并拥有我们想要显示的维度。保持简单!

这里有 3 种方法(我决定将逻辑放在一种通用方法中,所以有 4 种)。

public class FTDDimensionSetView extends common
{
    private static str getSQLStringForDimension(DimensionRefFieldName _dimensionName)
    {
        DimensionAttribute dimensionAttribute = DimensionAttribute::findByName(_dimensionName);
 
        return dimensionAttribute.DimensionValueColumnName;
    }
 
    private static str getDepartment()
    {
        return FTDDimensionSetView::getSQLStringForDimension(FTDDimensionUtils::Department);
    }
 
    private static str getCostCenter()
    {
        return FTDDimensionSetView::getSQLStringForDimension(FTDDimensionUtils::CostCenter);
    }
 
    private static str getRetailChannel()
    {
        return FTDDimensionSetView::getSQLStringForDimension(FTDDimensionUtils::RetailChannel);
    }
 
}

在这些方法中,我们将从配置它们的表 DimensionAttribute 中获取 SQL 中的列名称(对 VS 隐藏)。(FTDDimensionUtils 类中的值只是该表的名称字段的值)。

步骤 3:创建字符串计算列

现在,我们创建 3 个新的计算列,并使用属性View 方法将它们与上面创建的适当方法关联 。

如果在同步我们的视图之后,我们转到 SQL 并查看它的设计,它可以帮助我们直观地了解 计算列 实际上是什么:

步骤 4:从 CustTrans 添加新关系

现在,我们必须添加从 CustTrans  视图的关系。如果您想将财务维度添加到任何其他表格中,则只需重复执行此步骤和步骤 5(将其添加到表单)。因此,正如所有良好的发展一样,我们创建了一个非常有用、简单且可重复使用的代码片段!

第 5 步:在表单中使用它

将新视图作为新的相关数据源添加到表单,将字段添加到网格…

瞧! 请注意,我们可以通过它们进行筛选!需求匹配,客户满意

我希望这篇文章能够对你,匆忙的开发人员有所帮助,就像我之前知道它就会对我有所帮助一样。