Как установить фильтр флажков с помощью IronPython в Spotfire?

У меня есть столбец, установленный как фильтр флажка, который имеет два значения («Возврат» и «ПУСТОЙ»). Я хотел бы установить этот фильтр так, чтобы был установлен только флажок «Возврат», но я не могу понять, как его установить.

Как это легко сделать в IronPython?


person Keng    schedule 05.11.2015    source источник


Ответы (2)


Установить фильтры программно (из поля ввода текста)

  • У вас есть поле ввода в текстовой области (свойство документа colname)
  • Вы можете передать несколько значений (разделенных пробелами) в фильтр из поля ввода текстовой области.
  • Вы хотите взять значение из этого текстового поля и передать его фильтру с именем «Имя сайта».
  • Фильтр в панели фильтров представляет собой ListBoxFilter.

введите здесь описание изображения

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-programmatically-from.html

person Jacek Sierajewski    schedule 07.11.2015
comment
@Keng, важной частью этого является строка lbFilter.IncludeAllValues=False, которую, возможно, следует называть lblFilter.IsEmptyChecked. установка значения True поставит галочку в поле (Пусто). - person niko; 09.11.2015

Вот как я устанавливаю фильтры флажков. TOH @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
person Keng    schedule 10.11.2015