【问题标题】:How to access CRM 4.0 settings programmatically?如何以编程方式访问 CRM 4.0 设置?
【发布时间】:2010-10-12 09:33:11
【问题描述】:

我编写的一些插件(重新)计算各种价格,我使用 Math.Round 来保持结果的准确性,并使用 CRM 中的默认 2 位设置。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!这正是我所需要的。现在我觉得自己没有找到这个有点傻。
    【解决方案2】:

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

    使用向导创建一个空白报告,将其导出为 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 函数将告诉您执行该函数的用户的各种格式设置。

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

    【讨论】:

    • 嗯...感谢您的回答,但是我希望我可以不用自己连接到 CRM 数据库并使用 CRM SDK 提供的工具来完成此任务。尽管如此,如果没有其他可能,那么这将不得不做。 ;)
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 2013-09-28
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多