AX2012 查询财务维度

----------------------------------------------------------method 1

static void jay_testDimension(Args _args)
{
int i;
str theName;
str theValue;
DimensionAttribute dimensionAttribute;
DimensionAttributeValueSetStorage dimStorage;
DimensionDefault defaultDimension = 5637152844;
DimAttributeProjTable aaa;
;

dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);

for (i=1 ; i<= dimStorage.elements() ; i++)
{
dimensionAttribute = DimensionAttribute::find(dimStorage.getAttributeByIndex(i));
if(dimensionAttribute.BackingEntityTableId == tableNum(ProjTable))
{
theValue = dimStorage.getDisplayValueByIndex(i);
info("项目 " + theValue);
}
if(dimensionAttribute.BackingEntityTableId == tableNum(VendTable))
{
theValue = dimStorage.getDisplayValueByIndex(i);
info("供应商 " + theValue);
}
if(dimensionAttribute.BackingEntityTableId == tableNum(OMOperatingUnit))
{
theValue = dimStorage.getDisplayValueByIndex(i);
info("部门 " + theValue);
}
}

}

-------------------------------------------------method 2

void FindFinDimension()
{
SalesTable salesTable;
DimensionAttributeValueSetItem DimensionAttributeValueSetItem;
DimensionAttributeValueSet DimensionAttributeValueSet;
DimensionAttributeValue DimensionAttributeValue;
DimensionAttribute DimensionAttribute;
container c;
ProjTable ProjTable;
OMOperatingUnit OMOperatingUnit;

while select salesTable
where salesTable.SalesId == this.RefSalesId//"SO000067"
//join DimensionAttributeValueSet
// where DimensionAttributeValueSet.RecId == salesTable.DefaultDimension
join DimensionAttributeValueSetItem
where DimensionAttributeValueSetItem.DimensionAttributeValueSet == salesTable.DefaultDimension
join DimensionAttributeValue
where DimensionAttributeValue.RecId == DimensionAttributeValueSetItem.DimensionAttributeValue
join DimensionAttribute
where DimensionAttribute.RecId == DimensionAttributeValue.DimensionAttribute
{
//info(strFmt("%1,%2",DimensionAttribute.Name,DimensionAttributeValueSetItem.DisplayValue));
if(DimensionAttribute.BackingEntityType == tableNum(DimAttributeOMDepartment))
{
select firstOnly OMOperatingUnit
where OMOperatingUnit.OMOperatingUnitNumber == DimensionAttributeValueSetItem.DisplayValue;
this.DimensionsDepartment = OMOperatingUnit.RecId;

}
if(DimensionAttribute.BackingEntityType == tableNum(DimAttributeProjTable))
{
select firstOnly ProjTable
where ProjTable.ProjId == DimensionAttributeValueSetItem.DisplayValue;
this.DimensionsProj = ProjTable.RecId;
}
}
}

原文地址:https://www.cnblogs.com/xiangliqi/p/4759309.html