사용자 정의 출력 대화상자

 

사용자가 그래픽 모듈의 출력 대화상자를 작성하여 감시 프로그램상에서 AO, DO, ST 출력 상자로 사용이 가능하며, 출력 상자 화면을 구성하여 수치를 입력할 수 있게끔 아래와 같이 화면을 구성한다.

 

Snap1

<그림1> 사용자 정의 출력 대화상자 화면구성

 

<그림1>의 설명

 

화면 구성 설명

 

0~9번의 프로그램 버튼

Back, Clear, 출력 확인, 취소 닫기 버튼

AI 태그의 입력 가능한 Full, Base 값 안내 한줄 글자

입력된 값을 볼 수 있는 문자열 태그 (문자열 태그 : NUMBER )

 

위와 같이 화면을 구성한다.

 

 

그래픽 모듈 시작시 스크립트에 스크립트 적용

 

buf = @SystemValueGet("UserControlBoxTag");      //해당 요소 속성에서 지정한 AI, DI 태그 이름을 가져옴

value = @GetTagValue(buf);                                              //해당 태그의 값을 저장

@EditBoxSetText("this.EditBox1", value);               //태그의 값을 화면의 EditBox1에 표시

 

buf = @SystemValueGet("UserControlBoxDescription");      //요소 속성의 출력상자탭에서 지정한 대화상자 설명을 가져옴

@ObjectSetText("this.SingleTextDescription", buf);  //그래픽 모듈의 한줄 글자 요소에 대화상자 설명을 표시

 

buf = @SystemValueGet("UserControlBoxMinValue");          //해당 AI태그의 범위 최소값을 가져옴

@ObjectSetText("this.SingleTextMinValue", buf);

 

buf = @SystemValueGet("UserControlBoxMaxValue");        //해당 AI태그의 범위 최대값을 가져옴

@ObjectSetText("this.SingleTextMaxValue", buf);

 

@EditBoxSetFocus("this.EditBox1");

@EditBoxSelectAll("this.EditBox1");.

 

 

 

각 버튼의 프로그램 편집 내용

 

각각의 버튼에 스크립트를 편집한다. ‘ 1 번 버튼’에 대하여 간단히 보이면 아래 <그림2>와 같다.

Snap2

<그림2> ‘1번 버튼’의 스크립트 내용

 

‘1번 버튼’에 대한 예는 <그림2>와 같고, 각각의 버튼에 대하여 아래와 같이 작성하여 주면 된다.

 

this : AutoBase 스크립트 내에서 지정한 예약어로 현재 활성화되어진 모듈을 의미하며, this.EditBox1이라 지정하면 여러 그래픽 모듈에서 사용한 클래스 이름이 EditBox1이 있더라도, 현재 그래픽 모듈의 EditBox1에만 적용을 시킨다.

 

0번 버튼

@EditBoxGetText("this.EditBox1", buf);

@strcat(buf, "0");

@EditBoxSetText("this.EditBox1", buf);

 

1번 버튼

@EditBoxGetText("this.EditBox1", buf);

@strcat(buf, "1");

@EditBoxSetText("this.EditBox1", buf);

 

2번 버튼

…

…

…

9번 버튼

@EditBoxGetText("this.EditBox1", buf);

@strcat(buf, "9");

@EditBoxSetText("this.EditBox1", buf);

 

Back 버튼

@EditBoxGetText("this.EditBox1", buf);

count = @strlen(buf);

if(count == 0) return;

buf[count-1] = 0;

@EditBoxSetText("this.EditBox1", buf);

//EditBox1에 입력되어진 문자 배열의 길이에서 -1을 하여 Null값을 입력

 

Clear 버튼

buf = "";

@EditBoxSetText("this.EditBox1", buf);

 

확인 버튼

@EditBoxGetText("this.EditBox1", buf);

value = @atof(buf);

$__ControlBox_Tag = value;           //$__ControlBox_Tag 지정된 태그의 입/출력로 출력 값 전달하여 출력

@CloseModule();

 

취소 버튼

@CloseModule();   // 현재 Key pad화면을 닫는다.

 

 

응용 예제 다운로드

예제는 작업선택 프로그램에서 글자메뉴 “파일 | 복원”을 선택하여 참조하시기 바랍니다.