动态AX 2012 R3写入客户的空财务维度。

问题描述 投票:1回答:1

我怎样才能写出客户的所有尺寸?我可以使用这段代码,但它的结果只是部门=022。

CustTable                         custTable = CustTable::find("10112");
DimensionAttributeValueSetStorage dimStorage;
Counter i;

dimStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension);

for (i=1 ; i<= dimStorage.elements() ; i++)
{
    info(strFmt("%1 = %2", DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name,
                           dimStorage.getDisplayValueByIndex(i)));

但我希望如果维度是空的,结果就是空的。在下面的例子中,结果应该是这样的。

BusinessUnit = 
Department   = 022
Project      = 
ServiceLine  =

related image

我如何才能做到这一点?

axapta x++ dynamics-ax-2012-r3
1个回答
2
投票

试试把你的代码改成下面的。我的维度和你的不一样,所以你可能需要调整一下。

CustTable                               custTable       = CustTable::find("10112");
DimensionAttribute                      segment         = DimensionAttribute::findByName('Segment');
DimensionAttribute                      department      = DimensionAttribute::findByName('Department');
DimensionAttribute                      businessType    = DimensionAttribute::findByName('BusinessType');
DimensionAttribute                      serviceLine     = DimensionAttribute::findByName('ServiceLine');
DimensionAttributeValueSetStorage       dimStorage;

dimStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension);

info(strFmt("%1 = %2", segment.Name, dimStorage.getDisplayValueByDimensionAttribute(segment.RecId)));
info(strFmt("%1 = %2", department.Name, dimStorage.getDisplayValueByDimensionAttribute(department.RecId)));
info(strFmt("%1 = %2", businessType.Name, dimStorage.getDisplayValueByDimensionAttribute(businessType.RecId)));

// You make need to tweak these
info(strFmt("%1 = %2", serviceLine.Name, dimStorage.getDisplayValueByDimensionAttribute(serviceLine.RecId)));
© www.soinside.com 2019 - 2024. All rights reserved.