자바스크립트 따라하기 – 보고서 사용하기 (응용)

Script

자바스크립트 따라하기 – 보고서 사용하기 (응용)

페이지 스크립트에서 보고서를 활용할 수 있다.



1. 뷰어로 샘플 실행하기


(객체를 생성할 때는 도구를 클릭하고 마우스 커서를 Design 영역으로 옮겼을 때 커서가 십자 표시로 되면 생성할 위치에 클릭한 상태로 드래그하면 된다.)

14287cfce3a9f80e09780392a76c37c0_1624862141_7801.png
 

1) 아날로그, 디지털, 문자열 태그를 각각 1개 생성한다.

14287cfce3a9f80e09780392a76c37c0_1624862147_4508.png
 

2) 페이지에 레이블을 하나 추가한다.

14287cfce3a9f80e09780392a76c37c0_1624862152_1444.png
 

3) 레이블 객체를 다음과 같이 설정한다.

14287cfce3a9f80e09780392a76c37c0_1624862166_6613.png
 

4) 보고서를 생성한다.

14287cfce3a9f80e09780392a76c37c0_1624862175_1391.png
14287cfce3a9f80e09780392a76c37c0_1624862175_2111.png
 

5) 보고서를 다음과 같이 설정한다.

  • 템플릿 파일을 생성한다.
    • Microsoft excel을 실행하여 빈 엑셀 문서를 연다.
14287cfce3a9f80e09780392a76c37c0_1624862210_931.png
 
    • A1, B1, C1 셀에 각각 텍스트를 입력한다.

14287cfce3a9f80e09780392a76c37c0_1624862216_5823.png
 

    • 문서를 저장한다.

14287cfce3a9f80e09780392a76c37c0_1624862246_7611.png
 

  • 생성한 보고서 객체의 항목을 다음과 같이 설정한다.
    • Repository는 보고서를 저장할 경로를 선택한다.
    • Cycle의 타입은 Condition, 태그는 digital_1 태그를 지정한다.
    • Template의 파일은 이전에 만든 엑셀 파일을 설정한다. 
    • 템플릿의 Settings 버튼을 눌러 보고서 요소를 추가한다.

14287cfce3a9f80e09780392a76c37c0_1624862264_1341.png
14287cfce3a9f80e09780392a76c37c0_1624862264_1895.png
14287cfce3a9f80e09780392a76c37c0_1624862264_2333.png
 

    • 설정 결과는 아래와 같다.

14287cfce3a9f80e09780392a76c37c0_1624862275_5047.png
14287cfce3a9f80e09780392a76c37c0_1624862275_5533.png
 

6) page_1의 스크립트를 아래와 같이 설정한다.

14287cfce3a9f80e09780392a76c37c0_1624862288_5918.png
 

7) 실행이나 F5 버튼을 눌러 뷰어를 실행한다.

14287cfce3a9f80e09780392a76c37c0_1624862293_9401.png
 

8) 레이블 객체를 클릭하여 보고서를 작성할 수 있다.

14287cfce3a9f80e09780392a76c37c0_1624862301_1202.png
14287cfce3a9f80e09780392a76c37c0_1624862301_1754.png
 

 


2. 스크립트 코드 해석


1) page_1 페이지

① addEventListener 호출


$XT("digital_1").addEventListener("change", showInfo);


digital_1 태그의 태그값 변화 이벤트 때 showInfo 함수를 호출한다.


② showInfo메소드

 function showInfo()

{   

 var obj = scada.getReportByName("report");

 console.log(obj.name);

 console.log(obj.repository);

 console.log(obj.cycle);

 console.log(obj.day);

 console.log(obj.hour);

 console.log(obj.minute);

 console.log(obj.format);

 console.log(obj.template);

 console.log(obj.enabled);

}


(1) var obj = scada.getReportByName("report");

이름이 report인 보고서 객체를 가져와 obj 변수에 저장한다.

  • 페이지 콘솔 창 결과: -


(2) console.log(obj.name);

보고서 객체의 이름을 가져온다.

  • 페이지 콘솔 창 결과: “report”


(3) console.log(obj.repository);

보고서 객체의 저장 경로를 가져온다.

  • 페이지 콘솔 창 결과: “C:\Xisom”


(4) console.log(obj.cycle);

보고서 객체의 기록 주기를 가져온다.

  • 페이지 콘솔 창 결과: “trigger”


(5) console.log(obj.day);

보고서 객체의 시간 조건 중 일을 가져온다.

  • 페이지 콘솔 창 결과: 1


(6) console.log(obj.hour);

보고서 객체의 시간 조건 중 시를 가져온다.

  • 페이지 콘솔 창 결과: 0


(7) console.log(obj.minute);

보고서 객체의 시간 조건 중 분을 가져온다.

  • 페이지 콘솔 창 결과: 0


(8) console.log(obj.format);

보고서 객체의 형식을 가져온다.

  • 페이지 콘솔 창 결과: “excel”


(9) console.log(obj.template);

보고서 객체의 템플릿 파일 이름을 가져온다.

  • 페이지 콘솔 창 결과: "C:\Users\LTJ\AppData\Local\Xisom.Scada.Viewer\18108\002\files\reports\template.xlsx"


(10) console.log(obj.enabled);

보고서 객체의 활성화 여부를 가져온다.

  • 페이지 콘솔 창 결과: true


 

0 Reply Comment
Title