如何以编程方式访问CRM 4.0设置?

时间:2010-10-12 09:33:11

标签: c# plugins dynamics-crm dynamics-crm-4

我写的一些插件(重新)计算了不同的价格,我使用Math.Round来保持结果与CRM中的默认2位设置一致。

但我想......如果用户决定将他的CRM设置为使用不同的精度会怎么样?

因此,我需要以编程方式访问CRM设置,以便我的功能可以使用用户选择的任何设置。

我如何从代码中访问常规(以及可能的其他)CRM设置?

2 个答案:

答案 0 :(得分:2)

用户的设置存储在usersettings实体中。组织的设置存储在组织entity

但是,特定属性的设置存储在元数据中(例如,精度为4位的十进制数)。您必须将元数据服务与RetrieveAttribute message结合使用,后者将返回属性的AttributeMetadata。对于CrmDecimal属性,它将是DecimalAttributeMetadata的实例,例如包含已配置的precision的属性。

HTH

答案 1 :(得分:0)

这是一个很好的技巧,可以用来解决这个问题......

使用向导创建空白报告,导出它执行RDP文件并在Visual Studio中打开它。检查创建的数据集,其中一个称为“DSNumberAndCurrencyInfo”。

这是该数据集背后的查询。

SELECT 
    DateFormat, DateFormat + ' ' + TimeFormat AS DateTimeFormat, 
    NumberLanguageCode, CalendarType, 
    NumberFormat_0_Precision, NumberFormat_1_Precision, 
    NumberFormat_2_Precision, NumberFormat_3_Precision, 
    NumberFormat_4_Precision, NumberFormat_5_Precision, 
    CurrencyFormat_0_Precision, CurrencyFormat_1_Precision, 
    CurrencyFormat_2_Precision, CurrencyFormat_3_Precision, 
    CurrencyFormat_4_Precision, CurrencyFormat_5_Precision
FROM
    dbo.fn_GetFormatStrings()

这意味着有一个DB功能可以告诉您执行该功能的用户的各种格式设置。

您也可以深入挖掘并打开该功能,但您可能不需要。