2015-11-05 116 views

回答

0

這是我如何設置複選框過濾器。 TOH to @Niko和@Jacek Sierajewski提供cb過濾器設置的「(空)」提示!

from Spotfire.Dxp.Application import Filters as filters 
strTtype= Document.Properties['Ttype'] 
FilterSelection = Document.Data.Filterings["Main Scheme"] 
cbfRefund = Document.FilteringSchemes[FilterSelection][Document.Data.Tables["Transaction Data"]]["Refund Transaction"].As[filters.CheckBoxFilter]() 
if strTtype=="Refund": 
    for CheckBoxValue in cbfRefund.Values: 
     cbfRefund.Uncheck(CheckBoxValue) 
     if CheckBoxValue == "Refund": 
      cbfRefund.Check(CheckBoxValue) 
      cbfRefund.IncludeEmpty=False#This clears the "(Empty)" checkbox 
2

設置過濾器編程方式(從文本輸入域)

  • 你必須在文本區域中的輸入字段(colname的文檔屬性)
  • 可以從傳遞多個值(空格分隔)到過濾器文本區域輸入字段。
  • 你想採取從這段文字字段中的值和值傳遞給一個名爲「網站名稱」
  • 在過濾器palnel過濾器過濾器是一種ListBoxFilter

enter image description here

import Spotfire.Dxp.Application.Filters as filters 
import Spotfire.Dxp.Application.Filters.ListBoxFilter 
from Spotfire.Dxp.Application.Filters import FilterTypeIdentifiers 
from Spotfire.Dxp.Data import DataPropertyClass 
from System import String 
myPanel = Document.ActivePageReference.FilterPanel 
myFilter= myPanel.TableGroups[0].GetFilter("Site Name") 
lbFilter = myFilter.FilterReference.As[filters.ListBoxFilter]() 
lbFilter.IncludeAllValues=False 
strVals = Document.Properties["colname"] 
if strVals!=String.Empty: 
    lbFilter.SetSelection(strVals.split()) 
else: 
    lbFilter.Reset() 

參考: http://spotfired.blogspot.com/2014/03/change-filters-programatically-from.html

+1

@Keng,在此重要的部分是線'lbFilter.IncludeAllValues = FALSE',這也許應該被稱爲'lblFilter.IsEmptyChecked'。設置爲「True」會勾選**(空)**框。 – niko