Spotfire IronPython 循环遍历属性

Spotfire IronPython Loop through properties

如何使用 Ironpython return Spotfire 文件中文档属性的完整列表。

可以通过

设置属性
Document.Properties["myProperty"] = "myValue"

我想做类似的事情

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

找到了这个,但还不能让它工作(它 return 不仅仅是属性: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

有一个名为 isUserVisible 的 DocumentProperty 对象 属性 可以在这里帮助您。

从技术上讲,您列表中出现的所有内容都是文档属性(例如,它们是 "properties of the document"),并且可以通过 编辑»文档属性 访问它们。要获得您期望的 DocumentProperties(如 "variables created in this document"),您可以 运行 类似于以下内容:

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 属性。)