교육일정은 교육일정확인과 교육신청을 할 수 있는 메뉴입니다. 투비소프트 교육서비스팀에서 진행되는 모든 정기교육의 일정을 확인할 수 있으며 또한 진행되는 과정 중 필요한 과목에 대해 교육신청 버튼을 클릭하여 바로 수강신청도 할 수 있습니다.
화면구성
소스참고 EduHub\mobile\Mobile_frmEduRegistration.xfdl
1 Radio 제품군을 선택할 수 있습니다. Radio 컴포넌트로 구성하였고 css를 이용하여 일반적인 Radio스타일이 아닌 Tab같은 모양으로 구성했습니다. 2 Grid 위에서 선택된 제품별 교육일정을 그리드에 목록으로 나타냅니다. 3 Div 교육장소에 관련된 내용들을 표시합니다.
주요기능 구현 설명
Grid의 Cell을 Radio로 표현하기
Grid의 cell에 기본적인 표현하는 방법중에 Radio는 없습니다.
cell을 Radio로 표현하기 위해 cell의 속성값 1cssclass에 Radio 이미지를 설정합니다.
2 'displaytype'을 'checkboxcontrol'로 3 'edittype'을 'checkbox'로 구성합니다.
Radio의 특성인 하나의 cell만 선택할 수 있도록 스크립트 작업을 합니다.
this.ds_ScheduleList_oncolumnchanged = function(obj:nexacro.NormalDataset,e:nexacro.DSColChangeEventInfo) { if(e.columnid == "CHK"){ var nRow = this.ds_ScheduleList.findRowExpr("CHK == '" + e.newvalue + "' && currow != " + e.row) if(nRow > -1){ this.ds_ScheduleList.setColumn(nRow, "CHK", "0"); } } };
Grid의 Row갯수에 맞게 높이 조절하기
조회된 Row의 갯수에 cell 높이를 곱해서 사이즈를 구한 후 그리드의 높이를 재설정합니다.
this.fn_formResize = function() { var iHeight = (nexacro.toNumber(this.ds_ScheduleList.getRowCount() * 50) + 50) ; this.gdList.set_height(iHeight); var iDivHeight = this.gdList.getOffsetBottom() + 400; this.parent.parent.divBody.set_height(iDivHeight); this.parent.parent.divBody.form.resetScroll(); this.parent.parent.parent.form.resetScroll(); }
Grid의 높이에 맞춰서 Div 위치 지정하기
Arrangement 기능을 이용하여 Grid를 기준 컴포넌트로 지정하고 Top의 위치를 지정합니다.
교육신청
화면구성
소스참고 EduHub\mobile\Mobile_frmEduRegistrationAdd.xfdl
주요 기능 구현 설명
this.frmUserManagerModify_onload = function(obj:nexacro.Form,e:nexacro.LoadEventInfo) { var pEDU_PRODUCT_CODE = this.getOwnerFrame().pEDU_PRODUCT_CODE; var pES_SEQ = this.getOwnerFrame().pES_SEQ; var pEDU_TYPE_DET_NAME = this.getOwnerFrame().pEDU_TYPE_DET_NAME; this.div_detail.form.stES_SEQ.set_text("신청회차 <fc v='#333333'>" + pES_SEQ+ "회</fc>"); this.div_detail.form.stEDU_TYPE_DET_NAME.set_text("교육과정 <fc v='#333333'>" + pEDU_TYPE_DET_NAME + "</fc>"); pType = this.getOwnerFrame().pType; var paramObj = this.getOwnerFrame().pObj; var objGds = nexacro.getApplication().gdsUserInfo; var sEMP_NAME = objGds.getColumn(objGds.rowposition,"UserName"); var sPhoneNo = objGds.getColumn(objGds.rowposition,"PhoneNo"); var sEmail = objGds.getColumn(objGds.rowposition,"Email"); var sCompanyNm = objGds.getColumn(objGds.rowposition,"CompanyNm"); var sDeptNm = objGds.getColumn(objGds.rowposition,"DeptNm"); var sUserID = objGds.getColumn(objGds.rowposition,"UserID"); if(pType == "insert") { this.ds_Student.addRow(); this.ds_Student.setColumn(..,"ESL_SEQ", ""); ... this.ds_Student.setColumn(..,"DUTY_NAME", ""); ... this.ds_Student.setColumn(...,"STATUS_CD", "1"); //교육추가 this.ds_Student.setColumn(...,"REQ_REASON", "001"); this.ds_Student.setColumn(...,"REQ_REASON_ETC", ""); this.ds_Student.setColumn(...,"QUESTION", ""); this.ds_Student.setColumn(...,"ATTEND_FLAG", "0"); this.ds_Student.setColumn(...,"INPUT_TIME", ""); this.ds_Student.setColumn(...,"OUTPUT_TIME", ""); this.ds_Student.setColumn(...,"CERTIFICATES_FLAG", "0"); this.ds_Student.setColumn(...,"CONSULTING_FLAG", "0"); this.ds_Student.setColumn(...,"MARKETING_AGREE_FLAG","0"); this.ds_Student.setColumn(...,"SALES_EMP_NAME", ""); this.ds_Student.setColumn(...,"INSERT_DATE", ""); this.ds_Student.setColumn(...,"INSERT_EMP_NO", sUserID); this.ds_Student.setColumn(...,"INSERT_DEPT_CD", ""); this.ds_Student.setColumn(...,"INSERT_DEPT_NM", ""); this.ds_Student.setColumn(...,"INSERT_MODEL", "JspAgent.jsp"); this.ds_Student.setColumn(...,"UPDATE_DATE", ""); this.ds_Student.setColumn(...,"UPDATE_EMP_NO", ""); this.ds_Student.setColumn(...,"UPDATE_DEPT_CD", ""); this.ds_Student.setColumn(...,"UPDATE_DEPT_NM", ""); this.ds_Student.setColumn(...,"UPDATE_MODEL", ""); } else if(pType == "update") { this.ds_Student.addRow(); this.ds_Student.copyRow(..., paramObj, paramObj.rowposition); this.ds_Student.set_updatecontrol(false); bSucc = this.ds_Student.setRowType(..., "u"); this.ds_Student.set_updatecontrol(true); this.ds_Student.setColumn(...,"UPDATE_MODEL", "JspAgent.jsp"); this.ds_Student.setColumn(...,"UPDATE_EMP_NO", sUserID); } else if(pType == "delete") { this.ds_Student.addRow(); this.ds_Student.copyRow(..., paramObj, paramObj.rowposition); this.ds_Student.set_updatecontrol(false); bSucc = this.ds_Student.setRowType(..., "n"); this.ds_Student.set_updatecontrol(true); var sMsgId = "edu.msg.edulist.delete"; var arrArg = ""; var sPopId = sMsgId; this.gfn_alert(sMsgId, arrArg, sPopId, "fnMsgCallback"); } };
참고사항
신규 교육일정 등록 시점을 알고 싶습니다.
다음회차 교육일정은 매월 근무일(working day)기준으로 첫날 오전 10시에 익월 교육일정이 홈페이지에 오픈됩니다. [ 예 ] 2017년 8월 교육일정은 7월 3일에 오픈됩니다.