To get concatenated Display Value of Default dimension in x++



/// <summary>

/// this will return a concatenated dispay value  default dimension

/// </summary>

/// <param name = "_defaultDimension"></param>

/// <returns></returns>

public static  str DimensionDisplayValue(RecId _defaultDimension)

{


    DimensionAttributeSetItem dimAttrItemSet;

    DimensionAttribute dimAttr;

    DimensionEnumeration dimensionSetId;

    DimensionAttributeValueSet DimensionAttributeValueSet;

    str DimensionList;


    int dimAttrCount;

    int i=1;

    dimensionSetId = DimensionCache::getDimensionAttributeSetForLedger();


    select count(RecId) from dimAttr

        where dimAttr.Type != DimensionAttributeType::MainAccount

        join RecId from dimAttrItemSet

        where dimAttrItemSet.DimensionAttribute == dimAttr.RecId &&

        dimAttrItemSet.DimensionAttributeSet == dimensionSetId;

    dimAttrCount=dimAttr.RecId;



    while select * from dimAttr

        order by Name

        where dimAttr.Type != DimensionAttributeType::MainAccount

        join RecId from dimAttrItemSet

        where dimAttrItemSet.DimensionAttribute == dimAttr.RecId &&

        dimAttrItemSet.DimensionAttributeSet == dimensionSetId

    {

        //info(dimAttr.Name);


        if(!DSCRUtil::getDimensionDisplayValuebyName(_defaultDimension,dimAttr.Name))

        {

            DimensionList+='-';

            i++;

        }

        else

             if(i<dimAttrCount)

        {

            DimensionList+=DSCRUtil::getDimensionDisplayValuebyName(_defaultDimension,dimAttr.Name)+"-";

            i++;

        }

        else

        {

            DimensionList+=DSCRUtil::getDimensionDisplayValuebyName(_defaultDimension,dimAttr.Name);

        }

    }

    //this.DimensionValueDisplay = DimensionList;

    return DimensionList;

}


public static str getDimensionDisplayValuebyName(RecId defaultDimension, Name dimName)

{

    DimensionAttributeValueSetStorage dimStorage;

    dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);

    return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);

}


Regards 
Muhammad Farraz

email: farazjaved01@gmail.com



Comments

Popular posts from this blog

How to Bypass Next in COC in D365 X++

create movement journal through code in d365 FO x++