교육일정은 교육일정확인과 교육신청을 할 수 있는 메뉴입니다. 투비소프트 교육서비스팀에서 진행되는 모든 정기교육의 일정을 확인할 수 있으며 또한 진행되는 과정 중 필요한 과목에 대해 교육신청 버튼을 클릭하여 바로 수강신청도 할 수 있습니다.
화면구성
소스참고 EduHub\mobile\Mobile_frmEduRegistration.xfdl
Mobile_frmEduRegistration.xfdl
1 Radio 제품군을 선택할 수 있습니다. Radio 컴포넌트로 구성하였고 css를 이용하여 일반적인 Radio스타일이 아닌 Tab같은 모양으로 구성했습니다. 2 Grid 위에서 선택된 제품별 교육일정을 그리드에 목록으로 나타냅니다. 3 Div 교육장소에 관련된 내용들을 표시합니다.
주요기능 구현 설명
Grid의 Cell을 Radio로 표현하기
이미지 2
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의 위치를 지정합니다.
이미지 3
교육신청
화면구성
소스참고 EduHub\mobile\Mobile_frmEduRegistrationAdd.xfdl
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일에 오픈됩니다.
schedule_add