数据列及其各自的数据类型从流文件中拉入。所有具有字符串数据类型的列都应显示为“列表框”,并具有默认的行数和“搜索”选项卡。并且所有具有Date数据类型的列都应为范围过滤器。等等。
有人可以提示我如何执行此操作。非常感谢您的帮助!!谢谢。
答案 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]()