티스토리 뷰

디아뎀에서 TDMS 파일을 읽어오면 아래와 같이 Data Portal에 TDMS 파일에 있는 그룹과 채널들이 로드가 됩니다. 하지만 파일을 읽어오면 모든 그룹들에 대한 채널들이 확장되어 있는 모습을 볼 수 있습니다. 아래와 같이 말이죠. 



파일 로드시 확장된 부분을 닫아버리게 할 수는 없을까? 라는 고민을 해보고 관련 함수를 찾아보았습니다. 역시 스크립트 함수에는 모든것이 다 있었습니다.


Structure 오브젝트 안에 보시면 아래와 같이 Collapse와 Expand 함수가 있습니다. Collapse 함수가 채널을 닫게 만들고, Expand가 확장을 하게 만들어요. 자세한 내용은 Help 파일을 참조하세요.



그럼 구현을 한번 해보겠습니다. 


Dim index 

For index = 1 to data.Root.ChannelGroups.Count

  If Portal.Structure.IsExpanded (Data.Root.ChannelGroups(index )) Then

    Call Portal.Structure.Collapse(Data.Root.ChannelGroups(index))

  End If

Next


그룹이 확장 상태이면 Collapse하게 만들었습니다. 모든 그룹에 대해서 Collapse 함수를 호출해도 무방하긴 하지만 그래도 코딩을 깔끔하게 하는것이 좋겠죠.


이를 실행한번 해보았습니다. 테스트를 위해서 1번(EXAMPLE)과 3번 그룹(Results_Noise_Data)을 확장상태로 만들어 놓았습니다. 



위의 코드를 넣어서 실행을 하면 아래와 같이 모든 채널이 Collapsed 상태로 변경된것을 확인할 수 있습니다. 



잘되네요.!!


그럼 조금 응용하여 닫혀있는 그룹은 열고, 열린 그룹은 닫아보도록 하겠습니다.

코드를 조금 수정해야 겠네요.


Dim index 

For index = 1 to data.Root.ChannelGroups.Count

  If Portal.Structure.IsExpanded (Data.Root.ChannelGroups(index )) Then

    Call Portal.Structure.Collapse(Data.Root.ChannelGroups(index))

  Else

    Call Portal.Structure.Expand(Data.Root.ChannelGroups(index))

  End If

Next


IsExanded 상태이면 Collapse 함수를 아니면 Expand 함수를 호출하게끔 만들어보았습니다. 테스트를 다시 해보겠습니다. 2번과 4번 그룹을 열고, 1번과 3번그룹을 닫아놓았습니다. 



위의 코드를 실행하면 아래와 같이 닫혀있는 그룹을 열리고, 열린 그룹은 닫히는것을 확인할 수 있습니다. 



이 글에서는 DIAdem의 Data Portal에서 프로그램적으로 그룹의 열고 닫기를 결정하는 방법을 알아보았습니다.


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.



댓글