2010-10-12 46 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

相關問題