교육-11

강민창·2024년 7월 8일

회사 교육

목록 보기
11/29

Container Component

  • 하나의 화면을 여러 개의 부분화면으로 구성
  • Div/PopupDiv에 다른 화면을 연결하여 사용가능
  • 손쉽게 화면을 구성하고 화면에 대한 재사용성을 높임
  • 구조는 Div/PopupDiv 컴포넌트 안에 innerform이라는 내부 Form객체로 구성

close할 때 값을 넘겨주는 방법은 array로 넘겨줘야 한다

값을 얻은 뒤 array에 담아서 넘겨줄 때 중요한 것은 depth가 있다는 것이고 this.parent.parent.을 해야 내 상위 페이지를 찾는다

this.parent.parent. 후에 PopupDiv2.closePopup()를 작성하고 close시 파라미터로 array값을 넘겨주면 된다

즉, 값을 전달하는 방법은 array에 담아서 넘겨주고 작성할 때 depth를 반드시 입력해야 한다


달력 이모티콘을 누르면 달력이 펼쳐져야 하는데 지금은 그렇지 않는 상태이다
-> 그 이유는 Property(속성)를 바꿨기 때문이다

Calendar Property 중 popuptype이 nomal이면 펼쳐지고 none이면 펼쳐지지 않는다

ondropdown Event를 연결하면 직접 PopupDiv를 띄우는 로직을 구현한다는 의미이다

이렇게 소스를 입력해주면 아래의 이미지처럼 달력이 펼쳐진다


Form

  • 화면을 구성하는 기본 단위
  • 여러 컴포넌트를 배치하여 화면을 구성하고 스크립트가 실행될 수 있는 환경

Property

Method

  • addChild : Form을 만들어서 Application에 붙이는 메소드
  • alert : 메시지를 보여주는 메서드
  • getFocus : 특정한 컴포넌트에 Focus를 위치해 주는 메서드
  • isValidObject : Form에 컴포넌트 존재유무를 체크하는 메서드
  • setTimer : 일정한 시간에 한 번씩 Event를 발생 시켜주는 메서드
  • killTimer : 앞에서 세팅한 Timer를 삭제하는 메서드
  • transaction : 데이터를 가져오는 메서드

Event

  • onactivate(많이 사용하지 않음)
  • onbeforeclose : From이 닫히기 전에 발생하는 이벤트
  • oninit : Form이 Loading될 때 컴포넌트가 올라오기 직전에 발생하는 이벤트(일반 개발자는 거의 사용하지 않음)
  • onload : 모든 컴포넌트가 Loading된 후에 발생하는 이벤트
  • ontimer : Timer를 연결했을 때 Script를 작성해주는 이벤트

Form에 있는 모든 정보를 얻으려면 this.fn_compList()함수를 적용하면 된다

this.all은 visible/invisible 모두 나오지만 화면에 보이는 것만 얻길 원한다면 all 대신 components를 사용하면 된다 반대로 눈에 보이지 않는 컴포넌트만 얻고 싶다면 objects를 사용한다


String 값을 오브젝트로 바꿀 때나 함수 eval를 이용하여 함수를 실행할 때 절대 eval메서드를 사용하면 안 된다
-> 그 이유는 eval은 eval안에 들어가는 모든 코드를 무조건 실행해서 보안에 취약하다

String을 오브젝트로 바꾸는 방법은 this.components[]에 넣었다 빼면 object로 바뀐다


팝업창을 띄우는 방법

  1. Modal방식
  • modal 팝업창은 parent에 종속되어 있어서 영역을 벗어날 수가 없다
  • modal창은 해당 Form이 닫히기 전까지는 Parent를 접근할 수 없다
    -> 받드시 modal창을 닫아야 접근할 수 있다
  1. Modeless(권장)
  • parent에 종속되어 있지 않아서 그냥 클릭할 수 있다
  • parent를 접근할 수 있고 parent 영역 밖으로 벗어날 수도 있다

modal을 사용하는 경우

modal 방법은 parent에 종속되어 있어서 팝업 창이 뜰 때 parent의 엔진을 공유해서 사용한다

modeless 방법은 별도의 창으로 떠서 parent의 엔진을 공유하지 못한다

즉, 코드성 데이터를 보여주는 것은 모달을 사용하는 것이 좋다

modeless을 사용하는 경우

1번째 화면과 2번째 화면을 비교해 보고 싶을 때 MDI방식에서 창 배열을 정렬방법에 따라 2개로 분할할 수 있다

잘리는 부분은 Scroll을 이용해서 비교해야 되므로 번거로움이 있다
-> 그래서 두 개의 창이 있는 경우 하나의 화면을 Application 밖으로 뜯어낸다
-> 이때 사용하는 것이 modeless이다

0개의 댓글