본문 바로가기
Spotfire

spotfire ) ironpython list box filter 적용 시키기 in spotfire

by C.Mond 2022. 10. 8.
728x90
728x90

안녕하세요 이번엔 spotfier에서 ironpython을 이용해 입력받은 값으로 list check filter를 적용시키는 것을 기록하려고 합니다.

 

data는 iris data를 사용하겠습니다.

 

Species column에 filter를 적용해 보겠습니다.

먼저 입력받은 값을 저장할 document properties를 만들어주겠습니다.

 

이름은 filter.name으로 하겠습니다.

이 document properties에  값을 넣어줄 input field를 만들어 주겠습니다.

 

text area를 만들고 input field를 만들고 해당 input field에 filter.name document properties를 연결해주겠습니다.

그리고 filter가제대로 먹히는지 보기위해 Species column의 filter를 넣어줍니다

위 처럼 만들어주고 해당 값이 제대로 들어가는지 보겠습니다.

제대로 들어오는 군요

우리가 쓸것은 list filer이므로 현재 check box로 돼있는 fitler를 list로 바꿔주겠습니다.

위처럼 list filter로 바뀌었습니다.

 

이제 해당 documnet properties에 ironpython script를 연결해 주겠습니다.

위 처럼 들어가주고 new를 눌러줍니다.

그리고 아래와 같은 코드를 넣어줍니다

script parameter는 스팟팡어에 들어있는 data table을 지정해 줍니다.

from Spotfire.Dxp.Application.Filters import ListBoxFilter #refer to filter as listbox myFilter=Document.FilteringSchemes[0].Item[myDataTable]["Species"].As[ListBoxFilter]() filter_name=Document.Properties["filter.name"] filter_name=filter_name.split(",") myFilter.IncludeAllValues=False myFilter.SetSelection(filter_name)

이상태에서 run을 하면 data table이 모두 사라지는데 이는 c.mond를 input field에 넣어 놓았으므로 Species에 없는 값이라 모두 필터 아웃이 돼버린 상태 입니다.

 

이제 input field에 값을 넣고 제대로 filter가 되는지 보겠습니다.

위 화면에 setosa를 넣어보겠습니다.

이렇게 잘뜨는것을 볼 수 있습니다.

이번엔 다중입력을 해보겠습니다.

다중입력을 해도 잘되는것을 볼 수 있습니다.

 

728x90
728x90

댓글