본문 바로가기
Data Analysis/Spotfire

[Spotfire Q&A] 다중입력을 통한 조건 부여

by 불탄오징어 2021. 8. 2.
반응형

 

 

 

Spotfire를 활용하여 BI 장표를 만드는 경우에 다중입력을 통해 다수의 값을 입력 받고 이에 따른 조건을 부여할 경우가 있습니다. 저같은 경우 사용자가 다수의 입력을 통한 예를 들면 다수의 상품코드를 입력값으로 넣고 이를 조건으로 부여하여 시각화를 컨트롤하는 경우가 있습니다.

 

샘플데이트는 다음과 같습니다.

sample.xlsx
0.01MB

 

 

입력 값을 받아서 col1과 일치하는 경우에는 1의 값을 가지는 column을 만들어보겠습니다.  이칼럼 값을 조건으로 활용하게되면 시각화 장표를 해당 조건으로 컨트롤 할 수 있게 됩니다.

 

 

먼저 상단 메뉴 Edit - Document Properties로 갑니다. 여기서 Properties에서 New를 눌러 조건이라는 Properties를 추가합니다. 이 Properties는 나중에 조건으로부여할 값을 받는 용도로 사용합니다.

 

 

다음으로는 Text Area를 추가한 후 오른쪽 마우스를 눌러 Edit text Area로 들어갑니다. 상단 메뉴 중 위의 그림과 같이 이동하여 Input field(multiple lines)를 클릭합니다.

 

 

위의 그림 처럼 New를 눌러 새로운 Properties를 추가합니다. 'select' 로 이름을 부여하여 생성합니다. 그러면 select 라는 Properties는 다중행을 가지는 Input field로 값을 받을 수 있습니다. 여기에 여러가지 값을 입력하면 이 값을 조건식으로 사용할 수 있도록 바꿔줘야합니다. 일단 여러가지 값에 대한 구분은 '줄바꿈'으로 구분한다고 가정하겠습니다.

 

 

Edit Text Area 에서 Action Control을 클릭합니다. Display text에 "선택"을 입력합니다. 좌측에 Script를 클릭하여 Python을 입력할 준비를 합시다. 여기서 Python을 이용해서 'select'에서 입력 받은 값을 분리하여 조건식에 부여할 수 있도록 변경할 것입니다. 

 

 

 

Script에서 New를 눌러 New script 창을 띄웁니다. Script Name에 "선택"이라고 입력하고 Script 창에 다음 Python code를 입력합니다. 

 

input = Document.Properties['select']	# properties중 select에서 입력된 값을 가져옴
input = input.replace("\n",",")			# 가져온 값에서 줄바꿈(\n)을 콤마로 변경
input = input.split(",")				# 콤마로 구분하여 Array에 담는다.
input = filter(None, input)				# 혹시 빈값이 있을까 확인하여 제거한다.

Document.Properties['조건']= "('" + "','".join(input) + "')"
# 6번 줄을 실행하면 괄호안에 ''로 묶인 값이 들어간다.
#  예 : input에 1  2  3 을 입력했으면 ('1','2','3) 으로 생성된다.

 

다음 모두 OK를 눌러 버튼을 생성합니다. 적당히 select 안에 값을 입력 해둡니다. 꼭 지금 입력할 필요는 없지만 다음의 Calculated Column으로 추가할 expression수식에서 값이 없으면 좀 알아보기가 힘들어서요. 저는 1 부터 10까지 줄바꿈으로 입력했습니다.

 

 

다음 상단 메뉴 Insert-Insert Calculated Column을 클릭한 후 위와 같이 입력합니다. 우측 하단에 Resulting expression에서 보면 입력한 값들이 ${조건} 에 대체되어 들어가는 것을 확인할 수 있습니다. Column Name에 'chk'를 입력한 후 OK를 눌러 칼럼을 추가합니다.

 

 

하단 Sample 테이블에 'chk' 칼럼이 보이지 않는다면 Data Table의 Columns에서 해당 칼럼을 추가해줍니다. 이제 위의 Multiple Line input Field인 'select'에서 값을 입력한 후 선택을 클릭하면 아래 테이블에서 chk 값이 변하는 것을 확인할 수 있습니다.

 

 

sample.dxp
0.04MB

 

version : Spotfire 7.6

 

댓글