Microsoft Dynamics AX 2012 新增加了一个根据地址信息查看在线地图的功能。
比如打开客户详细信息窗体,在地址快速选项卡下面单击“映射”按钮(英文翻译为Map,中文翻译的有问题),系统会打开Bing地图并使用地址信息进行搜索和定位。
遗憾的是,Bing地图比较简陋且对国内的地址支持远不如本土的百度地图,让我们改造一下系统的标准功能:若地址在中国范围的话,调用百度地图引擎进行搜索和定位。
1.打开开发工作区,定位到“AOT-Class-smmUtility-mapIt”方法,添加以下代码:
public static void mapIt(LogisticsPostalAddress _address) { #DEFINE.MapURL('http://maps.bing.com/default.aspx?where1=%1') #DEFINE.MapURL_Baidu('http://api.map.baidu.com/geocoder?address=%1&output=html&src=YourCompany|DynamicsAX2012') #DEFINE.comma(',') #DEFINE.newLine('n') str address; ; if (_address) { switch (_address.CountryRegionId) { case 'CHN': address = _address.CountryRegionId + #comma + _address.State + #comma + _address.City + #comma + _address.Street; break; default: address = _address.Street + #comma + _address.City + #comma + _address.State + #comma + _address.ZipCode + #comma + _address.CountryRegionId; } // Replace the newline with comma address = strReplace(address, #newline, #comma); // URL encode address = System.Web.HttpUtility::UrlEncode(address); // Add the address to the URL switch (_address.CountryRegionId) { case 'CHN': infolog.urlLookup(strFmt(#MapURL_BaiDu, address)); break; default: infolog.urlLookup(strFmt(#MapURL, address)); } } }
2.完成之后,当地址所在国家为中国时,系统将调用百度地图进行搜索和定位。
转载请注明:ww12345678 的部落格 | AX Helper » [原创]将Microsoft Dynamics AX 2012 中的地图功能指向百度地图引擎