본문 바로가기
Spotfire

spotfire 꿀팁 ) bar chart "시각화별" 다른 page로 이동하기 "drill through" 응용 (시각화를 클릭하여 page이동 R, ironpython 활용)

by C.Mond 2021. 9. 5.
728x90
728x90

이전 블로그 포스팅에서 시각화를 클릭하여 원하는 page에 이동하기를 해보았습니다.

이번 포스팅에는 이를 좀 더 응용하여 각각의 시각화마다 원하는 page로 이동하는 기능을 구현해 보겠습니다.

 

bar chart "시각화별" 다른 page로 이동하기 기능을 구현하기 위해서는 R script 1개와 2개의 ironptyhon script가 2개가 필요합니다.

 

data는 아래의 data를 사용하도록 하겠습니다.

여기서 시각화1 chart를 클릭하면 시각화1 page로, 시각화2 chart를 틀릭하면 시각화2 page로 이동하는 기능을 만들어 보겠습니다.

시작전 위와 같이 page를 구성하고 시작하면 됩니다.

 

먼저 document property를 2개 생성해 주겠습니다.

해당방법은 아래의 블로그를 보시면 나와있습니다.

https://c-mond.tistory.com/27

 

spotfire ) bar chart에서 bar를 click하여 page 이동하기 "drill through" 시각화를 클릭하여 page 이동

spotfire에서 drill through를 이용해 시각화를 클릭하여 원하는 page로 이동하는 기능을 구현할 수 있습니다. 이에대해 알아보겠습니다. data는 아래의 data를 이용하도록 하겠습니다. 이 기능을 구현하

c-mond.tistory.com

 

저는 "title1", "title2" 라는 name으로 만들어 주었습니다. type은 둘다 똑같이 string으로 지정해 줬습니다.

 

다음으로 R script를 생성해 주어야 합니다.

R script를 생성하는 방법도 이전 블로그에 포스팅해놓았습니다.

 

script는 위와같이 입력하였습니다.

name은 trigger
output<-input
input의 type은 value, output의 type도 value로 정해줍니다.

input, output para를 지정해 줍니다.

그리고 run을 실행해줍니다.

input은 value로 값을 받을 것이기 때문에 위와 같이 설정을 했습니다.

output또한 value로 받을것이기 때문에 위와같이 정해주었습니다.

 

그럼 이제 input, ouput handler를 정해줍니다.

input handler는 클릭하려는 차트의 x축이 "팀"이기 때문에 팀으로 정해주었습니다.

그리고 함수는 하나의 uniqe값을 가져오는 함수를 입력하였습니다.

edit를 누르면 함수를 입력할 수 있습니다. 이때는 unique함수와 [팀]만입력하고 ok를 누르면 자동으로 data table이 붙습니다. ex)uniqueconcatenate([팀])

 

output handler는 위에 생성해준 document property중 하나에 저장을해야하기 때문에 먼저 만들어준 "title1"으로 입력을 해주었습니다.

그 후 ok를 눌러줍니다.

 

이제 제대로 동작을 하는지 확인을 해보겠습니다.

우측위에 에러가 떠도 차트를 클릭하면 됩니다. 에러는 현재 처음에 눌러 놓은게 없으니 반환 할 값이 없다고 뜨는것 같습니다.

page에 있는 차트중 어느것을 클릭해도 됩니다.

값이 document property에 제대로 저장이 되고 있습니다.

이제 해당 값을 받으면 동작하는 ironpython script를 입력하겠습니다.

 

script입력법은 앞선 포스팅에 있습니다.

"title1"에 script를 입력하는 팝업창으로 들어옵니다 그리고 아래와 같이 입력을 해줍니다.

if title1=="":
 print(title1)
else:
 activeVisual=Document.ActivePageReference.ActiveVisualReference myPropertyName="title2"   Document.Properties[myPropertyName]=activeVisual.Title

해당 script는 "title1"에서 값을 입력받으면 클릭되어진 시각화의 title을 "title2"에 넣으라는 script입니다.

이것도 동작을 하는지 확인해 보겠습니다.

제대로 동작을 하는군요

이제 "title2" property에 page이동 ironpython script를 짜주도록 하겠습니다.

if title2=="시각화1":
 Document.ActivePageReference=SelectedStatesPage1
 Document.Properties["title2"]=""
elif
 title2=="시각화2": Document.ActivePageReference=SelectedStatesPage2
 Document.Properties["title2"]=""

위와 같이 입력을 해주면 됩니다. OK누르고 제대로 동작을 하는지 보겠습니다.

page에 있는 시각화 1, 2의 chart를 클릭해 봅니다.

그림이라 보여주기가 힘드네요;;

시각화 1, 2 에 따라서 제대로 이동하는것을 볼 수 있습니다.

728x90
728x90

댓글