회사에서 운영중인 코드는 아니고
이렇게 바꾸면 어떨까 해서 수정해봄
화면 구현은 다른 화면들과 별반 다르지 않으므로 생략
일정등록 화면에서 일정등록시 메인 페이지의 일정관리 달력이 업데이트 되는 기능
- 일정등록 화면
case "SAVE": //저장
this.fn_ComBtnSearch();//조회
//일정등록 저장시 메인포탈 새로고침 및 포커스
this.gfn_CallScrn("Form_Portal","fn_mainPotal_refresh",null,"",false);
break;
공통함수로 넘기는 파라미터 :
(호출할 화면,화면에서 동작시킬 함수,같이 넘길 데이터,메뉴 닫을시 이동시킬 화면)
저장했을때 메인화면을 새로고침 한다.
공통함수를 살펴보자 !
- Bizutil.js
pForm.gfn_CallScrn = function(sPrgmId, sCallFunc, oParam, sMoveScrnId)
{
var sMenuId = nApp.gds_Menu.lookup("PRGM_ID", sPrgmId, "MENU_ID");//메뉴ID
var winId = nApp.gds_OpenMenu.lookup("MENU_ID", sMenuId, "WIN_ID");
var oObj = {
menuId : sMenuId, // 메뉴ID
scrnCallFunc : sCallFunc, //화면간 호출함수명
scrnCallArgs : oParam //화면간 전달 argument
};
//선택된 메뉴 호출
this.gfn_CallMenu(oObj);
//Tab 메뉴 닫을시 이동할 화면 설정
if (!this.gfn_IsNull(sMoveScrnId)) {
this.gfn_MoveScrn(sMoveScrnId);
}
if (!this.gfn_IsNull(winId) && !this.gfn_IsNull(sCallFunc) ) {
var framesInfo = nApp.gvWorkFrame.frames; //WorkFrame 정보
var oCallScrn = framesInfo[winId];
oCallScrn.form.div_Work.form.lookupFunc(sCallFunc).call(oParam);//함수 호출
}
}
특이했던 점은 유사배열을 썻다는 건데
framesInfo[winId]
이건 index가 아닌 객체명으로 값에 접근할수 있다는 거였다.
lookupFunc는 넥사 내장함수로 함수 호출하는거고
oCallScrn.form.div_Work.form.lookupFunc(sCallFunc) 로 함수 호출 후
oParam 값을 넘겨 쓸수도 있다.
- 메인
//일정등록 저장시 메인포탈 일정관리 새로고침
this.fn_mainPotal_refresh = function()
{
//this.gfn_Alert("SY134"); //저장되었습니다.
//일정관리 일정 새로고침
var fvDiv = this.tab_Portal.tpg_01.form.div_TopLeft.form;
var sDay = fvDiv.ds_Input.getColumn(0, "S_DAY");
fvDiv.fvReSeaarch = true;//재조회 여부
fvDiv.fn_ComBtnSearch(); //달력 새로고침
fvDiv.fn_SelectSchedule(sDay); //일정 새로고침
};
fvDiv는 화면안에 화면으로 구성되어 있다.
fn_SelectSchedule는 모든 화면에 있는 조회하는 함수다.
경로가 잘 맞는지 잘 확인 해야한다. 보통 경로에서 오류 나드라