| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750 |
- var MAX_WID = 800;
- var BASE_PATH = "/root/main/dutinfo/dutqestlist";
- var VALU_PATH = "/root/main/dutinfo/dutitemlist";
- // 성적입력폼이 그려져 있는지의 여부
- var gIsDrawDutRept = false;
- // 콘트롤생성때 임의적인 id부여에 사용됨.
- var gCtrlMaxID = 1;
- // 중간합계를 구하기 위한 인스턴스의 갯수를 카운트
- var gValueFlagCnt = 0;
- function fFormReady()
- {
- submit("TRRTS00602");
- rszfGetLabelControlComboList("R0314", "cmb_instcd", "detldesc");
-
- misfComboComCdListMulti("R0009", "cmb_mm");
- model.makeValue("/root/temp/cmbmm_nodeset", cmb_mm.choices.itemset.attribute("nodeset"));
-
- var today = getCurrentDate();
- var cur_yy = parseInt(today.substring(0, 4));
- var cur_mm = parseInt(today.substring(4, 6));
-
- model.setValue("/root/send/reqlist/valueyy", cur_yy);
- model.setValue("/root/send/reqlist/dutvaluemm", cur_mm);
- model.setValue("/root/send/reqlist/dutvaluemm", model.getValue("/root/send/reqlist/dutvaluemm").getLeftPad(2, "0"));
-
- if (!checkAuth("P"))
- {
- model.setValue("/root/send/req/instcd", getUserInfo("dutplceinstcd"));
-
- model.setValue("/root/send/req/valupsnidnm", getUserId());
-
- if (!checkAuth("P"))
- {
- cmb_instcd.disabled = true;
- cmb_deptcd.disabled = true;
- }
-
- }
- fCheckAuth();
-
- model.refresh();
- }
- //========================================================================================
- //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력/수정/삭제, P : 출력)
- //========================================================================================
- function fCheckAuth() {
- btn_search.disabled = !checkAuth("R") ;
- btn_save.disabled = !checkAuth("X") ;
- btn_helppsn.disabled = !checkAuth("P") ;
- }
- function fRefDutRept()
- {
- if (submit("TRRTS00701"))
- {
- fDrawDutRept();
- }
- }
- function fDrawDutRept()
- {
-
- var cnt = getNodesetCount(BASE_PATH);
-
- if (cnt == 0 || getNodesetCount(VALU_PATH) == 0)
- {
- messageBox("근무성적 입력을 위한 구성정보가 존재하지 않습니다.", "E", "");
- return;
- } else {
- //인턴일 경우 평가자 중복체크
- if (rdo_valueflag.value == "11") {
- cnt = checkDupNode(cnt);
- }
- }
-
- if (gIsDrawDutRept)
- {
- var childObj;
- for (var i=grup_base.children.length-1; i>=0; i--)
- {
- childObj = grup_base.children.item(i);
- grup_base.removeChild(childObj.attribute("id"));
- }
- grup_base.refresh();
- }
-
- gCtrlMaxID = 1;
- gValueFlagCnt = 0;
-
- try
- {
- var preCatgryid = "";
- var prePath = "";
-
- var topPos = 5;
- var prePos = 0;
- var subRowIdx = 0;
-
- for (var i = 1; i <= cnt; i++)
- {
- prePath = BASE_PATH + "["+i+"]/";
-
- if (preCatgryid != model.getValue(prePath + "valueitemflagcd"))
- {
- if (preCatgryid != "")
- {
- var cataCtrl = document.controls("cat_" + preCatgryid);
- cataCtrl.attribute("height") = topPos - parseInt(cataCtrl.attribute("top"));
- }
-
- topPos += 3;
- prePos = topPos;
- topPos += fDrawCatgry(prePath, topPos);
-
- fDrawHorLine(prePath, prePos-3, "line_1");
-
- preCatgryid = model.getValue(prePath + "valueitemflagcd");
-
- subRowIdx = 0;
-
- //topPos += fDrawResiExtrCtrl(prePath, topPos);
- //레지던트 종합표시
- topPos += fDrawResiExtrCtrl(prePath, topPos, "A");
- }
-
- prePos = topPos;
- topPos += fDrawQest(prePath, topPos);
-
- fDrawSelItem(prePath, prePos);
-
- if (model.getValue(prePath + "/valueflag") == "11") {
- //fDrawExtrCtrl(prePath, prePos, subRowIdx, 530);
- fDrawExtrCtrl(prePath, prePos, subRowIdx, 600);
- }
- subRowIdx++;
-
- }
-
- var cataCtrl = document.controls("cat_" + preCatgryid);
- cataCtrl.attribute("height") = topPos - parseInt(cataCtrl.attribute("top"));
-
- fDrawHorLine(prePath, topPos - 3, "line_1");
-
- fDrawExtrCtrl(prePath, topPos, -1, 530);
-
- //레지던트 하단표시
- fDrawResiExtrCtrl(prePath, topPos+50, "B");
-
- model.recalculate();
- model.refresh();
-
- gIsDrawDutRept = true;
- }
- catch (e)
- {
- gIsDrawDutRept = false;
- throw e;
- }
- }
- //중복평가자 노드확인
- function checkDupNode(cnt) {
- var prePath;
- var dupcnt = 0;
- var isCheck = false;
- for (var i = 1; i <= cnt; i++) {
- prePath = BASE_PATH + "["+i+"]/";
- valueitemflagcd = model.getValue(prePath + "valueitemflagcd");
- valueitemcd = model.getValue(prePath + "valueitemcd");
- dupcnt = getNodesetCount(BASE_PATH + "[valueitemflagcd = '"+valueitemflagcd+"' and valueitemcd='"+valueitemcd+"']");
- if (dupcnt > 1) {
- removeDupNode(valueitemflagcd, valueitemcd);
- isCheck = true
- } else {
- continue;
- }
- }
- if (isCheck) {
- cnt = getNodesetCount(BASE_PATH);
- }
- return cnt;
- }
- //중복평가자 노드삭제
- function removeDupNode(valueitemflagcd, valueitemcd){
-
- var firtstnode = null;
- var node = null;
- var nodelist = instance1.selectNodes(BASE_PATH + "[valueitemflagcd = '"+valueitemflagcd+"' and valueitemcd='"+valueitemcd+"']");
- firtstnode = nodelist.nextNode();
- var valupsnidnmlist = firtstnode.getXPathString("valupsnidnm");
- var kornamelist = firtstnode.getXPathString("korname");
- while (node = nodelist.nextNode()) {
- valupsnidnmlist = valupsnidnmlist + "," + node.getXPathString("valupsnidnm");
- kornamelist = kornamelist + "," + node.getXPathString("korname");
- model.removenode(node);
- }
- firtstnode.valupsnidnm.nodeValue = valupsnidnmlist;
- firtstnode.korname.nodeValue = kornamelist;
- }
- function fDrawHorLine(prePath, topPos, classNm) {
- var ctrlid = "lin_" + gCtrlMaxID++;
-
- var leftPos = 10;
- //var ctrlWid = 700;
- var ctrlWid = 690;
-
- if (classNm == null) {
- classNm = "line_3";
- leftPos = 55;
- if (model.getValue(prePath + "/valueflag") == "11") {
- ctrlWid = 600;
- } else {
- ctrlWid = 690;
- }
- }
-
- ctrl = grup_base.createChild("xforms:line", "id:" + ctrlid + "; class:" + classNm +
- "; x1:" + leftPos + "px; y1:" + topPos + "px; x2:" + ctrlWid + "px; y2:" + topPos + "px");
- }
- function fDrawSelItem(prePath, topPos)
- {
- var valueitemflagcd = model.getValue(prePath + "valueitemflagcd");
- var valueitemcd = model.getValue(prePath + "valueitemcd");
- var ctrlid = "rdo_" + valueitemcd;
-
- var leftPos = 270;
- var ctrlWid = 300;
- var ctrlHei = 20;
-
- topPos += 7;
-
- var ctrlName = "select1";
- var cols = "cellspacing:15; cols:5";
- if (model.getValue(prePath + "valueflag") == "12")
- {
- cols = "cellspacing:10; cols:10";
- }
-
- var ctrl = grup_base.createChild("xforms:" + ctrlName, "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" +topPos + "px; width:" + ctrlWid +
- "px; height:" + ctrlHei + "px; border-style:none; overflow:visible; appearance:full; " + cols +
- "; ref:" + prePath + "valueitempnt");
-
- var choices = ctrl.createChild("xforms:choices", "id:cho_" + valueitemcd + ";");
-
- var itemset = choices.createChild("xforms:itemset", "id:iset_" + valueitemcd +
- "; nodeset:" + VALU_PATH + "[valueitemflagcd='" + valueitemflagcd + "'];");
- itemset.createChild("xforms:label", "ref:valueitemcnts;");
- itemset.createChild("xforms:value", "ref:valueitemscor;");
-
- ctrl.disabled = gCtrlDisAbled;
-
- ctrl.attribute("xforms-value-changed") = "fSetRowStatus('valueitempnt')";
- }
- function fSetRowStatus(flag)
- {
- var ctrl = document.controls(event.target);
-
- var ref = ctrl.attribute("ref").replace(flag, "status");
-
-
- if (model.getValue(ref) == "")
- model.setValue(ref, "i");
- else if (model.getValue(ref) == "r")
- model.setValue(ref, "u");
- }
- function fDrawQest(prePath, topPos)
- {
- var ctrlid = "qes_" + model.getValue(prePath + "valueitemcd");
-
- var leftPos = 55;
- var ctrlWid = 200;
- var ctrlHei = 30;
-
- var ctrl = grup_base.createChild("xforms:caption", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" +topPos + "px; width:" + ctrlWid +
- "px; height:" + ctrlHei + "px; vertical-align:top; text:" + model.getValue(prePath + "valueitemnm")
- );
-
- fDrawHorLine(prePath, topPos);
-
- return ctrlHei;
- }
- var gCtrlDisAbled = false;
- function fDrawCatgry(prePath, topPos)
- {
- var ctrlid = "cat_" + model.getValue(prePath + "valueitemflagcd");
-
- var leftPos = 10;
- var ctrlWid = 40;
- var ctrlHei = 20;
-
- var ctrl = grup_base.createChild("xforms:caption", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" +topPos + "px; width:" + ctrlWid +
- "px; height:" + ctrlHei + "px; vertical-align:top; text:" + model.getValue(prePath + "valueitemflagnm") +
- "; font-size:15pt; font-weight:bold; class:cell_1");
-
- //return ctrlHei + 20;
-
- //평가자에게 할당된 항목만 활성화 된다.
- //평가자의 다음단계가 입력되지 않았다면 활성화 된다.
- //평가자의 이전단계가 입력되었다면 활성화 된다.
- var valueitemflagcd = model.getValue(prePath + "valueitemflagcd");
- var valupsnidnm = model.getValue(prePath + "valupsnidnm");
-
- if(checkAuth("X") && checkAuth("P"))
- {
- gCtrlDisAbled = false;
- }
- else
- {
- if (model.getValue(prePath + "cfrmyn") == "Y")
- {
- gCtrlDisAbled = true;
- }
- else if (valupsnidnm.indexOf(model.getValue("/root/send/req/valupsnidnm")) != -1 &&
- //getNodesetCount(BASE_PATH + "[valupsnidnm != '"+valupsnidnm+"' and valueitemflagcd > '"+valueitemflagcd+"' and valueitempnt != '']") == 0 &&
- //getNodesetCount(BASE_PATH + "[valupsnidnm != '"+valupsnidnm+"' and valueitemflagcd < '"+valueitemflagcd+"' and valueitempnt = '']") == 0)
- getNodesetCount(BASE_PATH + "[not(contains(valupsnidnm, '"+valupsnidnm+"')) and valueitemflagcd > '"+valueitemflagcd+"' and valueitempnt != '']") == 0 &&
- getNodesetCount(BASE_PATH + "[not(contains(valupsnidnm, '"+valupsnidnm+"')) and valueitemflagcd < '"+valueitemflagcd+"' and valueitempnt = '']") == 0)
- {
- gCtrlDisAbled = false;
- }
- else
- {
- gCtrlDisAbled = true;
- }
- }
- return 0;
- }
- function fDrawResiExtrCtrl_old(prePath, topPos)
- {
- if (model.getValue(prePath + "/valueflag") != "12") return 0;
-
- fDrawExtrCtrl(prePath, topPos, 0, 55);
- fDrawExtrCtrl(prePath, topPos, 1, 170);
- fDrawExtrCtrl(prePath, topPos, 2, 295);
-
- var ctrlid = "cmt_" + model.getValue(prePath + "valueitemflagcd");
-
- var ctrl = document.controls(ctrlid);
- ctrl.attribute("top") = topPos+5;
- ctrl.attribute("left") = 345;
- ctrl.attribute("height") = 20;
- ctrl.attribute("width") = 330;
-
- return 30;
- }
- function fDrawResiExtrCtrl(prePath, topPos, flag)
- {
- if (model.getValue(prePath + "/valueflag") != "12") return 0;
- if (flag == "A") {
- fDrawExtrCtrl(prePath, topPos, 1, 170);
- return 30;
- } else {
- fDrawExtrCtrl(prePath, topPos, 2, 10);
- fDrawExtrCtrl(prePath, topPos+30, 0, 10);
- var ctrlid = "cmt_" + model.getValue(prePath + "valueitemflagcd");
-
- var ctrl = document.controls(ctrlid);
- ctrl.attribute("top") = topPos+5;
- ctrl.attribute("left") = 60;
- ctrl.attribute("height") = 20;
- ctrl.attribute("width") = 500;
-
- //레지던트 확인자
- fDrawExtrCtrl(prePath, topPos+60, 4, 10);
- }
- }
- function fDrawExtrCtrl(prePath, topPos, subRowIdx, leftPos)
- {
- if (subRowIdx == 0)
- {
- ptext = "평가자:";
-
- fDrawOptPsnNm(prePath, topPos, "korname", leftPos+50);
- }
- else if (subRowIdx == 1)
- {
- ptext = "종합:";
-
- fDrawBind(prePath, topPos, model.getValue(prePath + "/valueitemflagcd"), leftPos+40);
- }
- else if (subRowIdx == 2)
- {
- ptext = "의견란:";
- fDrawMtxCmt(prePath, topPos);
- }
- else if (subRowIdx == 3)
- {
- var mtxid = "cmt_" + model.getValue(prePath + "valueitemflagcd");
- var mtxCtrl = document.controls(mtxid);
- mtxCtrl.attribute("top") = topPos - 5;
-
- return;
- }
- else if (subRowIdx == -1)
- {
- ptext = "합계";
-
- fDrawBind(prePath, topPos, "00", leftPos+50);
- topPos += 10;
- }
- else
- {
- //레지던트 확인자 그려주기(20081006)
- if (model.getValue(prePath + "valueflag") == "12" && subRowIdx == 4)
- {
- ptext = "확인자:";
- fDrawOptCfmNm(prePath, topPos, leftPos+50);
- }
- else {
- return;
- }
- }
-
- var ctrlid = "cap_" + gCtrlMaxID++;
-
- var ctrlWid = 50;
- var ctrlHei = 30;
-
- var ctrl = grup_base.createChild("xforms:caption", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" +topPos + "px; width:" + ctrlWid +
- "px; height:" + ctrlHei + "px; vertical-align:top; text:" + ptext
- );
- }
- // 중간합계를 구하기 위한 bind생성
- function fDrawBind(prePath, topPos, valueitemflagcd, leftPos)
- {
- var oriTopPos = topPos;
- var bindpath = "/root/main/sumlist";
-
- if (valueitemflagcd == "00") //합계
- {
- bindpath = "/root/main/totlist[1]";
- model.makeValue(bindpath + "/valueitemflagcd/valueitemflagcd", valueitemflagcd);
- model.makeValue(bindpath + "/valueitemflagcd/vsum", "0");
- model.makeValue(bindpath + "/valueitemflagcd/vtot", model.getXPathValue("sum(/root/main/sumlist/valueitemflagcd/vtot)"));
- }
- else
- {
- gValueFlagCnt++;
- bindpath = bindpath + "[" +gValueFlagCnt+ "]";
-
- model.makeValue(bindpath + "/valueitemflagcd/valueitemflagcd", valueitemflagcd);
- model.makeValue(bindpath + "/valueitemflagcd/vsum", "0");
- model.makeValue(bindpath + "/valueitemflagcd/vtot", model.getValue(prePath + "/valuepnt"));
- }
-
-
-
- var bindid = "bind_" + gCtrlMaxID++;
-
- var refPath = bindpath + "/valueitemflagcd/vsum";
- var calPath = BASE_PATH + "[valueitemflagcd='" +valueitemflagcd+ "']/valueitempnt";
-
- if (valueitemflagcd == "00") //합계
- {
- calPath = BASE_PATH + "/valueitempnt";
- //model.createChild("xforms:bind", "id:" + bindid + "; ref:" + refPath + "; calculate:sum(" + calPath + "); ");
- model.createChild("xforms:bind", "id:" + bindid + "; ref:" + refPath + "; calculate:round(sum(" + calPath + ") * power(10, (-2)*(-1)-1)) div power(10, (-2)*(-1)-1); ");
-
- topPos += 15;
- oriTopPos += 10;
- }
- else
- {
- //model.createChild("xforms:bind", "id:" + bindid + "; ref:" + refPath + "; calculate:sum(" + calPath + "); ");
- model.createChild("xforms:bind", "id:" + bindid + "; ref:" + refPath + "; calculate:round(sum(" + calPath + ") * power(10, (-2)*(-1)-1)) div power(10, (-2)*(-1)-1); ");
-
- topPos += 5;
- }
-
-
- var ctrlWid = 40;
- var ctrlHei = 30;
-
- //입력된 성적의 합계
- var ctrlid = "opt_" + gCtrlMaxID++;
- ctrl = grup_base.createChild("xforms:output", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" + topPos + "px; width:" + ctrlWid + "px; height:" + ctrlHei + "px" +
- "; bind:" + bindid);
-
- leftPos += 35;
- ctrlid = "cap_" + gCtrlMaxID++;
- ctrl = grup_base.createChild("xforms:caption", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" +oriTopPos + "px; width:10" +
- "px; height:" + ctrlHei + "px; vertical-align:top; text:/");
-
- //성적의 총합계
- leftPos += 15;
- ctrlid = "opt_" + gCtrlMaxID++;
- ctrl = grup_base.createChild("xforms:output", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" + topPos + "px; width:" + ctrlWid + "px; height:" + ctrlHei + "px" +
- "; ref:" + bindpath + "/valueitemflagcd/vtot");
- }
- function fDrawMtxCmt(prePath, topPos)
- {
- var ctrlid = "cmt_" + model.getValue(prePath + "valueitemflagcd");
-
- var leftPos = 600;
- var ctrlWid = 160;
- var ctrlHei = 60;
-
- var ctrl = grup_base.createChild("xforms:textarea", "id:" + ctrlid + "; scroll:autovscroll" +
- "; left:" + leftPos + "px; top:" + topPos + "px; width:" + ctrlWid + "px; height:" + ctrlHei + "px" +
- "; ref:" + prePath + "cmt");
-
- ctrl.attribute("editable") = (!gCtrlDisAbled) + "";
-
- if (gCtrlDisAbled)
- {
- ctrl.attribute("background-color") = "#ecebec";
- }
-
- ctrl.attribute("xforms-value-changed") = "fSetRowStatus('cmt')";
- }
- function fDrawOptPsnNm(prePath, topPos, refColNm, leftPos)
- {
- var ctrlid = "psn_" + model.getValue(prePath + "valueitemflagcd");
-
- var ctrlWid = 100;
- var ctrlHei = 30;
-
- topPos += 5;
-
- ctrl = grup_base.createChild("xforms:output", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" + topPos + "px; width:" + ctrlWid + "px; height:" + ctrlHei + "px" +
- "; ref:" + prePath + refColNm);
- }
- function fDrawOptCfmNm(prePath, topPos, leftPos)
- {
- var ctrlid = "cfm_" + model.getValue(prePath + "valueitemflagcd");
-
- var ctrlWid = 100;
- var ctrlHei = 30;
-
- topPos += 5;
-
- ctrl = grup_base.createChild("xforms:output", "id:" + ctrlid +
- "; left:" + leftPos + "px; top:" + topPos + "px; width:" + ctrlWid + "px; height:" + ctrlHei + "px" +
- "; ref:" + "/root/main/confirminfo/confirmorlist/cfrname");
- }
- function fSave()
- {
- model.refresh();
-
- var childLen = grup_base.children.length;
- var tmpChildObj = null;
- for( var i = 0; i < childLen; i++ ) {
- tmpChildObj = grup_base.children.item(i);
-
- if( tmpChildObj.elementName == "xforms:select1" ) {
- tmpChildObj.attribute("background-color") = "transparent";
- }
- }
-
- var nodelist;
- var ctrl;
- //실무자일때 성적을 모두 입력했는지를 검사
- if (model.getValue("/root/send/reqlist/checkflag") == "X") {
- nodelist = instance1.selectNodes(BASE_PATH + "[valueitempnt='']");
- if (nodelist.length > 0) {
- for (var i=0; i<nodelist.length; i++) {
- ctrl = document.controls("rdo_" + nodelist.item(i).getXPathString("valueitemcd"));
- ctrl.attribute("background-color") = "#ffd799";
- if (nodelist.item(i).getXPathString("valueitempnt") == "") {
- messageBox("모든 성적을 입력 해주시기 바랍니다.", "I", "");
- return;
- }
- }
- }
- }
-
- //평가자에게 할당된 성적을 모두 입력했는지를 검사
- var valupsnidnm = model.getValue("/root/send/reqlist/valupsnidnm");
- //nodelist = instance1.selectNodes(BASE_PATH + "[valupsnidnm = '"+valupsnidnm+"' and valueitempnt='']");
- nodelist = instance1.selectNodes(BASE_PATH + "[contains(valupsnidnm, '"+valupsnidnm+"') and valueitempnt='']");
-
- if (nodelist.length > 0)
- {
- var ctrl;
- for (var i=0; i<nodelist.length; i++)
- {
- ctrl = document.controls("rdo_" + nodelist.item(i).getXPathString("valueitemcd"));
- ctrl.attribute("background-color") = "#ffd799";
- if (nodelist.item(i).getXPathString("valueitempnt") == "") {
- messageBox("모든 성적을 입력 해주시기 바랍니다.", "I", "");
- return;
- }
- }
-
- }
-
- //입력된 항목에 한해서 등급을 찾아 입력
- var colref_status = grd_saverept.colRef("status");
- var colref_valueitemflagcd = grd_saverept.colRef("valueitemflagcd");
- var colref_valueitempnt = grd_saverept.colRef("valueitempnt");
- var colref_valueitemgrde = grd_saverept.colRef("valueitemgrde");
- var itemGrade;
-
- var chgcnt = 0;
- for (var i=1; i<=grd_saverept.rows; i++)
- {
- var val_status = grd_saverept.valueMatrix(i, colref_status);
- if (val_status == "i" || val_status == "u")
- {
- chgcnt++;
- grd_saverept.rowStatus(i) = 2;
-
- itemGrade = fGetItemGrade( grd_saverept.valueMatrix(i, colref_valueitemflagcd), grd_saverept.valueMatrix(i, colref_valueitempnt) );
-
- grd_saverept.valueMatrix(i, colref_valueitemgrde) = itemGrade;
- }
- }
-
- //평가자의 할당된 성적이 모두 최고 또는 최저점수 일때는 의견란은 필수
- nodelist = instance1.selectNodes(BASE_PATH + "[valupsnidnm = '"+valupsnidnm+"']/valueitemflagcd");
- var valueitemflagcd = "";
- for (var i=0; i<nodelist.length; i++)
- {
- if (valueitemflagcd != nodelist.item(i).text)
- {
- valueitemflagcd = nodelist.item(i).text;
-
- var num_max = model.getXPathValue("max("+VALU_PATH+"[valueitemflagcd = '"+valueitemflagcd+"']/rownum)");
- var num_min = model.getXPathValue("min("+VALU_PATH+"[valueitemflagcd = '"+valueitemflagcd+"']/rownum)");
-
- var val_max = model.getXPathValue(VALU_PATH+"[valueitemflagcd = '"+valueitemflagcd+"' and rownum = '"+num_max+"']/valueitemgrde");
- var val_min = model.getXPathValue(VALU_PATH+"[valueitemflagcd = '"+valueitemflagcd+"' and rownum = '"+num_min+"']/valueitemgrde");
-
- var cnt_all = getNodesetCount(BASE_PATH + "[valueitemflagcd = '"+valueitemflagcd+"']");
- var cnt_max = getNodesetCount(BASE_PATH + "[valueitemflagcd = '"+valueitemflagcd+"' and valueitemgrde='"+val_max+"']");
- var cnt_min = getNodesetCount(BASE_PATH + "[valueitemflagcd = '"+valueitemflagcd+"' and valueitemgrde='"+val_min+"']");
-
- if (cnt_all == cnt_max || cnt_all == cnt_min)
- {
- var ctrl = document.controls("cmt_" + valueitemflagcd);
- if (model.getValue(ctrl.attribute("ref")) == "")
- {
- messageBox("모든 성적이 최고 또는 최저 일때는 의견이 필요합니다.", "I", "");
- return;
- }
- }
- }
- }
- if (chgcnt > 0)
- {
- model.setValue("/root/main/savelist", grd_saverept.getUpdateData());
-
- if (submit("TXRTS00701"))
- {
- grd_dutemplist.valueMatrix(grd_dutemplist.row, grd_dutemplist.colRef("recyn")) = "Y";
- grd_dutemplist.rowStatus(grd_dutemplist.row) = 2;
- grd_dutemplist.refresh();
-
- fRefDutRept();
- }
- }
- else
- {
- messageBox("변경된 내역이 없습니다.", "I", "");
- }
- }
- function fGetItemGrade(pValueItemFlagCd, pValueItemPnt)
- {
- if (pValueItemFlagCd == "" || pValueItemPnt == "")
- return;
-
- var node = instance1.selectSingleNode(VALU_PATH + "[valueitemflagcd='"+pValueItemFlagCd+"' and valueitemscor='"+pValueItemPnt+"']");
-
- return node.getXPathString("valueitemgrde");
- }
- function fOpenPsnHelp()
- {
- setParameter("SMRTC00200_yy", model.getValue("/root/send/reqlist/valueyy"));
- setParameter("SMRTC00200_mm", model.getValue("/root/send/reqlist/dutvaluemm"));
- setParameter("SMRTC00200_valueflag", model.getValue("/root/send/reqlist/valueflag"));
-
- setParameter("SMRTC00200_instcd", model.getValue("/root/send/req/instcd"));
- setParameter("SMRTC00200_deptcd", model.getValue("/root/send/req/deptcd"));
-
- setParameter("SMRTC00200_valupsnidnm", "");
-
- modalUrl("../../../mis/tistrngeducbaseinfomngtweb/xrw/SMRTC00200_근무평가자관리.xrw", 1, 0, 0, "", "", "");
-
- if (getParameter("SMRTC00200_valupsnidnm") != "")
- {
- model.setValue("/root/send/reqlist/valupsnidnm", getParameter("SMRTC00200_valupsnidnm"));
-
- btn_search.dispatch("DOMActivate");
- }
- }
- function fSetMultiPnt(valueitemgrde) {
- var cnt = getNodesetCount(BASE_PATH);
- var valueitempntpath;
- var statuspath;
- var node;
-
- for (var i = 1; i <= cnt; i++) {
- valueitempntpath = BASE_PATH + "["+i+"]/valueitempnt";
- statuspath = BASE_PATH + "["+i+"]/status";
- valueitemflagcd = model.getValue(BASE_PATH + "["+i+"]/valueitemflagcd");
- node = instance1.selectSingleNode(VALU_PATH+"[valueitemflagcd='"+valueitemflagcd+"' and valueitemgrde='"+valueitemgrde+"']");
- model.setValue(valueitempntpath, node.getXPathString("valueitemscor"));
- //상태변경
- if (model.getValue(statuspath) == "") {
- model.setValue(statuspath, "i");
- } else if (model.getValue(statuspath) == "r") {
- model.setValue(statuspath, "u");
- }
- }
- model.recalculate();
- model.refresh();
- }
|