교육일정

교육일정은 교육일정확인과 교육신청을 할 수 있는 메뉴입니다. 

 투비소프트 교육서비스팀에서 진행되는 모든 정기교육의 일정을 확인할 수 있으며 또한 진행되는 과정 중 필요한 과목에 대해 교육신청 버튼을 클릭하여 바로 수강신청도 할 수 있습니다.

화면구성

소스참고
EduHub\mobile\Mobile_frmEduRegistration.xfdl

Mobile_frmEduRegistration.xfdl

1 Radio
제품군을 선택할 수 있습니다. Radio 컴포넌트로 구성하였고 css를 이용하여 일반적인 Radio스타일이 아닌 Tab같은 모양으로 구성했습니다. 

2 Grid
위에서 선택된 제품별 교육일정을 그리드에 목록으로 나타냅니다.

3 Div
교육장소에 관련된 내용들을 표시합니다.

주요기능 구현 설명

Grid의 Cell을 Radio로 표현하기

이미지 2

  1. Grid의 cell에 기본적인 표현하는 방법중에 Radio는 없습니다.

  2. cell을 Radio로 표현하기 위해 cell의 속성값 1cssclass에 Radio 이미지를 설정합니다.

  3. 2 'displaytype'을 'checkboxcontrol'로 3 'edittype'을 'checkbox'로 구성합니다.

  4. 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