2010-10-12 49 views
0

我编写(重新)计算各种价格的一些插件,我使用Math.Round来保持CRM中默认的2位数设置的结果准确。如何以编程方式访问CRM 4.0设置?

但我想......如果用户决定设置他的CRM使用不同的精度?

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

我该如何去访问我的代码中的一般(可能还有其他)CRM设置?

回答

2

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

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

心连心

+0

谢谢!这正是我需要的。现在我觉得自己没有找到这种东西有点傻。 – Shaamaan 2010-10-20 14:02:32

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功能可以告诉你执行该功能的用户的各种格式设置。

你也可以深入挖掘功能,但你可能不需要。

+0

嗯...感谢您的回答,我不过是希望我可以在不连接到CRM数据库由CRM SDK提供做这个任务我自己的和使用的工具做。尽管如此,如果没有别的可能,那么这只会做。 ;) – Shaamaan 2010-10-14 10:56:30

相关问题