如何从custtable中找到国家的简称

时间:2017-01-30 20:30:59

标签: axapta x++ dynamics-ax-2012-r2

我需要根据custtable查询国家/地区名称的简称。

我知道信息在于

LogisticsAddressCountryRegionTranslation.shortname;
 LogisticsAddressCountryRegion.countryregionid;

问题是,通过关系,我没有看到一种方法可以链接到custtable。在custtable中曾经有一个countryregionid可以链接回来,但它被改为DEL_countryregionid并且不能再使用它了。 我如何获得这些信息。使用ax 2012

1 个答案:

答案 0 :(得分:2)

需要注意的一点是,客户记录可以有多个地址。因此,此答案使用主要邮政地址。这可能不是您的用例。

还有" ShortName"是区域特定的。

static void Job20(Args _args)
{
    CustTable                                   custTable;
    LogisticsAddressCountryRegionTranslation    countryRegionTranslation;
    UserInfo                                    userInfo;
    LogisticsAddressCountryRegion               countryRegion;
    LogisticsPostalAddress                      postalAddress;

    select firstOnly custTable;

    postalAddress = custTable.postalAddress();

    countryRegion   = LogisticsAddressCountryRegion::find(postalAddress.CountryRegionId);

    select firstonly Language from userInfo where userInfo.Id == curUserId()
        join countryRegionTranslation
            where countryRegionTranslation.CountryRegionId == countryRegion.CountryRegionId &&
                    countryRegionTranslation.LanguageId      == userInfo.Language;

    info(strFmt("Address: %1; ShortName: %2", postalAddress.Address, countryRegionTranslation.ShortName));
}