如何根据Ironfire列中的数据类型使用IronPython脚本设置过滤器类型/属性

时间:2019-06-11 16:48:29

标签: ironpython spotfire

数据列及其各自的数据类型从流文件中拉入。所有具有字符串数据类型的列都应显示为“列表框”,并具有默认的行数和“搜索”选项卡。并且所有具有Date数据类型的列都应为范围过滤器。等等。

有人可以提示我如何执行此操作。非常感谢您的帮助!!谢谢。

1 个答案:

答案 0 :(得分:1)

我相信这会满足您的需求。您可能会以不同的方式收集数据类型/所需的过滤器类型。这只是通过Spotfire中的默认数据表。

from Spotfire.Dxp.Application.Filters import ListBoxFilter, RangeFilter, FilterTypeIdentifiers

# first collect all of the data types in the table
filterTypes = {}
for col in Document.Data.Tables.DefaultTableReference.Columns:
    #if the column is not numeric or datatype, assume is text
    if col.DataType.IsNumeric or col.DataType.IsTime:
        filterTypes[col.Name] = "range"
    else:
        filterTypes[col.Name] = "list"

#now change all of the filter types based on the data types
for scheme in Document.FilteringSchemes:
    for filter in scheme.DefaultFilterCollection:
        type = filterTypes[filter.Name]
        if type == "list":
            filter.TypeId = FilterTypeIdentifiers.ListBoxFilter
            filter.As[ListBoxFilter]()
        else:
            filter.TypeId = FilterTypeIdentifiers.RangeFilter
            filter.As[RangeFilter]()