넥사크로13 - 다른 화면 호출

송용준·2025년 4월 9일
0

회사에서 운영중인 코드는 아니고
이렇게 바꾸면 어떨까 해서 수정해봄

화면 구현은 다른 화면들과 별반 다르지 않으므로 생략

기능

일정등록 화면에서 일정등록시 메인 페이지의 일정관리 달력이 업데이트 되는 기능

코드

- 일정등록 화면
	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는 모든 화면에 있는 조회하는 함수다.
경로가 잘 맞는지 잘 확인 해야한다. 보통 경로에서 오류 나드라

profile
용용

0개의 댓글