Nexacro Studio 교육(Feat. 투비소프트)

2022. 5. 23. 10:52Tools/UI Tools

[ 1일차 ]

 

- 스크립트
1) nexacro.getApplication.trace("로그");
ㄴNexacro Studio 콘솔창이 아니라 브라우저의 개발자모드(F12)에서 확인 할 수 있다.
2) alert 이 아니라 this.alert 으로 사용한다.
ㄴalter 과 trace 는 정석은 this. 을 붙이는데 그냥 단독으로도 사용가능하게 되어있다.
3) 컴포넌트의 속성을 바꿀때에는 (컴포넌트명).set_속성명
ㄴthis.alert((컴포넌트명).속성);
ㄴ넥사크로 함수이벤트에는 파라미터로 obj 와 event 를 받는데 obj.속성명으로도 접근 가능하다.
4) 변수선언
- var : 오직 스크립트 안에서 사용가능한 변수
- this : form 변수 (추천)
- 변수 : var 나 this 없이 변수만 사용하여 선언하면 Global 변수로 잡혀서 메모리를 계속 잡아먹는다. (비추천)
- 컴포넌트에서 Form 에 선언한 this 변수를 접근할 때는 this. 기술하지 않고 바로 변수로 작성합니다.
5) 스크립트 페이지에서 주석문구 나 반복되는 구문은 code snippet에 등록하여 사용할 수 있다.
6) MaskEdit
- 타입(string or decimal) 과 포맷
- 주민등록번호 MaskEdit 에서 format 을 ######-{#######} 로 하면 뒷자리는 '#' 로 표기된다.
- 비밀번호 같은 경우는 (길이,포맷이 랜덤) MaskEdit 보다 Edit 컴포넌트를 사용하는것이 낫다.
7) Tabpage
- 각각 Tabpage 에 url 속성을 통해 Form 을 load 해오는 방식이 낫다. 
- preload 옵션을 통해서 Tabpage 다 한꺼번에 load 하지 말고 각각 Tab 클릭할 때, load 하고 load 안된 Tab 의 컴포넌트를 호출 해 undefined 나올 경우는 로직을 통해 해결한다.
8) Grid Expression
- currow + 1 : No 컬럼의 Row Number
- Dataset.getRowCount() + '건' : 조회된 총 데이터 건 수
ㄴ comp.parent.Dataset.getRowCount() + '건'
ㄴ comp 는 grid 를 뜻한다.
- Set Expression 에 삼항연산자 등 조건 연산자가 들어가도 된다.
9) 함수로 Server 호출
- Nexacro 에서 제공하는 transaction 함수로 호출한다.
- POST 방식으로 파라미터 전달할 때, 구분값은 " "(공백) 으로 구분한다.
- nexacro.wrapQuote() 를 이용해서 공백이 들어간 파라미터를 전달 가능하다.
- Sync (동기, false) / Async (비동기, true)

10) 유의사항
- 서비스경로 사용 시 Full 경로가 아닌 PrefixID 사용 
ㄴNexacro 에서 제공하는 캐시기능을 사용할 수 있다.(Full 경로면 기본 웹브라우저의 캐시 기능만 사용가능)
11) Nexacro 그리드의 컬럼정보를 알 수 있는 방법
- var obj = this.Dataset.getColumnInfo(row);
ㄴobj.id / obj.type
12) 데이터셋 대상으로 조건의 대상을 추출 (결과 내 검색)
- this.Dataset.findRowExpr() 단 건일때
- this.Dataset.extractRows() 여러 데이터 list 로 추출가능
- 단건 추출할 때 응용 가능한 메소드, this.Dataset.lookup 가능
- filter ex) this.Dataset.filter("String(GENDER)=='Y'");
- filter 를 like 검색 처럼 사용하려면, this.Dataset.filter("컬럼명.toUpperCase().indexOf(~) >= 0");
- 올바른 filter 코딩
ㄴthis.Dataset.filter("String(컬럼).toUpperCase().indexOf('" + nexacro.replaceAll('filter대상',"'","\\'").toUpperCase() + "') >= 0");
- this.Dataset.getRowCount() vs this.Dataset.getRowCountNF() : filter 된 Dataset Row 갯수 vs filter 없는 Dataset Row 갯수
13) this.Dataset.getRowType()
- 초기(1), 생성(2), 수정(4), 삭제(8)
14) this.Dataset.getColumn(row,컬럼명) vs this.Dataset.getOrgColumn(row,컬럼명)
15) cancolumnchange() vs oncolumnchanged()
- Dataset 에 데이터가 변경되기 전 호출 vs Dataset 에 데이터가 변경되고난 후 호출

 


[ 2일차 ]

 

1) 중복된 스크립트 소스는 피한다.
2) 서버 호출하는 부분은 최소한으로 한다.
3) 맨 처음 onload 할 때 서버호출하는 경우(공통코드조회) 동기방식은 지양한다.
4) oncellclick : 그리드 셀 클릭시 발생하는 이벤트 / onrowposchanged : 그리드 포커스상태에서 키보드 방향키로 이동하는 경우 발생하는 이벤트
ㄴoncellclick 와 onrowposchanged 가 같이 존재할 경우 oncellclick 는 삭제처리해도 무방 (이벤트 중복 호출)
5) Application Variables Datasets 은 어플리케이션 공통 데이터셋 (Global 데이터셋)
ㄴ접근법: nexacro.getApplication().xxx
6) transaction 메소드 인자 값중에 데이터 넘기는 형식을 지정할 수 있다.
7) 공통함수를 만들때(라이브러리 신규추가없이), var commonForm = nexacro.Form.prototype 을 선언하고, commonForm.newFn = xxx 식으로 생성하면
Global 영역 Form 안에 prototype 에 추가가되어 사용할 수 있다.
8) rowposition : 현재 포커싱이 가있는 Row
9) this.Dataset.saveXML() : 현재 로컬의 데이터셋 정보를 읽어서 보여주는 것 (= Ctrl + Q)

10) 그리드 옵션

- extendgridoption : User Properties 로 sort(정렬), find(찾기), filter(필터) 등 그리드 사용 옵션을 선택할 수 있다.

'Tools > UI Tools' 카테고리의 다른 글

Nexacro Studio  (0) 2022.05.23
Nexacro  (0) 2022.05.23