본문 바로가기 메뉴 바로가기

티스토리 뷰

1. 메뉴로 사용할 Global Dataset 생성 (MDI의 경우 차일드프레임 관리를 위해 컬럼명이 같은 빈 Global Dataset 생성)

Application Information - Application Variables - Dataset 에서 프로젝트 전체에서 접근 가능한 글로벌 데이터셋을 생성해 준다.

예시)

데이터셋 이름 : gds_menu, (+ gds_openForm)

컬럼 : MENU_ID / MENU_NAME / MENU_LEVEL / FORM_URL

 

2. 프레임 구성

Application Information - Applications - Application_Desktop - mainframe 아래의 프레임 구조를 설정한다.

해당 예제에서는 최소 좌측에 표시될 메뉴를 위한 프레임, 메뉴 클릭시 해당 url 로 이동시킨 화면을 띄워주는 워크프레임이 필요하다. 이때 워크프레임은 SDI의 경우 ChildFrame, MDI의 경우 FrameSet을 생성한다.

 

(넥사크로 프레임 참고) 

차일드 프레임은 하나의 form 스크립트를 가진다.

 

프레임셋은 각각의 form을 가진 다양한 차일드 프레임을 가질 수 있다.

 

 

3. 메뉴 생성 (좌측프레임에 그리드 생성)

좌측프레임에 1의 데이터셋을 바인딩하여 트리구조 그리드로 메뉴를 생성한다. 

 

4-1. SDI방식 스크립트 

3에서 생성한 그리드의 더블클릭 이벤트 함수

  var sUrl = this.gds_menu.getColumn(e.row,"FORM_URL"); //클릭한 메뉴의 FORM_URL 값 변수에 저장
  var  objApp = nexacro.getApplication();
  objApp.mainframe.VFrameSet00.HFrameSet00.VFrameSet00.ChildFrame01.set_formurl(sUrl);

  //페이지를 띄우고 싶은 ChildFrame의 경로에 formurl 속성값을 위의 값으로 지정한다.

 

4-2. MDI방식 스크립트

3에서 생성한 그리드의 더블클릭 이벤트 함수

//클릭된 메뉴의 메뉴아이디, 메뉴 이름, url 값을 받아온다.

//그 값들을 인자로 넣어 아래에 생성한 fn_openForm 함수를 호출한다.

  var  objApp = nexacro.getApplication();

  var sMenu = objApp.gds_menu.getColumn(e.row, "MENU_ID");

  var sMenuNm = objApp.gds_menu.getColumn(e.row, "MENU_NAME");

  var sFormUrl = objApp.gds_menu.getColumn(e.row, "FORM_URL");

  this.fn_openForm(sMenu, sMenuNum, sFormUrl);

 

fn_openForm 함수

fn_openForm 내용 중 관련 부분

 


SDI/MDI란

2020/11/30 - [개발노트/개발용어정리] - 프레임 구조 : SDI 형태 / MDI 형태

 

참고 자료 : 

docs.tobesoft.com/edu_nexacro17_basic_kr#5a80efac77326262

 

기본 교육 교재

 

docs.tobesoft.com

댓글