본문 바로가기
Spotfire

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

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

spotfire에서 drill through를 이용해 시각화를 클릭하여 원하는 page로 이동하는 기능을 구현할 수 있습니다.

이에대해 알아보겠습니다.

 

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

이 기능을 구현하려면 Data Function과 ironpython을 사용해야 합니다.

 

먼저 기능구현에 사용할 Document Property를 하나생성해 줍니다.

file - document properties - properties로 들어옵니다.

여기서 new 버튼을 눌러 새로운 properties를 만들어 줍니다.

property name을 입력하고 data type은 string으로 해줍니다.

해당 property에 string type의 data를 받을 것이기 때문입니다.

이제 page이동의 trigger역할을 하는 data function을 설정해주어야 합니다.

data function을 이용해 해당 생성한 property에 값을 입력하고,

property에 값이 생성되면 page를 이동하는 ironpython script를 작성할 것입니다.

 

먼저 data function 설정 입니다.

data fuction을 쓰는 방법은 이전에도 포스팅 했었는데 한번 보고오시면 좋을것 같습니다.

https://c-mond.tistory.com/10?category=917873 

 

SpotFire에서 R사용하여 Data처리하기 (r in spotfire)

Spotfire 내에는 R을 이용해 Data Table을 가공할 수 있는 기능이 있습니다. 이에 대해 얘기를 해보려 합니다. 위는 Spotfire에서 사용할 Raw data입니다. 위의 Data를 이용해 R을 사용해 새로운 Data Table을 만

c-mond.tistory.com

data - data function properties - register new를 선택해 새로운 data function을 생성해줍니다.

if (length(click) == 0){
   pagevalue <- ''
}else{
   pagevalue <- click[1] }

function name은 앞서 생성한 document property에 값을 삽입해야하기 때문에 제가 임의로 만들어 적었습니다.

input, output parameter 들도 위와 같이 정해줍니다.

input para의 경우 선택하는 Bar chart의 X축이 팀 column이기 때문에 column으로 정해 주었습니다.

output para는 위에서 생성한 document property에 저장하는 값이고 앞선 R코드에서 한값만 나오므로 value로 정했습니다.

설정이 완료 되면 run을 선택합니다.

그럼 위와 같은 창이 뜨고 input output handler를 정해줍니다.

위와 같이 input, output handler를 정해 줍니다.

input은 팀 column을 넣을것이고 output으로 나오는 data는 document property에 넣을 것이므로 위와 같이 정해줍니다.

 

그럼 이제 bar를 click하면 팀 값이 document property에 저장이 될것입니다 한번 확인을 해보겠습니다.

A bar와 D bar를 눌러 확인해 보겠습니다.

위와 같이 값이 바뀌는 것을 볼 수 있습니다.

 

이제 page를 이동하는 script를 작성해 보겠습니다.

이 script는 document property의 값이 바뀔때 실행이 되므로 document property에서 script에 입력해 주면 됩니다.

 

file - document properties - properties - script를 넣고자 하는 property click 후 script 선택

하면 우측과 같은 팝업창이 뜨고 Excute the script selected below를 선택합니다.

그후 new를 선택해 새로운 script를 입력해 줍니다. 

 

if pagevalue != "":
   Document.ActivePageReference = page

위와 같이 script를 입력해 줍니다.

ironpython도 R과 para를 정의해 주어야 합니다.

여기서 사용할 para는 "pagevalue"와 "page" 입니다.

"pagevalue"는 트리거 역할을 하는 document property 값이기 때문에 위와 같이 입력을 해줍니다.

"page"는 우리가 이동하고자 하는 page이기 때문에 위와 같이 입력해주시면 됩니다. 여기서는 page (5)로 이동해보겠습니다.

모든 값을 입력하면 위와 같이 나타나게 됩니다,

여기서 run script로 제대로 동작하는지 확인을 해도 되고 바로 OK눌러도 됩니다.

이 코드는 간단한 코드이므로 바로 OK를 눌러주도록 합니다.

그리고 위의 script를 클릭하고 ok를 눌러줍니다.

그럼 위와 같이 나오며 또 ok를 눌러줍니다.

그럼 이제 완성이 된겁니다. bar chart를 하나씩 클릭해보며 확인해 보겠습니다.

(참, 이동하고자 하는 page는 미리 만들어줘야합니다)

클릭하면 page가 이동함을 확인할 수 있습니다.

(그림이라 확인이 힘드네요... 직접 해보시면 이동이 됩니다....;;)

728x90
728x90

댓글