본문 바로가기
카테고리 없음

2023.02.09ㅡ 넥사크로17 실무활용_ 공통기능 처리방식이해와 적용

by 흥뷰자 2023. 2. 14.

공통기능을 처리할 때 해당 화면에 글로벌로 올라가있는 함수들을 호출해서 적용시키는 작업으로 일의 능률을 향상시킨다.  

 

공통 기능을 처리하기 위해 샘플로 만들어놓고 
인클루드 없이 폼에 onload이벤트에 Form_onload 함수호출하고 다시 그 함수에서 gfn_formOnLoad(this); 를 호출
구현된 기능 소스를 확인할 수 있다.  (.js 기능구현)

 

모든그리드에 동일하게 들어가있지 않음 

사용자별 key-value로 기능에 권한 부여가 가능하다.

 


사용자에 따라 사용할 수 있도록 부여하는 방법은 속성 userproperty 유저이름과 사용기능 설정가능

그리드의 기능을 구현해서 데이터셋을 바인딩했을 때 구현해 놓은 기능들을 사용할 수 있는지 없는지는 
일차적으로 해당 화면에 기본으로 온로드되는 함수를 지정해 놓았는지 아닌지가 결정하는 것이다.

 

 



화면이 로딩되면 실행될 함수로 여러 기능들을 구현하고 
사용자에 따라 기능을 사용할지를 User Property 속성으로 설정할 수 있다. 


공통프로젝트 샘플 설명2 - 복합 컴포넌트 구성 방식과 스크립트 사용법 이해

기간달력하나만 보더라도 from to 팝업div 8개이상의 컴포넌트 넣고, 날짜선택방식 스크립트 작업 이벤트 선택한 화면으로 데이터 넘기기 get set함수 반복적인 단순작업을 없애기 위해 따로 모듈화 해놓고
div url로

 가져다 쓸 수 있음, 추가 리사이징처리 (너비 상대좌표 값 설정 등) 
div가 아닌 다른 컴포넌트(ex. 캘린더)로 만들고 User Property 를 개별 지정(ex. cCalType:"MM")해서 스크립트 작업도가능
if(objForm.components[i] instnaceof nexacro.Calendar){
if(objForm.components[i].cCalType == "MM") {
objForm.components[i].addEventHandler("ondropdown", this.gfn_openMonthCal, this); 
}
}
div로 url가는 경우보다 user property는 바로 컴포넌트를 만드는건 depth가 깊지 않다는 점, 다만 스크립트 작업이 더 까다롭지

 


코드데이터 통신 한번에 여러 데이터 받아오라고 했는데
공통코드(라디오나 콤보의 이너데이터셋 용 / 단순로직처리위한 div의 그냥 데이터) 2방법
그때그때 서비스호출로 열러개 받아올지 / 어플리케이션 글로벌ds로 최초 한번 받아와서 그룹별로 필요할 때 카피해서 사용함
공통코드 가져다 쓰는 로직


alert와 confirm 화면 따로 만들어서 팝업(모달)


gfn_alert("메세지id", ["전달인자1", "2",... ]);
확인의 경우 데이터 저장하는 건 비동기라서 바로 밑라인에서 못받고 콜백으로 받는다. 그냥 기본 confirm창을 쓰는 것과 처리 스크립트가 달라지는 부분.


데이터 정합성 체크 후 포커스 그 위치 주는 거 공통으로 빼기
기존 룰 있을지도모르니까 clear 
정합성 룰 지정하고, 그대로 체크


샘플화면 적용 
기존에 만들어놓은 기간 달력을 연결하여 
데이터 선택한 것을 화면에 표시 

코드 성별 first 코드값으로 가져오는 부분으로 대체
컴포넌트 id로 지정할수도 있고 depth로 ds으로 지정할수도 있고


transaction도 글로벌 함수로 바꾸고 에러체크 거기서 하니까 따로 콜백에서 할 필요없음

삭제 메세지 컨펌받은 값 콜백으로 처리

저장 버튼 validation 코드 붙여놓고 수정 


this.grd_dept_onheadclick()랑 인클르두 지우고,  폼 온로드 될 때 폼 기능 로드되도록 전역함수 호출 this.gfn_formOnLoad(this);


부서 선택할 때 부서가 사원의 부서에 잘 데이터 넘기는지 보이도록 폼에 임의 컴포넌트 만들어서 찍어봐야
trace(this.ds_emp.saveXML()); //xml형태로 바꿔서 찍어봄 (ds 이 invisible이라 화면 바인딩 해야만 알 수 있음) 아니면 디버그창을 따로 만든걸 쓰든지 
**단축키설정





댓글