2015-09-07 116 views
3

如何使用Ironpython返回Spotfire文件中文檔屬性的完整列表。Spotfire IronPython通過屬性循環

屬性可以通過

Document.Properties["myProperty"] = "myValue" 

設置,我想這樣做

for myProperty in Document.Properties: 
    print myProperty 
    #Some checks like if myProperty.Name = 'name1' then ... 

發現這個,但不能得到它的工作還沒有(它返回,不只是屬性:http://www.cambridgesoft.com/support/EnterpriseSupport/KnowledgeBase/FAQ/details/Default.aspx?TechNote=2344

from Spotfire.Dxp.Data import * 

for DocProp in Document.Data.Properties.GetProperties(DataPropertyClass.Document): 
    print DocProp.Name, DocProp.Value 

回答

4

有一個DocumentProperty對象的一個​​屬性,名爲isUserVisible可以幫助你在這裏。

技術上都出現在列表中的東西是文檔屬性(如,他們是「文檔屬性」),他們是通過編輯»文檔屬性訪問。讓你期待的DocumentProperties(如,「本文檔中創建變量」),你可以運行類似以下內容:

from Spotfire.Dxp.Data import DataPropertyClass 

for d in Document.Data.Properties.GetProperties(DataPropertyClass.Document): 
    if d.IsUserVisible: print d.Name, d.Value 

你只需要DataPropertyClass爲枚舉;同樣的效果可以在沒有進口來實現:

for d in Document.Data.Properties.GetProperties(0): 
    if d.IsUserVisible: print d.Name, d.Value 

(注意,您將史迪威獲取與默認情況下每個文件創建MaxMissingTimePartsFiscalYearOffset屬性)

+0

尼科,你知道,如果你能也用計算值做到這一點?像Document.Data.Values ...? – Freddy

+0

@Freddy所以你想要一個顯示所有可用文檔屬性的計算值?您可以在Value部分中單獨連接屬性。或者你認爲文檔屬性的數量會不斷變化? – niko

+0

我想從我的Script.Was文本區域使用值(計算值),想知道是否有相同種類的循環來顯示Spotfire文檔中的所有計算值。但最後我只想使用一些特定的值。 – Freddy