공통함수 구현과 적용2 - js 프레임워크 이용
폴더 구성
lib > framework >.js 넥사크로 엔진들 코어 관련 파일들
lib > component > ComComp > .js 컴포넌트 정보들
lib 가 우리가 작업하는 것들이 동작하게 하는 기반. 기본 컴포넌트는 인클루드가 필요없음 어딘가 등록이 되어있기 때문
그 등록이 프로젝트에 TypeDefenition > Object 에 모듈로 등록되어있음 (폴더는 lib>component .json으로 폴더와 .js경로지정)
인덱스 페이지에서 스크립트 js파일 태초에 한번 제일 먼저 로드 되는데 기본 라이브러리처럼 모듈을 띄워서 사용 (Generate 대상이 아니고, 엔진쪽에 올라가는 것)
프로젝트 파일 내부로 만들어놓은 모듈 라이브러리를 적용하는 방법
C드라이브 nexacro 내부의 nexacro17lib폴더를 복사해서 프로젝트 파일폴더 내부 .xprj파일이 들어있는 동일위치에 넣는다.
라이브러리 .js확장자의 파일(공통파일) 들어있는 폴더와, 폴더이름과 동일한 .json확장자 파일을 복사해서 위에 복사해 온 라이브러리 내부의 component 폴더 내부에 넣는다.
프로젝트 Tools - Options 에 Base Library Path는 기본 default로 설치 위치에 lib폴더로 설정되어 있는데 이걸 위에서 복사했던 프로젝트 내부의 lib파일로 바꾼다.
컴포넌트 내부의 것들을 사용가능하게 등록해야 TypeDefenition - Object 모듈에 json파일을 등록한다. (폴더 경로 내 .js파일 명시되어있다)
컴포넌트 js들이 프로젝트 내 Elplorer창에 보이도록 폴더 경로를 TypeDefenition - Service에 지정한다. User Service + 프리픽스ID를 적고 경로 등록한 js파일들이 있는 폴더로 경로설정한다.
nexacro.Form.prototype.gfn_alert 에 함수 추가
js원형
폼 내부의 변수 선언해서 브라우저 개발자도구 확인하면
Scope>Local> js 스크립트가 변수는 먼저 선언되고 초기화는 한줄씩. 초기화 되기 전에 undefined/ 폼내부 변수와 function(obj, e) obj 컴포넌트, 해당컴포넌트의 이벤트객체에 선언된 지역변수
Scope>Global> nexacro.Form.prototype에 js에 추가로 설정한 함수가 곧 글로벌. 화면이 가지고 있는 메소드 기본제공되는 것과 설정한것. 화면을 만들때 별도 include없이 prototype에 만들어진 글로벌함수 함께 올라가있어서 바로
그래서 화면 작성할 때 해당 함수를 호출해서 쓸 때 include 없이 바로 쓸 수 있음 this.gfn_alert(); js 프레임워크에 넣어서 최초에 한 번 로드 gfn_ (호출은 동일하게this. )
Lib를 이용해서 만드는 방법은 화면마다 include. lfn_
여기서 함수 선언은 this.함수명 this는 화면, 폼에 함수 추가
공통으로 선언한 js 파일에서 함수 선언은 pform.함수명 nexacro.Form.prototype에 폼의 원형에 함수 추가(덮어쓰기) 상속처럼
공통 기능을 처리하기 위해 샘플로 만들어놓고
인클루드 없이 폼에 onload이벤트에 Form_onload 함수호출하고 다시 그 함수에서 gfn_formOnLoad(this); 를 호출
구현된 기능 소스를 확인할 수 있다. (.js 기능구현)
모든그리드에 동일하게 들어가있지 않음
사용자에 따라 사용할 수 있도록 부여하는 방법은 속성 userproperty 유저이름과 사용기능 설정가능
그리드의 기능을 구현해서 데이터셋을 바인딩했을 때 구현해 놓은 기능들을 사용할 수 있는지 없는지는
일차적으로 해당 화면에 기본으로 온로드되는 함수를 지정해 놓았는지 아닌지가 결정하는 것이다.
댓글