팝업 화면 크기를 지정하면서 동기식으로 팝업을 띄우는 API이다.
Parameters | Type | Description |
---|---|---|
strPopupName | STRING | 팝업 이름 |
strScreenURL | STRING | 팝업시킬 화면의 경로 |
strTitle | STRING | 팝업화면 타이틀 |
bNoTitle | bool | 타이틀바를 안보이게 할 지에 대한 여부(true, false) |
nBorderStyle | short | 팝업 BorderStyle 상수(*Remark 참조) |
nXWindowPos | long | 화면에 보여줄 모니터 상 X 좌표 |
nYWindowPos | long | 화면에 보여줄 모니터 상 Y 좌표 |
nWidth | short | 팝업화면의 너비 |
nHeight | short | 팝업화면의 높이 |
bCenter | bool | 좌표값을 무시하고 무조건 윈도우 중앙에 뜨게할지 여부(true, false) |
bAutoPopupSize | bool | 지정한 사이즈를 무시하고 본래화면 사이즈로 뜨게할지 여부(true, false) |
bModal | bool | 모달로 뜰지 여부(true, false) |
ParentScreen | VARIANT | 팝업을 띄울 부모화면 |
extra_data | INSTANCE | 팝업 화면에 전달할 부가 데이터 |
bLocal | BOOL | [옵션]탭 내부 팝업 여부(기본값 false) |
bVisible | BOOL | [옵션] 팝업 표시 여부 (기본값 true) |
bHideProtect | BOOL | [옵션] 모달 배경 잠금 영역 숨김 처리 여부 (기본값 false) |
Type | Description |
---|---|
BOOL | 팝업화면 정상적으로 떴는지 여부(true, false) |
async/await 문법을 사용하여 loadpopup을 동기 방식으로 처리하는 함수이며, IE 브라우저는 지원하지 않는다.
loadpopupsync API 호출시 팝업 부모 화면의 "on_popupload" 이벤트는 발생하지 않는다.
loadpopupsync API가 리턴시 팝업 화면 로드가 완료된 것을 의미한다.
ParentScreen 파라미터는 팝업된 화면의 부모 화면을 설정하는 파라미터로 모달리스 팝업창을 띄울경우, null값을 지정하면 메인프레임 화면의 HTML window 오브젝트의 open API를 이용하고, screen 오브젝트를 전달하는 경우, screen 오브젝트가 표시된 HTML window 오브젝트의 open API를 이용하여 팝업창을 표시한다.
* 기존 loadpopup와 다른 점은 팝업 사이즈의 크기를 지정할 수 있다. ** nBorderStyle 상수 XFD_BORDER_NONE = 0 (테두리 없음) XFD_BORDER_FLAT = 1 (선 테두리) XFD_BORDER_RAISED = 2 (리사이즈 불가능한 창 테두리) XFD_BORDER_RESIZE = 4 (리사이즈 가능한 창 테두리) ** 주의 파라미터 중 strTitle은 팝업화면이 모달일때만(파라미터 중 bModal이 true일때) 보이거나 숨길 수 있다.
** bLocal 파라미터 탭에 링크된 화면에서 bLocal 파라미터를 true로 지정하면 팝업창이 탭내부에 표시된다.
// 동기식 팝업 로드 버튼 이벤트 처리
// loadpopupsync API를 "await" 방식으로 호출하기 위해,
// 함수 이름 앞에 "async" 키워드를 추가로 붙어야 한다.
async function btn_loadpopup_modal_sync_on_mouseup(objInst)
{
var fld_in_popup_screen, popup_screen, ret, popup_ret, is_modal;
is_modal = true;
factory.consoleprint("loadpopupsync> start");
factory.consoleprint("loadpopupsync> before call loadpopupsync");
// 팝업 화면을 SYNC 방식으로 로드를 시작함.
// factory.loadpopupsync API가 리턴시 팝업 화면 로드가 완료된 것을 의미함.
// 팝업 화면 로드 완료시, 팝업 부모 화면의 "on_popupload" 이벤트는 발생하지 않음.
// extra_data 옵션 파라미터를 통해서 팝업 화면으로 값을 전달할 수 있음.
// 팝업 화면에서는 screen.getextradata API 호출을 통해서 전달된 값을 얻을 수 있음.
// await의 동기화 처리는 async 함수내에서만 수행됨.
ret = await factory.loadpopupsync("SYNC_MODAL_POPUP",
"/TEMPLATE/HTML5/ASYNC_AWAIT/popup_sample", "SYNC POPUP",
false, XFD_BORDER_RESIZE, 0, 0, 200, 500, true, true, is_modal,
screen, "VALUE_FROM_LOADSCREEN_EXTRADATA");
factory.consoleprint("loadpopupsync> after call loadpopupsync, return = " + ret);
// 동기 방식으로 호출된 팝업 화면 인스턴스를 팝업 이름을 기준으로 찾음
popup_screen = factory.findpopup("SYNC_MODAL_POPUP");
if (factory.isobject(popup_screen)) {
// loadpopupsync API로 팝업을 로드했기 때문에,
// loadpopupsync 함수가 리턴되는 시점에는
// 팝업 화면의 로드가 완료된 시점이기 때문에,
// 팝업 화면의 오브젝트 인스턴스를 구할 수 있음.
fld_in_popup_screen = popup_screen.getinstancebyname("fld_value_from_parent_screen_settext");
if (factory.isobject(fld_in_popup_screen)) {
fld_in_popup_screen.settext("VALUE_FROM_PARENT_SCREEN_SETTEXT");
}
else {
factory.consoleprint("loadpopupsync> getinstancebyname() return null");
}
// domodal 호출 여부 옵션 검사
if (chk_calldomodal.getcheck()) {
factory.consoleprint("loadpopupsync> before call domodal");
// 팝업 화면에 대해서 domodal API를 호출하여, 팝업 화면이 닫힐 때까지 대기함.
// 즉, 팝업 화면에서 unloadpopup 함수 호출시 전달된 파라미터 값이 리턴되기를
// 동기방식으로 대기함.
// domodal API 호출시 팝업 부모 화면의 "on_popupdestroy" 이벤트는 발생하지 않음.
// domodal API를 호출하지 않으면,
// 팝업 화면에서 unloadpopup 함수 호출시 전달된 파라미터 값은
// on_popupdestroy 이벤트를 통해서 전달됨.
// await의 동기화 처리는 async 함수내에서만 수행됨.
popup_ret = await popup_screen.domodal();
screen.alert("loadpopupsync> after call domodal, domodal return = " + popup_ret);
factory.consoleprint("loadpopupsync> after call domodal, domodal return = " + popup_ret);
}
}
else {
factory.consoleprint("loadpopupsync> findpopup() return null");
}
factory.consoleprint("loadpopupsync> end");
}