MIS.js 116 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725
  1. var MASTDETAIL_NODE = "/root/gridset/mastdetailset";
  2. var VALIDATION_LIST = "";
  3. var BODY_CONTROLS = new Array();
  4. var BODY_CONTROLS_INDEX = new Array();
  5. var CONTROLS_MOVE_CNT = 0;
  6. var PURTARGET_NODE = "/root/target/defaultvalue";
  7. var DUT_UNIT_CD = ""; // 근무 부서
  8. var DUT_UNIT_NM = ""; // 근무 부서명
  9. var JOB_RESP_CD = ""; // 직책
  10. var DUT_TEAM_CD = ""; // 근무 부서
  11. var DUT_TEAM_NM = ""; // 근무 부서명
  12. var DEPT_CD = ""; // 근무 부서
  13. var DEPT_NM = ""; // 근무 부서명
  14. var DUTY_RESP_YN = ""; // 복무 책임자
  15. var DUTY_PART_YN = ""; // 인사 복무 담당자
  16. var DUTY_PAY_YN = ""; // 급여 담당자
  17. var PSN_INST_YN = ""; // 인사 타기관 조회
  18. String.prototype.getUTF8Length = getUTF8Length;
  19. function misfSetGridColumn(pitem_kind, pitem_nm) {
  20. var item_kind = pitem_kind.split(",");
  21. var item_nm = pitem_nm.split(",");
  22. var item_cnt = datagrid1.cols;
  23. for(i=0;i<item_cnt;i++) {
  24. datagrid1.removeColumn();
  25. datagrid1.rebuild();
  26. }
  27. datagrid1.caption = "";
  28. for(i=0;i<item_kind.length;i++) {
  29. if (datagrid1.caption.length <= 0) {
  30. datagrid1.caption = item_kind[i];
  31. }
  32. else {
  33. datagrid1.caption = datagrid1.caption + "^" + item_kind[i];
  34. }
  35. datagrid1.addColumn("ref:" + item_nm[i] + "; type:output;");
  36. }
  37. datagrid1.rebuild();
  38. datagrid1.refresh();
  39. }
  40. function misfSetGridData(pitem_kind, pitem_nm, psource, precv_ref) {
  41. model.removeNodeset(psource);
  42. model.makeNode(psource + "/col");
  43. model.makeNode(psource + "/colname");
  44. model.makeNode(psource + "/recvref");
  45. model.setValue(psource + "/col",pitem_kind);
  46. model.setValue(psource + "/colname",pitem_nm);
  47. model.setValue(psource + "/recvref",precv_ref);
  48. model.refresh();
  49. }
  50. //코드 HELP 화면 OPEN-Modal
  51. /*
  52. phelp_kind : "01" - 사번조회
  53. "02" - 부서코드
  54. "03" - 공통코드
  55. "04" - 우편번호
  56. "05" - 계정코드
  57. pcontrol_name : OPEN하는 Control명(Grid,Input.....)
  58. pcdgrupid : 공통코드일경우 코드군 ("Z0007","R0001"...)
  59. precv_list: 리턴받을 Instance명 (마지막 Element만 ','로 분리)
  60. pdefault_value : 부모 윈도우에서 넘어오는 값
  61. pcheck_yn : 선택형 팝업창인지 아닌지를 체크
  62. */
  63. function misfOpenPopUpList(phelp_kind, pcontrol_name, pcdgrupid, precv_list, pdefault_value, pNodeName,precvnm_list) {
  64. var recv_list = precv_list.split(",");
  65. var arrNodeNames = "";
  66. if(pdefault_value != "" && pdefault_value != null)
  67. {
  68. var default_value = pdefault_value.split(",");
  69. }
  70. if(pNodeName != "" && pNodeName != null)
  71. {
  72. var arrNodeNames = pNodeName.split(",");
  73. }
  74. // model.removeNodeset("/root/source");
  75. // model.removeNodeset("/root/target");
  76. //
  77. // model.makeNode("/root/source");
  78. // model.makeNode("/root/target");
  79. var recvref_node = "/root/source/recvref";
  80. var cdgrupid_node = "/root/source/cdgrupid";
  81. var recvitem_node = "/root/source/recvitem";
  82. var default_node = "/root/source/defaultvalue";
  83. var checkyn_node = "/root/source/checkyn";
  84. var control_node = "/root/source/control";
  85. model.removeNodeset(recvref_node);
  86. model.removeNodeset(cdgrupid_node);
  87. model.removeNodeset(recvitem_node);
  88. model.removeNodeset(default_node);
  89. model.removeNodeset(checkyn_node);
  90. model.removeNodeset(control_node);
  91. model.makeNode(recvref_node);
  92. model.makeNode(cdgrupid_node);
  93. model.makeNode(recvitem_node);
  94. model.makeNode(default_node);
  95. model.makeNode(checkyn_node);
  96. if(precvnm_list != null && precvnm_list.length >0)
  97. {
  98. var recvnm_list = precvnm_list.split(",");
  99. for (var k = 0; k <= recv_list.length - 1; k++) {
  100. model.makeValue(recvitem_node + "/" + recv_list[k], recvnm_list[k]);
  101. }
  102. }
  103. else
  104. {
  105. for (var k = 0; k <= recv_list.length - 1; k++) {
  106. model.makeValue(recvitem_node + "/" + recv_list[k], recv_list[k]);
  107. }
  108. }
  109. var obj = null;
  110. if (pcontrol_name.elementName == "xforms:datagrid") {
  111. //grid에서 호출 했을경우.
  112. pcontrol_name.endEditCell();
  113. if(pdefault_value != "" && pdefault_value != null)
  114. {
  115. for (var z = 0; z < default_value.length; z++)
  116. {
  117. obj = document.controls(default_value[z]);
  118. if (obj != null && obj.elementName != "xforms:datagrid" && obj.elementName != "xforms:col") // 08.02.19 obj.elementName != "xforms:col" 조건 추가 help로 넘겨주는 node의 type이 Grid의 특정 column 일 경우..
  119. {
  120. model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
  121. // model.makeValue(default_node + default_value[z] ,
  122. // model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1) "/" + default_value[z]));
  123. }
  124. else if (obj != null && obj.elementName == null && arrNodeNames.length == default_value.length)
  125. {
  126. model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
  127. }
  128. else if(obj == null) // 아래 4줄 추가 황 default 가 '%' 로 call됨 ( instcd ) 2007.07.24.. 이상있음 연락바람.
  129. {
  130. model.makeValue(default_node + "/" + arrNodeNames[z] , default_value[z]);
  131. }
  132. else //아래 4줄 추가 .. END
  133. {
  134. model.makeValue(default_node + "/" + default_value[z] ,
  135. model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1)+ "]/" + default_value[z]));
  136. }
  137. }
  138. }
  139. model.setValue(recvref_node, pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1) + "]");
  140. }
  141. else
  142. {
  143. //grid외의 control에서 호출했을경우.
  144. var node_path = pcontrol_name.attribute("ref").split("/");
  145. var source_path = "/root";
  146. for (var i = 2 ; i < node_path.length - 1; i++)
  147. {
  148. source_path = source_path + "/" + node_path[i];
  149. }
  150. if(pdefault_value != "" && pdefault_value != null)
  151. {
  152. for (var z = 0; z < default_value.length; z++)
  153. {
  154. obj = document.controls(default_value[z]);
  155. if (obj != null && arrNodeNames.length == default_value.length)
  156. {
  157. model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
  158. }
  159. else if(obj != null)
  160. {
  161. model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
  162. }
  163. // 아래 4줄 추가 황 default 가 '%' 로 call됨 ( instcd ) 2007.07.24.. 이상있음 연락바람.
  164. else if(obj == null)
  165. {
  166. model.makeValue(default_node + "/" + arrNodeNames[z] , default_value[z]);
  167. }
  168. //아래 4줄 추가 .. END
  169. }
  170. }
  171. model.setValue(recvref_node ,source_path);
  172. }
  173. if (pcdgrupid.length > 0 ) {
  174. model.setValue(cdgrupid_node ,pcdgrupid);
  175. }
  176. model.makeValue(control_node, pcontrol_name.attribute("id"));
  177. var window_name = "" ;
  178. if (phelp_kind == "01") //인사마스타
  179. {
  180. window_name = "SPRPC90200";
  181. }
  182. else if (phelp_kind == "02") //부서코드
  183. {
  184. window_name = "SPRPZ00200";
  185. }
  186. else if (phelp_kind == "03") //공통코드
  187. {
  188. window_name = "SPRPZ00300";
  189. }
  190. else if (phelp_kind == "04") //우편번호
  191. {
  192. window_name = "SPRPZ00400";
  193. }
  194. else if (phelp_kind == "05") //계정코드
  195. {
  196. window_name = "PPRAC00100_계정코드HELP";
  197. }
  198. else if (phelp_kind == "06") //기재사항
  199. {
  200. window_name = "PPRAC00300";
  201. }
  202. else if (phelp_kind == "07") //코드군
  203. {
  204. window_name = "SPRPC90100";
  205. }
  206. else if (phelp_kind == "08") //선택형 부서코드 (check_value세팅을 Y,N으로 할것)
  207. {
  208. window_name = "SPRPZ00500"; //부모UI에 선택형 부서코드UI와 같은 그리드가 존재하여야 함(노드셋까지 같을것 /root/main/deptlist)
  209. model.setValue("/root/source/checkyn",'Y');
  210. }
  211. else if (phelp_kind == "09") //근무코드HELP
  212. {
  213. window_name = "SPRPC90300";
  214. }
  215. else if (phelp_kind == "09-1") //통합근무코드HELP
  216. {
  217. window_name = "SPRPC90400";
  218. }
  219. else if (phelp_kind == "10") //예산코드HELP
  220. {
  221. window_name = "SPRBC00100";
  222. }
  223. else if (phelp_kind == "11") //예산관리부서HELP
  224. {
  225. window_name = "SPRBC00200";
  226. }
  227. else if (phelp_kind == "12") //사용자HELP
  228. {
  229. window_name = "SPRBC00300";
  230. }
  231. else if (phelp_kind == "13") //급여항목HELP
  232. {
  233. window_name = "SPRWZ00100";
  234. }
  235. else if (phelp_kind == "14") //거래처 관리 HELP
  236. {
  237. window_name = "PPRAC00600";
  238. }
  239. else if (phelp_kind == "15") //계좌번호 HELP
  240. {
  241. window_name = "PPRAC00400";
  242. }
  243. else if (phelp_kind == "16") //예산편성내역 HELP
  244. {
  245. window_name = "SPRAD00107";
  246. }
  247. else if (phelp_kind == "17") //예산사용부서 관, 항, 목, 세목 조회
  248. {
  249. window_name = "SPRBC00500";
  250. }
  251. else if (phelp_kind == "18") //평가분류 세부코드 조회
  252. {
  253. window_name = "SPRPV00500";
  254. }
  255. else if (phelp_kind == "19") //설치업체 조회
  256. {
  257. window_name = "PPRAC00700";
  258. }
  259. else if (phelp_kind == "20") //사용자별 스캐줄 부서 조회
  260. {
  261. window_name = "SMRPD01200";
  262. }
  263. else if (phelp_kind == "21") //근태관련 사용자 조회
  264. {
  265. window_name = "SPRPD00100";
  266. }
  267. else if (phelp_kind == "22") //연장근무자 조회
  268. {
  269. window_name = "SPRPD01300";
  270. }
  271. else if(phelp_kind == "23") // Project ID Help
  272. {
  273. window_name = "SPRAC01000";
  274. }
  275. else if (phelp_kind == "24") //계좌구분별 이체계좌 HELP
  276. {
  277. window_name = "SPRAD00110";
  278. }
  279. else if (phelp_kind == "25") //의료비 지급 대상자 조회
  280. {
  281. window_name = "SPRWY00600";
  282. }
  283. else if (phelp_kind == "26") //법인카드 HELP
  284. {
  285. window_name = "PPRAC00800";
  286. }
  287. else if (phelp_kind == "27") //연말정산항목 HELP
  288. {
  289. window_name = "SPRWZ00200";
  290. }
  291. else if (phelp_kind == "28") //부서별 근무지 조회
  292. {
  293. window_name = "SPRPB03000";
  294. }else if (phelp_kind == "29") //채용관련사용자조회
  295. {
  296. window_name = "SPRTC00800";
  297. }else if (phelp_kind == "30") //개인별항목별급여내역비교
  298. {
  299. window_name = "SMRWP02500";
  300. }
  301. else if (phelp_kind == "31") //회계 지출증빙 원천징수 관련 소득자조회
  302. {
  303. window_name = "SPRAC00900";
  304. }
  305. else if (phelp_kind == "32") //가족사항조회
  306. {
  307. window_name = "SPRPA07300";
  308. }
  309. else if (phelp_kind == "33") //급여기관별사원내역조회
  310. {
  311. window_name = "SMRWC00510";
  312. }
  313. else if (phelp_kind == "34") //입사지원자조회
  314. {
  315. window_name = "SPRTS00101";
  316. }
  317. else if (phelp_kind == "35") //지도전문의조회
  318. {
  319. window_name = "SPRTS00204";
  320. }
  321. else if (phelp_kind == "36") //부서코드
  322. {
  323. window_name = "SPRPZ00210";
  324. }
  325. else if (phelp_kind == "37") //평가직책코드
  326. {
  327. window_name = "SPRPZ00600";
  328. }
  329. else if (phelp_kind == "38") //개인가족사항변경시 가족사항
  330. {
  331. window_name = "SPRPB02208";
  332. }
  333. else if (phelp_kind == "39") //개인가족사항변경시 학력사항
  334. {
  335. window_name = "SPRPB02209";
  336. }
  337. else if (phelp_kind == "40") //개인가족사항변경시 자격면허사항
  338. {
  339. window_name = "SPRPB02210";
  340. }
  341. else if (phelp_kind == "41") //개인가족사항변경시 경력사항
  342. {
  343. window_name = "SPRPB02211";
  344. }
  345. else if (phelp_kind == "42") //멸균장비모드 help
  346. {
  347. window_name = "SPRSD00300";
  348. }
  349. else if (phelp_kind == "43") // 멸균물품 상세내역 List Help
  350. {
  351. window_name = "SPRSD00310";
  352. }
  353. else if (phelp_kind == "44") // 집합계좌 HELP
  354. {
  355. window_name = "SPRAD00120";
  356. }
  357. else if (phelp_kind == "45") // 사용자 HELP(구매)
  358. {
  359. window_name = "SPRSD00320";
  360. }
  361. else if (phelp_kind == "46") // 승진직급 HELP
  362. {
  363. window_name = "SPRPH00201";
  364. }
  365. else if (phelp_kind == "47") // 예산편성부서 HELP
  366. {
  367. window_name = "SPRBC01400";
  368. }
  369. else if (phelp_kind == "48") //편성 예산 코드 HELP
  370. {
  371. window_name = "SPRBC01500";
  372. }
  373. else if (phelp_kind == "49") //근로소득자 조회 HELP
  374. {
  375. window_name = "SPRPC90500";
  376. }
  377. else if (phelp_kind == "50") //차입금 조회 HELP
  378. {
  379. window_name = "PPRAC01100";
  380. }
  381. else if (phelp_kind == "51") //유가증권 조회 HELP
  382. {
  383. window_name = "PPRAC01200";
  384. }
  385. else if (phelp_kind == "52") //CSR청구부서 HELP
  386. {
  387. window_name = "SPRPZ00220";
  388. }
  389. else if (phelp_kind == "53") //사용자 DTI E-mail HELP
  390. {
  391. window_name = "SPRAC01100";
  392. }
  393. else if (phelp_kind == "54") //경력관리용 부서마스터조회
  394. {
  395. window_name = "SPRPB00602";
  396. }
  397. else if (phelp_kind == "55") //법인카드 HELP2
  398. {
  399. window_name = "PPRAC00900";
  400. }
  401. else if (phelp_kind == "56") //회계 거래처코드 HELP
  402. {
  403. window_name = "PPRAC01300";
  404. }
  405. else
  406. {
  407. window_name = "";
  408. }
  409. modal(window_name, null, null, null, "", "/root/source", "/root/target" );
  410. }
  411. //코드 HELP 화면의 선택된 값 Return
  412. /*
  413. pgrid_name : HELP화면의 Grid
  414. */
  415. function misfPopUpListReturn(pgrid_name, nodebigo) {
  416. try
  417. {
  418. var recv_ref = model.getValue("root/target/recvref");
  419. // var ins = document.models( 0 ).instances( 0 );
  420. var node = instance1.selectNodes("root/target/recvitem/*");
  421. var checkyn = model.getValue("/root/target/checkyn");
  422. var control_name = model.getValue("root/target/control");
  423. var obj = document.controls(control_name);
  424. var getreturn = "";
  425. if(checkyn == "Y") {
  426. check_node = instance1.selectNodes("root/main/deptcodelist");
  427. }
  428. if (checkOpener())
  429. {
  430. // for (var i = 1; i < pgrid_name.cols; i++) {
  431. // for (var j = 0; j < node.length; j++) {
  432. // if (node.item(j).nodeName == pgrid_name.colAttribute(i,"ref")) {
  433. // opener.model.setValue(recv_ref + "/" + pgrid_name.colAttribute(i,"ref"), model.getValue(pgrid_name.nodeset + "[" + pgrid_name.row + "]/" + pgrid_name.colAttribute(i,"ref")));
  434. // }
  435. // }
  436. // }
  437. if(checkyn == "Y")
  438. {
  439. var opener_count = 1;
  440. for( var k = 0; k < check_node.length; k++)
  441. {
  442. if(pgrid_name.valueMatrix(k,1) == "Y")
  443. {
  444. model.setValue("root/target/recvref","/root/main/deptlist[" + opener_count + "]");
  445. recv_ref = model.getValue("root/target/recvref");
  446. opener.grd_deptlist.addRow();
  447. if(nodebigo != null && nodebigo == "Y")
  448. {
  449. for (var j = 0; j < node.length; j++)
  450. {
  451. if(pgrid_name.colRef(node.item(j).nodeName) != -1)opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "["+ k + "]/" + node.item(j).nodeName));
  452. }
  453. }
  454. else
  455. {
  456. for (var j = 0; j < node.length; j++)
  457. {
  458. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "["+ k + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  459. }
  460. }
  461. opener_count++;
  462. }
  463. }
  464. }
  465. else
  466. {
  467. if(nodebigo != null && nodebigo == "Y")
  468. {
  469. for (var j = 0; j < node.length; j++) {
  470. if(pgrid_name.colRef(node.item(j).nodeName) != -1)opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + node.item(j).nodeName));
  471. }
  472. }
  473. else
  474. {
  475. for (var j = 0; j < node.length; j++)
  476. {
  477. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  478. }
  479. }
  480. }
  481. // var objID = opener.event.target;
  482. var objID = opener.event.currentTarget;
  483. var obj = opener.document.controls(objID);
  484. // if (obj.elementName == "xforms:gridbutton") {
  485. if (obj.elementName == "xforms:datagrid") {
  486. //var grid_name = opener.document.controls(objID).parent.parent;
  487. if (obj.rowstatus(obj.row) == 0) {
  488. obj.rowstatus(obj.row) = 2;
  489. }
  490. }
  491. // opener.model.refresh();
  492. window.close();
  493. }
  494. else {
  495. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  496. }
  497. }
  498. catch(Exception)
  499. {
  500. window.close();
  501. }
  502. }
  503. //코드 HELP 화면에서 취소 버튼 Click시 처리
  504. /*
  505. pgrid_name : HELP화면의 Grid
  506. */
  507. function misfPopUpListCancel() {
  508. var recv_ref = model.getValue("root/target/recvref");
  509. var node = instance1.selectNodes("root/target/recvitem/*");
  510. var checkyn = model.getValue("/root/target/checkyn");
  511. if(checkyn == "Y") {
  512. check_node = instance1.selectNodes("root/main/deptcodelist");
  513. }
  514. if (checkOpener()) {
  515. if(checkyn == "Y") {
  516. var opener_count = 1;
  517. // for( var k = 0; k < check_node.length; k++){
  518. // if(pgrid_name.valueMatrix(k,1) == "Y") {
  519. // model.setValue("root/target/recvref","/root/main/deptlist[" + opener_count + "]");
  520. // recv_ref = model.getValue("root/target/recvref");
  521. //
  522. // opener.grd_deptlist.addRow();
  523. // for (var j = 0; j < node.length; j++) {
  524. // opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "["+ k + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  525. // }
  526. // opener_count++;
  527. // }
  528. // }
  529. }
  530. else {
  531. for (var j = 0; j < node.length; j++) {
  532. //opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, "");
  533. }
  534. }
  535. var objID = opener.event.currentTarget;
  536. var obj = opener.document.controls(objID);
  537. window.close();
  538. }
  539. else {
  540. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  541. }
  542. }
  543. //콤보에 공통코드 Setting
  544. /*
  545. pcdgrupid : 공통코드군
  546. pcontrol_name : Data를 받을 Control
  547. */
  548. function misfComboComCdList(pcdgrupid, pcontrol_name,pall) {
  549. var control_id = pcontrol_name.attribute("id");
  550. var comcd_node = "/root/send/comcdref";
  551. var comcd_rsltnode = "/root/init/comcd";
  552. var comcd_itemset = "/root/init/" + control_id;
  553. model.removeNodeset(comcd_node);
  554. model.removeNodeset(comcd_itemset);
  555. model.makeNode(comcd_node);
  556. model.makeNode(comcd_node + "/cdgrupid");
  557. model.makeNode(comcd_node + "/cdid");
  558. model.makeNode(comcd_node + "/cdnm");
  559. model.makeNode(comcd_node + "/refcond");
  560. model.makeNode(comcd_rsltnode);
  561. model.makeNode(comcd_itemset);
  562. pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
  563. pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
  564. pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
  565. pcontrol_name.refresh();
  566. model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
  567. model.setValue(comcd_node + "/cdid","%");
  568. model.setValue(comcd_node + "/cdnm","%");
  569. model.removeChild("TRRPZ00301");
  570. model.createChild("xforms:submission", "id:TRRPZ00301;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  571. submit("TRRPZ00301");
  572. if(pall != null && pall == "Y")
  573. {
  574. model.makeValue(comcd_itemset+"/comcodelist[" +1+ "]/cdnm", "전체");
  575. model.makeValue(comcd_itemset+"/comcodelist[" +1+ "]/cdid", "");
  576. sourcenode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode);
  577. tarnode = document.models(0).instances(0).selectSingleNode(comcd_itemset);
  578. cnt = 1;
  579. var sourcenodelist = sourcenode.childNodes;
  580. while (childNode = sourcenodelist.nextNode())
  581. {
  582. model.makeValue(comcd_itemset+"/comcodelist[" +(cnt + 1)+ "]/cdnm", childNode.getXPathString(comcd_rsltnode + "/comcodelist[" +cnt + "]/cdnm"));
  583. model.makeValue(comcd_itemset+"/comcodelist[" +(cnt + 1)+ "]/cdid", childNode.getXPathString(comcd_rsltnode + "/comcodelist[" +cnt + "]/cdid"));
  584. cnt++;
  585. }
  586. }
  587. else model.copyNode(comcd_itemset,comcd_rsltnode);
  588. model.refresh();
  589. //if(pcontrol_name.length == 1) pcontrol_name.selectedindex= 0;
  590. }
  591. //콤보에 공통코드 Setting
  592. /**
  593. pcdgrupid : 공통코드군
  594. pcontrol_name : Data를 받을 Control
  595. pLabel : COM.ZBCMCODE Table의 컬럼중 특정 컬럼의 명칭이 들어온다.
  596. pLabel의 유무에 따라 Label 설정되는 값이 변경된다.
  597. ex> dispseq
  598. cdsid
  599. cdgrupid
  600. detldesc
  601. cdval
  602. minval
  603. maxval
  604. minopercd
  605. maxopercd
  606. cdengabbrnm
  607. valifromdd
  608. valitodd
  609. */
  610. function misfComboComCdListMulti(pcdgrupid_list, pcontrol_name_list, pLabel, sBlankYn)
  611. {
  612. var cdgrupid_list = pcdgrupid_list.split(",");
  613. var control_list = pcontrol_name_list.split(",");
  614. var comcd_node = "/root/send/comcdref";
  615. var comcd_rsltnode = "/root/init/comcd";
  616. model.makeNode(comcd_rsltnode);
  617. model.removeNodeset(comcd_node);
  618. model.makeNode(comcd_node);
  619. model.makeNode(comcd_node + "/refcond");
  620. model.makeNode(comcd_node + "/cdgrupid");
  621. model.makeNode(comcd_node + "/cdid");
  622. var sLabelName = ( pLabel == null ) ? "cdnm" : pLabel;
  623. model.makeNode(comcd_node + "/" + sLabelName);
  624. //model.makeNode(comcd_node + "/nodename");
  625. var arrComCd_ItemSet_Temp = new Array();
  626. var arrAddNode = new Array();
  627. for (var i = 0; i < control_list.length; i++)
  628. {
  629. var control_id = control_list[i];
  630. var control = control_id.split(".");
  631. var obj = document.controls(control[0]);
  632. var comcd_itemset = "/root/init/comcd";
  633. var refcondNode = instance1.selectSingleNode(comcd_node + "/refcond");
  634. var cdgrupidNode = instance1.selectSingleNode(comcd_node + "/cdgrupid");
  635. //var snodeName = instance1.selectSingleNode(comcd_node + "/nodename");
  636. var cdidNode = instance1.selectSingleNode(comcd_node + "/cdid");
  637. var cdnmNode = instance1.selectSingleNode(comcd_node + "/" + sLabelName);
  638. var refcondvalueNode = instance1.createNode("element", "refcondvalue", "");
  639. var cdgrupvalueNode = instance1.createNode("element", "cdgrupidvalue", "");
  640. var cdidvalueNode = instance1.createNode("element", "cdidvalue", "");
  641. var cdnmvalueNode = instance1.createNode("element", "cdnmvalue", "");
  642. //var valuenodeName = instance1.createNode("element", "nodename", "");
  643. cdgrupvalueNode.text = cdgrupid_list[i];
  644. cdidvalueNode.text = "%";
  645. cdnmvalueNode.text = "%";
  646. refcondvalueNode.text = "cdnm";
  647. //valuenodeName.text = control_list[i];
  648. refcondNode.appendChild(refcondvalueNode);
  649. cdgrupidNode.appendChild(cdgrupvalueNode);
  650. cdidNode.appendChild(cdidvalueNode);
  651. cdnmNode.appendChild(cdnmvalueNode);
  652. //snodeName.appendChild(valuenodeName);
  653. // 노드명이 숫자로 시작 될 경우 XML Rule 오류가 발생함으로 '_' 를 추가
  654. // 2013.02.26 박진억
  655. var cdNodeName = cdgrupid_list[i];
  656. if(!isNaN(cdNodeName.substr(0,1))){
  657. cdNodeName = "_" + cdNodeName;
  658. }
  659. if(sBlankYn == "Y")
  660. {
  661. arrAddNode[i] = cdNodeName + i + "/" + cdNodeName + i;
  662. arrComCd_ItemSet_Temp[i] = comcd_itemset + "/" + cdNodeName + i + "_temp/" + cdNodeName + i;
  663. comcd_itemset = comcd_itemset + "/" + cdNodeName + i + "_temp/" + cdNodeName + i;
  664. }
  665. else
  666. {
  667. comcd_itemset = comcd_itemset + "/" + cdNodeName + i + "/" + cdNodeName + i;
  668. }
  669. model.removeNodeset(comcd_itemset);
  670. model.makeNode(comcd_itemset);
  671. if (obj != null && obj.elementName == "xforms:datagrid")
  672. {
  673. obj = document.controls(obj.colAttribute(obj.colRef(control[1]), "id"));
  674. }
  675. obj.choices.itemset.attribute("nodeset") = comcd_itemset;
  676. obj.choices.itemset.label.attribute("ref") = sLabelName;
  677. obj.choices.itemset.value.attribute("ref") = "cdid";
  678. }
  679. model.removeChild("TRRPZ00302");
  680. model.createChild("xforms:submission", "id:TRRPZ00302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  681. submit("TRRPZ00302");
  682. if(sBlankYn == "Y")
  683. {
  684. for(var i=0; i<arrComCd_ItemSet_Temp.length; i++)
  685. {
  686. model.makeValue(arrComCd_ItemSet_Temp[i] + "[" + 1 + "]/cdnm", "전체");
  687. model.makeValue(arrComCd_ItemSet_Temp[i] + "[" + 1 + "]/cdid", "");
  688. var sAddNodeName = arrAddNode[i].split("/")[0];
  689. sourcenode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode + "/" + sAddNodeName);
  690. cnt = 1;
  691. var sourcenodelist = sourcenode.childNodes;
  692. while (childNode = sourcenodelist.nextNode())
  693. {
  694. model.makeValue(arrComCd_ItemSet_Temp[i] + "[" + (cnt + 1)+ "]/cdnm", childNode.getXPathString(comcd_rsltnode + "/" + arrAddNode[i] + "[" + cnt + "]/cdnm"));
  695. model.makeValue(arrComCd_ItemSet_Temp[i] + "[" + (cnt + 1)+ "]/cdid", childNode.getXPathString(comcd_rsltnode + "/" + arrAddNode[i] + "[" + cnt + "]/cdid"));
  696. cnt++;
  697. }
  698. model.removenode(comcd_rsltnode + "/" + sAddNodeName);
  699. }
  700. }
  701. /*
  702. for (var i = 0; i < control_list.length; i++) {
  703. var control_id = control_list[i];
  704. var control = control_id.split(".");
  705. var obj = document.controls(control[0]);
  706. if(obj != null && obj.length == 1) obj.selectedindex= 0;
  707. }
  708. */
  709. }
  710. //Grid 콤보에 공통코드 Setting
  711. /*
  712. pcdgrupid : 공통코드군
  713. pgrid_name: Grid명
  714. pcolumn_id: Column명
  715. pmid_cls : 구매재고일경우만 넘김('PUR')
  716. */
  717. function misfGridComboComCdList(pcdgrupid, pgrid_name, pcolumn_id, pmid_cls) {
  718. var control_id = pgrid_name.attribute("id");
  719. var column_no = pgrid_name.colRef(pcolumn_id);
  720. var column_name = pgrid_name.colAttribute(column_no, "id");
  721. var column_obj = document.controls(column_name);
  722. var comcd_node = "/root/send/comcdref";
  723. var comcd_rsltnode = "/root/init/comcd";
  724. var comcd_itemset = "/root/init/" + control_id + "/" + pcolumn_id;
  725. model.removeNodeset(comcd_node);
  726. model.removeNodeset(comcd_itemset);
  727. model.makeNode(comcd_node);
  728. model.makeNode(comcd_node + "/cdgrupid");
  729. model.makeNode(comcd_node + "/cdid");
  730. model.makeNode(comcd_node + "/cdnm");
  731. model.makeNode(comcd_node + "/refcond");
  732. model.makeNode(comcd_rsltnode);
  733. model.makeNode(comcd_itemset);
  734. //alert(pcolumn_id);
  735. //var column_id = pgrid_name.colattribute(column_no, "id");
  736. column_obj.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
  737. column_obj.choices.itemset.label.attribute("ref") = "cdnm";
  738. column_obj.choices.itemset.value.attribute("ref") = "cdid";
  739. // pgrid_name.col03.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcdlist";
  740. //
  741. // alert("kkkk");
  742. // pgrid_name.col03.choices.itemset.label.attribute("ref") = "cdnm";
  743. // pgrid_name.col03.choices.itemset.value.attribute("ref") = "cdid";
  744. // pgrid_name.refresh();
  745. model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
  746. model.setValue(comcd_node + "/cdid","%");
  747. model.setValue(comcd_node + "/cdnm","%");
  748. if (pmid_cls == "PUR") {
  749. model.removeChild("TRRPC00302");
  750. model.createChild("xforms:submission", "id:TRRPC00302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  751. submit("TRRPC00302");
  752. }
  753. else {
  754. model.removeChild("TRRPZ00301");
  755. model.createChild("xforms:submission", "id:TRRPZ00301;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  756. submit("TRRPZ00301");
  757. }
  758. model.copyNode(comcd_itemset,comcd_rsltnode);
  759. model.refresh();
  760. }
  761. //콤보에 itemset copy
  762. /*
  763. pori_control_name : Copy 기준이되는 Control
  764. pori_column_ref : pori_control_name이 Grid일경우 Column의 ref명
  765. ptarget_control_name : Copy할 Control
  766. ptarget_column_ref : ptarget_control_name이 Grid일경우 Column의 ref명
  767. */
  768. function misfComboCopyItemSet(pori_control_name, pori_column_ref, ptarget_control_name, ptarget_column_ref) {
  769. // var ori_control_id = pori_control_name.attribute("id");
  770. // var target_control_id = ptarget_control_name.attribute("id");
  771. var column_no = null;
  772. var column_name = null;
  773. var ori_obj = null;
  774. var target_obj = null;
  775. if (pori_control_name.elementName == "xforms:datagrid") {
  776. column_no = pori_control_name.colRef(pori_column_ref);
  777. column_name = pori_control_name.colAttribute(column_no, "id");
  778. ori_obj = document.controls(column_name);
  779. }
  780. else {
  781. ori_obj = pori_control_name;
  782. }
  783. if (ptarget_control_name.elementName == "xforms:datagrid") {
  784. column_no = ptarget_control_name.colRef(ptarget_column_ref);
  785. column_name = ptarget_control_name.colAttribute(column_no, "id");
  786. target_obj = document.controls(column_name);
  787. }
  788. else {
  789. target_obj = ptarget_control_name;
  790. }
  791. var ori_nodeset = ori_obj.choices.itemset.attribute("nodeset");
  792. var ori_label = ori_obj.choices.itemset.label.attribute("ref");
  793. var ori_value = ori_obj.choices.itemset.value.attribute("ref");
  794. target_obj.choices.itemset.attribute("nodeset") = ori_nodeset;
  795. target_obj.choices.itemset.label.attribute("ref") = ori_label;
  796. target_obj.choices.itemset.value.attribute("ref") = ori_value;
  797. target_obj.refresh();
  798. //if(target_obj != null && target_obj.length == 1) target_obj.selectedindex= 0;
  799. }
  800. //화면에서 Grid의 마스터 Detail관계 설정
  801. /*
  802. pGrid_name : Grid id명
  803. pMaster_Grid : pGrid_name의 마스터 Grid id명
  804. pSubmit_Id : pGrid_name을 조회할 Submit id
  805. pSave_Yn : pGrid_name 저장여부("Y","N")
  806. pSelectionMode : pGrid_name 의 선택모드 "free", "byrow", "bycol"..
  807. */
  808. function misfMsterDetailSet(pGrid_name, pMaster_Grid, pSubmit_Id, pSave_Yn, pSelectionMode)
  809. {
  810. // var mastdetail_node = "/root/hidden/mastdetailset";
  811. var current_gridnode = MASTDETAIL_NODE + "/" + pGrid_name.attribute("id");
  812. // model.removeNodeset(pGrid_name.nodeset);
  813. // model.refresh();
  814. // model.removeNodeset(MASTDETAIL_NODE);
  815. model.makeNode(MASTDETAIL_NODE);
  816. model.makeNode(current_gridnode);
  817. model.makeNode(current_gridnode + "/current");
  818. model.makeNode(current_gridnode + "/master");
  819. model.makeNode(current_gridnode + "/submit");
  820. model.makeNode(current_gridnode + "/saveyn");
  821. model.setValue(current_gridnode + "/current", pGrid_name.attribute("id"));
  822. if (pMaster_Grid == null) {
  823. model.setValue(current_gridnode + "/master", "");
  824. }
  825. else {
  826. model.setValue(current_gridnode + "/master", pMaster_Grid.attribute("id"));
  827. }
  828. model.setValue(current_gridnode + "/submit", pSubmit_Id);
  829. model.setValue(current_gridnode + "/saveyn", pSave_Yn);
  830. if(pSelectionMode != null)
  831. {
  832. pGrid_name.focusColor = "#ece1ec";
  833. pGrid_name.selectionmode = pSelectionMode;
  834. }
  835. else
  836. {
  837. pGrid_name.focusColor = "#ccffff";
  838. //pGrid_name.selectionmode = "free";
  839. pGrid_name.selectionmode = "byrow";
  840. }
  841. }
  842. //화면에서 Grid초기화
  843. /*
  844. pGrid_name : 최기화할 Grid id명
  845. */
  846. function misfGridInit(pGrid_name) {
  847. model.removeNodeset(pGrid_name.nodeset);
  848. pGrid_name.refresh();
  849. }
  850. //화면에서 Grid의 마스터 Detail관계 설정 삭제
  851. function misfMsterDetailDel() {
  852. model.removeNodeset(MASTDETAIL_NODE);
  853. }
  854. //misfMsterDetailSet Method에서 설정한 기준으로 Data를 조회.
  855. function misfMsterDetailRetrieve() {
  856. var objID = event.target;
  857. var obj = document.controls(objID);
  858. // var ins = document.models( 0 ).instances( 0 );
  859. var node = instance1.selectNodes(MASTDETAIL_NODE + "/*");
  860. var node_detail = null;
  861. var master_name = new Array();
  862. var current_name = new Array();
  863. var submit_id = new Array();
  864. var resetgridID = null;
  865. for (var i = 0; i < node.length ; i++) {
  866. node_detail = instance1.selectNodes(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/*");
  867. for (var j = 0; j < node_detail.length; j++) {
  868. if ( node_detail.item(j).nodeName == "master") {
  869. master_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  870. }
  871. else if ( node_detail.item(j).nodeName == "current") {
  872. current_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  873. }
  874. else if ( node_detail.item(j).nodeName == "submit") {
  875. submit_id[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  876. }
  877. }
  878. }
  879. var send_node = null;
  880. var send_node_detail = null;
  881. var grid_nodeset = null;
  882. var exec_submit = new Array();
  883. var exec_cnt = 0;
  884. var exec_yn = "Y";
  885. if (obj != null && obj.elementName == "xforms:datagrid") {
  886. if (obj.row < 0) {
  887. return;
  888. }
  889. var fixed_row = obj.fixedRows - 1;
  890. // alert(fixed_row + "^" + obj.row + "^" + (obj.row - fixed_row) );
  891. for (var h = 0; h < master_name.length; h++) {
  892. exec_yn = "Y";
  893. if (objID == master_name[h] ) {
  894. send_node = model.children(submit_id[h]).attribute("ref");
  895. send_node_detail = instance1.selectNodes(send_node + "/*");
  896. for (var p = 0; p < send_node_detail.length; p++) {
  897. model.setValue(send_node + "/" + send_node_detail.item(p).nodeName, model.getValue(obj.nodeset + "[" + (obj.row - obj.fixedRows + 1) + "]/" + send_node_detail.item(p).nodeName));
  898. }
  899. if (getGridUpdateData(document.controls(current_name[h])) != "") {
  900. var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  901. if (save_val == "6") {
  902. btn_save.dispatch("DOMActivate");
  903. }
  904. }
  905. /* 현재 조회 하고 있는 Grid와 연결된 Detail Grid Reset한다 */
  906. for (z = 0; z < master_name.length; z++) {
  907. if (current_name[h] == master_name[z]) {
  908. resetgridID = document.controls(current_name[z]);
  909. model.removeNodeset(resetgridID.nodeset);
  910. }
  911. }
  912. if (submit_id[h] != "" && submit_id[h] != null) {
  913. //한번실행된 Submit_id는 다시실행하지 않는다.
  914. for (var q = 0; q < exec_submit.length; q++) {
  915. if (exec_submit[q] == submit_id[h]) {
  916. exec_yn = "N";
  917. break;
  918. }
  919. }
  920. if (exec_yn == "Y") {
  921. exec_submit[exec_cnt] = submit_id[h];
  922. exec_cnt++;
  923. submit(submit_id[h]);
  924. }
  925. }
  926. }
  927. }
  928. }
  929. else {
  930. for (var q = 0; q < master_name.length; q++) {
  931. resetgridID = document.controls(current_name[q]);
  932. model.removeNodeset(resetgridID.nodeset);
  933. }
  934. // model.refresh();
  935. for (var k = 0; k < master_name.length; k++) {
  936. var gridID = document.controls(current_name[k]);
  937. //model.removeNodeset(gridID.nodeset);
  938. if ((master_name[k] == "" || master_name[k] == null) && submit_id[k] != "" && submit_id[k] != null) {
  939. //한번실행된 Submit_id는 다시실행하지 않는다.
  940. for (var q = 0; q < exec_submit.length; q++) {
  941. if (exec_submit[q] == submit_id[k]) {
  942. exec_yn = "N";
  943. break;
  944. }
  945. }
  946. if (exec_yn == "Y") {
  947. exec_submit[exec_cnt] = submit_id[k];
  948. exec_cnt++;
  949. submit(submit_id[k]);
  950. if (gridID.rows - gridID.fixedRows > 0) {
  951. gridID.row = gridID.fixedRows;
  952. gridID.dispatch("onrowchanged");
  953. }
  954. }
  955. }
  956. }
  957. }
  958. if (obj != null) {
  959. obj.dispatch("onmouseup");
  960. }
  961. }
  962. // Grid Data를 저장한다.
  963. function misfSave(pSubmit_Id) {
  964. var submit_node = model.children(pSubmit_Id).attribute("ref");
  965. var ins = document.models( 0 ).instances( 0 );
  966. var node = ins.selectNodes(MASTDETAIL_NODE + "/*");
  967. var node_detail = null;
  968. var master_name = new Array();
  969. var current_name = new Array();
  970. var save_yn = new Array();
  971. for (var i = 0; i < node.length ; i++) {
  972. node_detail = ins.selectNodes(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/*");
  973. for (var j = 0; j < node_detail.length; j++) {
  974. if ( node_detail.item(j).nodeName == "master") {
  975. master_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  976. }
  977. else if ( node_detail.item(j).nodeName == "current") {
  978. current_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  979. }
  980. else if ( node_detail.item(j).nodeName == "saveyn") {
  981. save_yn[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  982. }
  983. }
  984. }
  985. var update_grid = null;
  986. var node_list = null;
  987. var save_node = null;
  988. for (var k = 0; k < master_name.length; k++)
  989. {
  990. if (save_yn[k] == "Y")
  991. {
  992. update_grid = document.controls(current_name[k]);
  993. node_list = update_grid.nodeset.split("/");
  994. for (var h = 0; h < node_list.length; h++)
  995. {
  996. save_node = node_list[h];
  997. }
  998. // alert(submit_node + "/" + save_node);
  999. // alert(update_grid.getUpdateData());
  1000. //model.setValue(submit_node + "/" + save_node , getGridUpdateData(update_grid));
  1001. model.makeValue(submit_node + "/" + save_node , update_grid.getUpdateData());
  1002. }
  1003. }
  1004. var rtn = submit(pSubmit_Id);
  1005. //전역변수변경
  1006. //if (model.getValue("/root/hidden/error/type") != "error") {
  1007. if (model.getValue(gvErrorMsgPath + "/type") != "error") {
  1008. for (var k = 0; k < master_name.length; k++) {
  1009. if (save_yn[k] == "Y") {
  1010. update_grid = document.controls(current_name[k]);
  1011. //for (var z = update_grid.fixedRows; z <= update_grid.rows; z++) {
  1012. for (var z = update_grid.rows ; z >= update_grid.fixedRows ; z--) {
  1013. if (update_grid.rowstatus(z) == 4) {
  1014. update_grid.removeStatus(z,"delete");
  1015. update_grid.deleteRow(z,false);
  1016. }
  1017. }
  1018. update_grid.clearStatus();
  1019. }
  1020. }
  1021. }
  1022. return rtn;
  1023. }
  1024. //Grid 입력,삭제 처리.
  1025. /*
  1026. pGrid_Name : 입력,삭제할 Grid id명
  1027. pIAD_Flag : 행추가,행삽입,행삭제 여부("A","I","D")
  1028. pRefresh_Flag : 행추가, 삽입후 misfGridDefaultSet (Default 값 셋팅 유무 Y, N ) default : Y(사용)
  1029. */
  1030. function misfGridIUD(pGrid_Name, pIAD_Flag, pRefresh_Flag ) {
  1031. if (pGrid_Name.elementName != "xforms:datagrid") {
  1032. return;
  1033. }
  1034. model.setfocus(pGrid_Name.attribute("id"));
  1035. if (pIAD_Flag == "I")
  1036. {
  1037. pGrid_Name.insertRow(pGrid_Name.row, "below", false);
  1038. pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  1039. }
  1040. else if (pIAD_Flag == "D")
  1041. {
  1042. var sRowIdxes = "";
  1043. var iSelectedCnt = pGrid_Name.selectedCells.length;
  1044. for(var i=0; i<iSelectedCnt; i++)
  1045. {
  1046. var iRowIdx = pGrid_Name.selectedCells.item(i).row;
  1047. if(!misfGetRowIdxExists(sRowIdxes, iRowIdx)) continue;
  1048. sRowIdxes = sRowIdxes + iRowIdx + ",";
  1049. if (pGrid_Name.rowstatus(iRowIdx) == 4)
  1050. {
  1051. pGrid_Name.removeStatus(iRowIdx,"delete");
  1052. }
  1053. else
  1054. {
  1055. if (misfCheckDeleteYN(pGrid_Name) == "Y")
  1056. {
  1057. // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
  1058. if(pGrid_Name.rowstatus(iRowIdx) == 1 || pGrid_Name.rowstatus(iRowIdx) == 3)
  1059. {
  1060. pGrid_Name.deleteRow(pGrid_Name.row, false);
  1061. if(i+1 == iSelectedCnt) pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  1062. }
  1063. else
  1064. {
  1065. pGrid_Name.addStatus(iRowIdx,"delete");
  1066. }
  1067. }
  1068. else
  1069. {
  1070. messageBox("세부내역이 존재 하므로 삭제 ", "E001");
  1071. }
  1072. }
  1073. }
  1074. }
  1075. else if (pIAD_Flag == "A") {
  1076. pGrid_Name.addRow(false);
  1077. pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  1078. // pGrid_Name.refresh();
  1079. }
  1080. if ( pRefresh_Flag != "N" ) {
  1081. if (pIAD_Flag == "A" || pIAD_Flag == "I") {
  1082. // pGrid_Name.dispatch("onrowchanged");
  1083. misfGridDefaultSet(pGrid_Name);
  1084. pGrid_Name.col = 1;
  1085. }
  1086. }
  1087. }
  1088. function misfGetRowIdxExists(sRowIndexes, iRow)
  1089. {
  1090. var bReturn = true;
  1091. var arrIndexes = sRowIndexes.split(",");
  1092. for(var i=0; i<arrIndexes.length; i++)
  1093. {
  1094. if(arrIndexes[i] == iRow)
  1095. {
  1096. // alert(1);
  1097. bReturn = false;
  1098. }
  1099. }
  1100. return bReturn;
  1101. }
  1102. //Grid 행추가,행삽입시 Default값 Setting
  1103. /*
  1104. pGrid_Name : Grid id명
  1105. */
  1106. function misfGridDefaultSet(pGrid_Name) {
  1107. //var ins = document.models( 0 ).instances( 0 );
  1108. var node = instance1.selectNodes(MASTDETAIL_NODE + "/*");
  1109. var Grid_Name = pGrid_Name.attribute("id");
  1110. var master_name = null;
  1111. var current_name = null;
  1112. var submit_id = null;
  1113. for (var i = 0; i < node.length ; i++)
  1114. {
  1115. if (Grid_Name == node.item(i).nodeName)
  1116. {
  1117. master_name = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/master");
  1118. current_name = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/current");
  1119. submit_id = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/submit");
  1120. }
  1121. }
  1122. var submit_ref = model.children(submit_id).attribute("ref");
  1123. var grid_nodeset = pGrid_Name.nodeset;
  1124. var submit_node = instance1.selectNodes(submit_ref + "/*");
  1125. var nodeset_row = pGrid_Name.row - pGrid_Name.fixedRows + 1;
  1126. if (master_name != null && master_name != "") {
  1127. var mast_grid = document.controls(master_name);
  1128. var mast_nodeset = mast_grid.nodeset;
  1129. var mast_row = mast_grid.row - mast_grid.fixedRows + 1;
  1130. }
  1131. for (var j = 0; j < submit_node.length ; j++)
  1132. {
  1133. if (master_name != null && master_name != "") {
  1134. model.setValue(submit_ref + "/" + submit_node.item(j).nodeName, model.getValue(mast_nodeset + "[" + mast_row + "]/" + submit_node.item(j).nodeName));
  1135. }
  1136. for (var k = 1; k < pGrid_Name.cols; k++)
  1137. {
  1138. if (submit_node.item(j).nodeName == pGrid_Name.colAttribute(k,"ref"))
  1139. {
  1140. // alert(grid_nodeset + "[" + nodeset_row + "]/" + pGrid_Name.colAttribute(k,"ref"));
  1141. model.setValue(grid_nodeset + "[" + nodeset_row + "]/" + pGrid_Name.colAttribute(k,"ref"), model.getValue(submit_ref + "/" + submit_node.item(j).nodeName));
  1142. }
  1143. }
  1144. }
  1145. }
  1146. /* Grid 삭제시 삭제할 Grid와 관련된 Detail Grid의 DATA존재여부를 확인해서 삭제여부를 결정한다. */
  1147. function misfCheckDeleteYN(pGrid_Name) {
  1148. var gridID = pGrid_Name.attribute("id");
  1149. var ins = document.models( 0 ).instances( 0 );
  1150. var node = ins.selectNodes(MASTDETAIL_NODE + "/*");
  1151. var node_detail = null;
  1152. var master_name = new Array();
  1153. var current_name = new Array();
  1154. for (var i = 0; i < node.length ; i++) {
  1155. node_detail = ins.selectNodes(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/*");
  1156. for (var j = 0; j < node_detail.length; j++) {
  1157. if ( node_detail.item(j).nodeName == "master") {
  1158. master_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  1159. }
  1160. else if ( node_detail.item(j).nodeName == "current") {
  1161. current_name[i] = model.getValue(MASTDETAIL_NODE + "/" + node.item(i).nodeName + "/" + node_detail.item(j).nodeName);
  1162. }
  1163. }
  1164. }
  1165. var delete_yn = "Y";
  1166. var del_count = 0;
  1167. for (var h = 0; h < master_name.length; h++) {
  1168. if (gridID == master_name[h] ) {
  1169. if( model.getValue(MASTDETAIL_NODE + "/" + current_name[h] + "/saveyn") == "Y")
  1170. {
  1171. var check_grid = document.controls(current_name[h]);
  1172. del_count = 0;
  1173. for (var t = check_grid.fixedRows ; t < check_grid.rows; t++) {
  1174. if (check_grid.rowstatus(t) == 4) {
  1175. del_count++;
  1176. }
  1177. }
  1178. if (check_grid.rows - check_grid.fixedRows - del_count > 0) {
  1179. delete_yn = "N";
  1180. break;
  1181. }
  1182. else {
  1183. delete_yn = "Y";
  1184. }
  1185. }
  1186. }
  1187. }
  1188. return delete_yn;
  1189. }
  1190. // Grid Data와 Control들의 Data를 비교해서 수정여부를 결정.
  1191. /*
  1192. pgrid_name : Grid id명
  1193. ptarget_node : 비교할 대상 Node
  1194. psource_node : 비교할 원 Node
  1195. pchange_status : 변경된 row의 status를 셋팅 ( default = null ) "I" -> 1, "U" -> 2
  1196. */
  1197. function misfGridRowStatusChange(pgrid_name, ptarget_node, psource_node, pchange_status) {
  1198. var node1 = instance1.selectNodes(ptarget_node + "/*");
  1199. var node2 = instance1.selectNodes(psource_node + "/*");
  1200. var update_yn = "N";
  1201. for (var i = 0; i < node1.length ; i++) {
  1202. for (var j = 0; j < node2.length; j++) {
  1203. if (node1.item(i).nodeName == node2.item(j).nodeName) {
  1204. var nextnode1 = instance1.selectNodes(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/*");
  1205. var nextnode2 = instance1.selectNodes(psource_node + "/" + node2.item(j).nodeName + "/*");
  1206. var copytarget = ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]";
  1207. var copysource = psource_node + "/" + node2.item(j).nodeName;
  1208. for (var k = 0; k < nextnode1.length; k++) {
  1209. for (var p = 0; p < nextnode2.length; p++) {
  1210. if (nextnode1.item(k).nodeName == nextnode2.item(p).nodeName) {
  1211. if (model.getValue(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/" + nextnode1.item(k).nodeName) !=
  1212. model.getValue(psource_node + "/" + node2.item(j).nodeName + "/" + nextnode2.item(p).nodeName)) {
  1213. update_yn = "Y";
  1214. break;
  1215. }
  1216. }
  1217. if (update_yn == "Y") {
  1218. break;
  1219. }
  1220. }
  1221. if (update_yn == "Y") {
  1222. break;
  1223. }
  1224. }
  1225. if (update_yn == "Y") {
  1226. break;
  1227. }
  1228. }
  1229. if (update_yn == "Y") {
  1230. break;
  1231. }
  1232. }
  1233. if (update_yn == "Y") {
  1234. break;
  1235. }
  1236. }
  1237. if (pgrid_name.rowstatus(pgrid_name.row) == 1) {
  1238. model.copyNode(copytarget, copysource);
  1239. // model.copyNode(ptarget_node + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" , psource_node);
  1240. }
  1241. else if ((pgrid_name.rowstatus(pgrid_name.row) == 0 || pgrid_name.rowstatus(pgrid_name.row) == 2) && update_yn == "Y") {
  1242. // model.copyNode(ptarget_node + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" , psource_node);
  1243. model.copyNode(copytarget, copysource);
  1244. if ( pchange_status == null || pchange_status == "" ) {
  1245. pgrid_name.rowstatus(pgrid_name.row) = 2;
  1246. } else {
  1247. if ( pchange_status == "I" ) tempStatus = 1;
  1248. pgrid_name.rowstatus(pgrid_name.row) = tempStatus;
  1249. }
  1250. }
  1251. }
  1252. //코드 Validation Check한다.
  1253. /*
  1254. pvali_kind : Validation 종류(부서코드, 공통코드, 우편번호...)
  1255. "01" - 사번조회
  1256. "02" - 부서코드
  1257. "03" - 공통코드
  1258. "04" - 우편번호
  1259. "05" - 계정코드
  1260. "09" - 근무코드
  1261. precv_list : 자료를 받을 Instance Node(콤마로 분류해서 넘기면됨)
  1262. pPodeNames : 추가로 넘길 노드명
  1263. pValueControl : 넘길 데이터
  1264. */
  1265. function misfValidationCheck(pvali_kind, pcdgrupid, precv_list, pValueControl, pNodeNames, pRetrKind, pInstcd)
  1266. {
  1267. var objID = event.currentTarget;
  1268. var obj = document.controls(objID);
  1269. var arrCtrlNames = null;
  1270. var arrNodeNames = null;
  1271. if(obj != null && obj.elementName == "xforms:group")
  1272. {
  1273. objID = event.Target;
  1274. obj = document.controls(objID);
  1275. }
  1276. if(pValueControl != null && pValueControl != "")
  1277. {
  1278. arrCtrlNames = pValueControl.split(",");
  1279. }
  1280. if(pNodeNames != null && pValueControl != "")
  1281. {
  1282. arrNodeNames = pNodeNames.split(",");
  1283. }
  1284. var vali_kind = pvali_kind.substr(0,2);
  1285. // alert(obj.elementName);
  1286. var validation_node = "/root/send/validation";
  1287. var validation_rsltnode = "/root/init/validation";
  1288. var recv_node = precv_list.split(",");
  1289. model.removeNodeset(validation_node);
  1290. model.removeNodeset(validation_rsltnode);
  1291. model.makeNode(validation_node);
  1292. if (pInstcd != null) {
  1293. model.makeValue(validation_node + "/instcd", pInstcd);
  1294. }
  1295. model.makeValue(validation_node + "/cdgrupid", pcdgrupid);
  1296. model.makeNode(validation_rsltnode);
  1297. var result_path = "";
  1298. model.makeValue(validation_node + "/getcond", model.getValue(obj.attribute("ref")));
  1299. model.makeValue(validation_node + "/retrkind", pRetrKind);
  1300. model.makeValue(validation_node + "/systemflag", "");
  1301. model.makeValue(validation_node + "/classicyn", "Y");
  1302. if (obj.elementName == "xforms:datagrid") {
  1303. result_path = obj.nodeset;
  1304. model.makeValue(validation_node + "/getcond", model.getValue(result_path + "[" + (obj.row - obj.fixedRows + 1) + "]/" + obj.colAttribute(obj.col,"ref")));
  1305. }
  1306. else {
  1307. var node_path = obj.attribute("ref").split("/");
  1308. result_path = "/root";
  1309. for (var i = 2 ; i < node_path.length - 1; i++) {
  1310. result_path = result_path + "/" + node_path[i];
  1311. }
  1312. /*
  1313. model.makeValue(validation_node + "/getcond", model.getValue(obj.attribute("ref")));
  1314. model.makeValue(validation_node + "/retrkind", pRetrKind);
  1315. model.makeValue(validation_node + "/systemflag", "");
  1316. model.makeValue(validation_node + "/classicyn", "Y");
  1317. */
  1318. }
  1319. if (model.getValue(validation_node + "/getcond") == null || model.getValue(validation_node + "/getcond") == "")
  1320. {
  1321. for (var i = 0; i < recv_node.length; i++)
  1322. {
  1323. if (obj.elementName == "xforms:datagrid")
  1324. {
  1325. model.setValue(result_path + "[" + (obj.row - obj.fixedRows + 1) + "]/" + recv_node[i], "");
  1326. }
  1327. else
  1328. {
  1329. model.setValue(result_path + "/" + recv_node[i], "");
  1330. }
  1331. }
  1332. return;
  1333. }
  1334. if (pvali_kind == "01-1") { //사원번호
  1335. model.setValue(validation_node + "/retrkind", "code");
  1336. model.makeValue(validation_node + "/emplno", "");
  1337. model.makeValue(validation_node + "/emplnm", "");
  1338. model.removeChild("TRRPZ00102");
  1339. model.createChild("xforms:submission", "id:TRRPZ00102;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1340. submit("TRRPZ00102");
  1341. var rslt_node = new Array();
  1342. var node = instance1.selectNodes(validation_rsltnode + "/empllist" + "/*");
  1343. for (var j = 0; j < node.length; j++) {
  1344. if (obj.elementName == "xforms:datagrid") {
  1345. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "[1]/" + node.item(j).nodeName);
  1346. }
  1347. else {
  1348. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "/" + node.item(j).nodeName);
  1349. }
  1350. }
  1351. }
  1352. else if (pvali_kind == "01-2") //성명
  1353. {
  1354. model.setValue(validation_node + "/retrkind", "name");
  1355. model.makeValue(validation_node + "/emplno", "");
  1356. model.makeValue(validation_node + "/emplnm", "");
  1357. model.removeChild("TRRPZ00103");
  1358. model.createChild("xforms:submission", "id:TRRPZ00103;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1359. submit("TRRPZ00103");
  1360. var rslt_node = new Array();
  1361. var node = instance1.selectNodes(validation_rsltnode + "/empllist" + "/*");
  1362. for (var j = 0; j < node.length; j++) {
  1363. if (obj.elementName == "xforms:datagrid") {
  1364. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "[1]/" + node.item(j).nodeName);
  1365. }
  1366. else {
  1367. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "/" + node.item(j).nodeName);
  1368. }
  1369. }
  1370. }
  1371. else if (pvali_kind == "02") //부서코드
  1372. {
  1373. if(arrCtrlNames != null && arrNodeNames != null)
  1374. {
  1375. for(var i=0; i<arrCtrlNames.length; i++)
  1376. {
  1377. model.makeValue(validation_node + "/" + arrNodeNames[i], arrCtrlNames[i]);
  1378. }
  1379. }
  1380. model.removeChild("TRRPZ00202");
  1381. model.createChild("xforms:submission", "id:TRRPZ00202;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1382. submit("TRRPZ00202");
  1383. var rslt_node = new Array();
  1384. var node = instance1.selectNodes(validation_rsltnode + "/deptcodelist" + "/*");
  1385. for (var j = 0; j < node.length; j++) {
  1386. if (obj.elementName == "xforms:datagrid") {
  1387. rslt_node[j] = model.getValue(validation_rsltnode + "/deptcodelist" + "[1]/" + node.item(j).nodeName);
  1388. }
  1389. else {
  1390. rslt_node[j] = model.getValue(validation_rsltnode + "/deptcodelist" + "/" + node.item(j).nodeName);
  1391. }
  1392. }
  1393. }
  1394. else if (pvali_kind == "03") { //공통코드
  1395. model.removeChild("TRRPZ00303");
  1396. model.createChild("xforms:submission", "id:TRRPZ00303;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1397. submit("TRRPZ00303");
  1398. var rslt_node = new Array();
  1399. var node = instance1.selectNodes(validation_rsltnode + "/comcodelist" + "/*");
  1400. for (var j = 0; j < node.length; j++) {
  1401. if (obj.elementName == "xforms:datagrid") {
  1402. rslt_node[j] = model.getValue(validation_rsltnode + "/comcodelist" + "[1]/" + node.item(j).nodeName);
  1403. }
  1404. else {
  1405. rslt_node[j] = model.getValue(validation_rsltnode + "/comcodelist" + "/" + node.item(j).nodeName);
  1406. }
  1407. }
  1408. }
  1409. else if (pvali_kind == "04") { //우편번호
  1410. model.removeChild("TRRPZ00402");
  1411. model.createChild("xforms:submission", "id:TRRPZ00402;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1412. submit("TRRPZ00402");
  1413. var rslt_node = new Array();
  1414. var node = instance1.selectNodes(validation_rsltnode + "/zipcodelist" + "/*");
  1415. for (var j = 0; j < node.length; j++) {
  1416. if (obj.elementName == "xforms:datagrid") {
  1417. rslt_node[j] = model.getValue(validation_rsltnode + "/zipcodelist" + "[1]/" + node.item(j).nodeName);
  1418. }
  1419. else {
  1420. rslt_node[j] = model.getValue(validation_rsltnode + "/zipcodelist" + "/" + node.item(j).nodeName);
  1421. }
  1422. }
  1423. }
  1424. else if (pvali_kind == "09") { //근무코드
  1425. model.removeChild("TRRPC90302");
  1426. model.createChild("xforms:submission", "id:TRRPC90302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1427. submit("TRRPC90302");
  1428. var rslt_node = new Array();
  1429. var node = instance1.selectNodes(validation_rsltnode + "/dutcdlist" + "/*");
  1430. for (var j = 0; j < node.length; j++) {
  1431. if (obj.elementName == "xforms:datagrid") {
  1432. rslt_node[j] = model.getValue(validation_rsltnode + "/dutcdlist" + "[1]/" + node.item(j).nodeName);
  1433. }
  1434. else {
  1435. rslt_node[j] = model.getValue(validation_rsltnode + "/dutcdlist" + "/" + node.item(j).nodeName);
  1436. }
  1437. }
  1438. }
  1439. else if (pvali_kind == "05") //계정코드
  1440. {
  1441. var oCtrl
  1442. if(arrCtrlNames != null && arrNodeNames != null)
  1443. {
  1444. for(var i=0; i<arrCtrlNames.length; i++)
  1445. {
  1446. oCtrl = document.controls(arrCtrlNames[i]);
  1447. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1448. }
  1449. }
  1450. model.removeChild("TRRAC90105");
  1451. model.createChild("xforms:submission", "id:TRRAC90105;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1452. submit("TRRAC90105");
  1453. var rslt_node = new Array();
  1454. var node = instance1.selectNodes(validation_rsltnode + "/acntlist" + "/*");
  1455. for (var j = 0; j < node.length; j++)
  1456. {
  1457. if (obj.elementName == "xforms:datagrid")
  1458. {
  1459. rslt_node[j] = model.getValue(validation_rsltnode + "/acntlist" + "[1]/" + node.item(j).nodeName);
  1460. }
  1461. else
  1462. {
  1463. rslt_node[j] = model.getValue(validation_rsltnode + "/acntlist" + "/" + node.item(j).nodeName);
  1464. }
  1465. }
  1466. }
  1467. else if (pvali_kind == "06") //기재사항코드
  1468. {
  1469. model.removeChild("TRRAC90305");
  1470. model.createChild("xforms:submission", "id:TRRAC90305;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1471. submit("TRRAC90305");
  1472. var rslt_node = new Array();
  1473. var node = instance1.selectNodes(validation_rsltnode + "/notelist" + "/*");
  1474. for (var j = 0; j < node.length; j++)
  1475. {
  1476. if (obj.elementName == "xforms:datagrid")
  1477. {
  1478. rslt_node[j] = model.getValue(validation_rsltnode + "/notelist" + "[1]/" + node.item(j).nodeName);
  1479. }
  1480. else
  1481. {
  1482. rslt_node[j] = model.getValue(validation_rsltnode + "/notelist" + "/" + node.item(j).nodeName);
  1483. }
  1484. }
  1485. }
  1486. else if (pvali_kind == "14") // 거래처
  1487. {
  1488. model.removeChild("TRRAC90605");
  1489. model.createChild("xforms:submission", "id:TRRAC90605;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1490. submit("TRRAC90605");
  1491. var rslt_node = new Array();
  1492. var node = instance1.selectNodes(validation_rsltnode + "/custlist" + "/*");
  1493. for (var j = 0; j < node.length; j++)
  1494. {
  1495. if (obj.elementName == "xforms:datagrid")
  1496. {
  1497. rslt_node[j] = model.getValue(validation_rsltnode + "/custlist" + "[1]/" + node.item(j).nodeName);
  1498. }
  1499. else
  1500. {
  1501. rslt_node[j] = model.getValue(validation_rsltnode + "/custlist" + "/" + node.item(j).nodeName);
  1502. }
  1503. }
  1504. }
  1505. else if (pvali_kind == "15") // 계좌번호
  1506. {
  1507. var oCtrl
  1508. if(arrCtrlNames != null && arrNodeNames != null)
  1509. {
  1510. for(var i=0; i<arrCtrlNames.length; i++)
  1511. {
  1512. oCtrl = document.controls(arrCtrlNames[i]);
  1513. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1514. }
  1515. }
  1516. model.removeChild("TRRAC90405");
  1517. model.createChild("xforms:submission", "id:TRRAC90405;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1518. submit("TRRAC90405");
  1519. var rslt_node = new Array();
  1520. var node = instance1.selectNodes(validation_rsltnode + "/aactlist" + "/*");
  1521. for (var j = 0; j < node.length; j++)
  1522. {
  1523. if (obj.elementName == "xforms:datagrid")
  1524. {
  1525. rslt_node[j] = model.getValue(validation_rsltnode + "/aactlist" + "[1]/" + node.item(j).nodeName);
  1526. }
  1527. else
  1528. {
  1529. rslt_node[j] = model.getValue(validation_rsltnode + "/aactlist" + "/" + node.item(j).nodeName);
  1530. }
  1531. }
  1532. }
  1533. else if (pvali_kind == "23") // Project ID Validation
  1534. {
  1535. validation_rsltnode = "/root/main/list"
  1536. model.removenode(validation_node + "/flag");
  1537. model.removenode(validation_node + "/retrnm");
  1538. model.makeValue(validation_node + "/flag", pRetrKind);
  1539. model.makeValue(validation_node + "/retrnm", model.getValue(validation_node + "/getcond"));
  1540. var oCtrl
  1541. if(arrCtrlNames != null && arrNodeNames != null)
  1542. {
  1543. for(var i=0; i<arrCtrlNames.length; i++)
  1544. {
  1545. oCtrl = document.controls(arrCtrlNames[i]);
  1546. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1547. }
  1548. }
  1549. model.removeChild("TRRAC00801");
  1550. model.createChild("xforms:submission", "id:TRRAC00801;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1551. submit("TRRAC00801");
  1552. var rslt_node = new Array();
  1553. var node = instance1.selectNodes(validation_rsltnode + "/projectidlist" + "/*");
  1554. for (var j = 0; j < node.length; j++)
  1555. {
  1556. if (obj.elementName == "xforms:datagrid")
  1557. {
  1558. rslt_node[j] = model.getValue(validation_rsltnode + "/projectidlist" + "[1]/" + node.item(j).nodeName);
  1559. }
  1560. else
  1561. {
  1562. rslt_node[j] = model.getValue(validation_rsltnode + "/projectidlist" + "/" + node.item(j).nodeName);
  1563. }
  1564. }
  1565. }
  1566. else if (pvali_kind == "31") // 소득자
  1567. {
  1568. model.makeValue(validation_node + "/retrnm", model.getValue(obj.attribute("ref")));
  1569. model.makeValue(validation_node + "/refcond", pRetrKind);
  1570. validation_rsltnode = "/root/main/list/incmpsn";
  1571. var oCtrl
  1572. if(arrCtrlNames != null && arrNodeNames != null)
  1573. {
  1574. for(var i=0; i<arrCtrlNames.length; i++)
  1575. {
  1576. oCtrl = document.controls(arrCtrlNames[i]);
  1577. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1578. }
  1579. }
  1580. model.removeChild("TRRAC90901");
  1581. model.createChild("xforms:submission", "id:TRRAC90901;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1582. submit("TRRAC90901");
  1583. var rslt_node = new Array();
  1584. var node = instance1.selectNodes(validation_rsltnode + "/incmpsnlist" + "/*");
  1585. for (var j = 0; j < node.length; j++)
  1586. {
  1587. if (obj.elementName == "xforms:datagrid")
  1588. {
  1589. rslt_node[j] = model.getValue(validation_rsltnode + "/incmpsnlist" + "[1]/" + node.item(j).nodeName);
  1590. }
  1591. else
  1592. {
  1593. rslt_node[j] = model.getValue(validation_rsltnode + "/incmpsnlist" + "/" + node.item(j).nodeName);
  1594. }
  1595. }
  1596. }
  1597. else if (pvali_kind == "24") // 이체계좌내역
  1598. {
  1599. if(arrCtrlNames != null && arrNodeNames != null)
  1600. {
  1601. for(var i=0; i<arrCtrlNames.length; i++)
  1602. {
  1603. model.makeValue(validation_node + "/" + arrNodeNames[i], arrCtrlNames[i]);
  1604. }
  1605. }
  1606. validation_rsltnode = "/root/list";
  1607. model.removeChild("TRRAD00110");
  1608. model.createChild("xforms:submission", "id:TRRAD00110;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1609. submit("TRRAD00110");
  1610. var rslt_node = new Array();
  1611. var node = instance1.selectNodes(validation_rsltnode + "/transacntinfo" + "/*");
  1612. for (var j = 0; j < node.length; j++)
  1613. {
  1614. if (obj.elementName == "xforms:datagrid")
  1615. {
  1616. rslt_node[j] = model.getValue(validation_rsltnode + "/transacntinfo" + "[1]/" + node.item(j).nodeName);
  1617. }
  1618. else
  1619. {
  1620. rslt_node[j] = model.getValue(validation_rsltnode + "/transacntinfo" + "/" + node.item(j).nodeName);
  1621. }
  1622. }
  1623. }
  1624. else if (pvali_kind == "21-1") { //사원번호
  1625. model.makeValue(validation_node + "/emplno", "");
  1626. model.makeValue(validation_node + "/emplnm", "");
  1627. model.removeChild("TRRPZ00102");
  1628. model.createChild("xforms:submission", "id:TRRPZ00102;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1629. submit("TRRPZ00102");
  1630. var rslt_node = new Array();
  1631. var node = instance1.selectNodes(validation_rsltnode + "/empllist" + "/*");
  1632. for (var j = 0; j < node.length; j++) {
  1633. if (obj.elementName == "xforms:datagrid") {
  1634. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "[1]/" + node.item(j).nodeName);
  1635. }
  1636. else {
  1637. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "/" + node.item(j).nodeName);
  1638. }
  1639. }
  1640. }
  1641. else if (pvali_kind == "21-2") { //성명
  1642. model.makeValue(validation_node + "/emplno", "");
  1643. model.makeValue(validation_node + "/emplnm", "");
  1644. model.removeChild("TRRPZ00103");
  1645. model.createChild("xforms:submission", "id:TRRPZ00103;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1646. submit("TRRPZ00103");
  1647. var rslt_node = new Array();
  1648. var node = instance1.selectNodes(validation_rsltnode + "/empllist" + "/*");
  1649. for (var j = 0; j < node.length; j++) {
  1650. if (obj.elementName == "xforms:datagrid") {
  1651. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "[1]/" + node.item(j).nodeName);
  1652. }
  1653. else {
  1654. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "/" + node.item(j).nodeName);
  1655. }
  1656. }
  1657. }
  1658. else if (pvali_kind == "47") //예산관리부서
  1659. {
  1660. var oCtrl
  1661. if(arrCtrlNames != null && arrNodeNames != null)
  1662. {
  1663. for(var i=0; i<arrCtrlNames.length; i++)
  1664. {
  1665. oCtrl = document.controls(arrCtrlNames[i]);
  1666. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1667. }
  1668. }
  1669. model.removeChild("TRRAC90905");
  1670. model.createChild("xforms:submission", "id:TRRAC90905;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1671. submit("TRRAC90905");
  1672. var rslt_node = new Array();
  1673. var node = instance1.selectNodes(validation_rsltnode + "/bugtdeptlist" + "/*");
  1674. for (var j = 0; j < node.length; j++)
  1675. {
  1676. if (obj.elementName == "xforms:datagrid")
  1677. {
  1678. rslt_node[j] = model.getValue(validation_rsltnode + "/bugtdeptlist" + "[1]/" + node.item(j).nodeName);
  1679. }
  1680. else
  1681. {
  1682. rslt_node[j] = model.getValue(validation_rsltnode + "/bugtdeptlist" + "/" + node.item(j).nodeName);
  1683. }
  1684. }
  1685. }
  1686. else if (pvali_kind == "48") //예산 편성 코드
  1687. {
  1688. var oCtrl
  1689. if(arrCtrlNames != null && arrNodeNames != null)
  1690. {
  1691. for(var i=0; i<arrCtrlNames.length; i++)
  1692. {
  1693. oCtrl = document.controls(arrCtrlNames[i]);
  1694. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1695. }
  1696. }
  1697. model.removeChild("TRRAC91005");
  1698. model.createChild("xforms:submission", "id:TRRAC91005;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1699. submit("TRRAC91005");
  1700. var rslt_node = new Array();
  1701. var node = instance1.selectNodes(validation_rsltnode + "/acntcodelist" + "/*");
  1702. for (var j = 0; j < node.length; j++)
  1703. {
  1704. if (obj.elementName == "xforms:datagrid")
  1705. {
  1706. rslt_node[j] = model.getValue(validation_rsltnode + "/acntcodelist" + "[1]/" + node.item(j).nodeName);
  1707. }
  1708. else
  1709. {
  1710. rslt_node[j] = model.getValue(validation_rsltnode + "/acntcodelist" + "/" + node.item(j).nodeName);
  1711. }
  1712. }
  1713. }
  1714. else if (pvali_kind == "49") { //사원번호 (근로소득)
  1715. model.removeChild("TRRPZ00105");
  1716. model.createChild("xforms:submission", "id:TRRPZ00105;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1717. submit("TRRPZ00105");
  1718. var rslt_node = new Array();
  1719. var node = instance1.selectNodes(validation_rsltnode + "/empllist" + "/*");
  1720. for (var j = 0; j < node.length; j++) {
  1721. if (obj.elementName == "xforms:datagrid") {
  1722. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "[1]/" + node.item(j).nodeName);
  1723. }
  1724. else {
  1725. rslt_node[j] = model.getValue(validation_rsltnode + "/empllist" + "/" + node.item(j).nodeName);
  1726. }
  1727. }
  1728. }
  1729. else if (pvali_kind == "50") { //차입금관리
  1730. var oCtrl
  1731. if(arrCtrlNames != null && arrNodeNames != null)
  1732. {
  1733. for(var i=0; i<arrCtrlNames.length; i++)
  1734. {
  1735. oCtrl = document.controls(arrCtrlNames[i]);
  1736. model.makeValue(validation_node + "/" + arrNodeNames[i], model.getValue(oCtrl.attribute("ref")));
  1737. }
  1738. }
  1739. model.removeChild("TRRAC91101");
  1740. model.createChild("xforms:submission", "id:TRRAC91101;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1741. submit("TRRAC91101");
  1742. var rslt_node = new Array();
  1743. var node = instance1.selectNodes(validation_rsltnode + "/loanlist" + "/*");
  1744. for (var j = 0; j < node.length; j++) {
  1745. if (obj.elementName == "xforms:datagrid") {
  1746. rslt_node[j] = model.getValue(validation_rsltnode + "/loanlist" + "[1]/" + node.item(j).nodeName);
  1747. }
  1748. else {
  1749. rslt_node[j] = model.getValue(validation_rsltnode + "/loanlist" + "/" + node.item(j).nodeName);
  1750. }
  1751. }
  1752. }
  1753. else if (pvali_kind == "51") { //유가증권관리
  1754. model.removeChild("TRRAC91201");
  1755. model.createChild("xforms:submission", "id:TRRAC91201;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  1756. submit("TRRAC91201");
  1757. var rslt_node = new Array();
  1758. var node = instance1.selectNodes(validation_rsltnode + "/wtpplist" + "/*");
  1759. for (var j = 0; j < node.length; j++) {
  1760. if (obj.elementName == "xforms:datagrid") {
  1761. rslt_node[j] = model.getValue(validation_rsltnode + "/wtpplist" + "[1]/" + node.item(j).nodeName);
  1762. }
  1763. else {
  1764. rslt_node[j] = model.getValue(validation_rsltnode + "/wtpplist" + "/" + node.item(j).nodeName);
  1765. }
  1766. }
  1767. }
  1768. var node1 = instance1.selectNodes(validation_rsltnode + "/*");
  1769. //alert(node1.length);
  1770. if (node1.length != 1)
  1771. {
  1772. model.removeNodeset("/root/source/validation");
  1773. model.makeNode("/root/source/validation")
  1774. model.copyNode("/root/source/validation", validation_rsltnode);
  1775. misfOpenPopUpList(vali_kind, obj, pcdgrupid, precv_list, pValueControl, pNodeNames)
  1776. }
  1777. else
  1778. {
  1779. for (var i = 0; i < recv_node.length; i++)
  1780. {
  1781. if (obj.elementName == "xforms:datagrid")
  1782. {
  1783. //alert(result_path + "[" + (obj.row - obj.fixedRows + 1) + "]/" + recv_node[i] + "*****" + rslt_node[i]);
  1784. model.setValue(result_path + "[" + (obj.row - obj.fixedRows + 1) + "]/" + recv_node[i], rslt_node[i]);
  1785. }
  1786. else
  1787. {
  1788. model.makeValue(result_path + "/" + recv_node[i], rslt_node[i]);
  1789. }
  1790. }
  1791. }
  1792. }
  1793. //Enter Key입력시 포커스 이동 순서 Setting
  1794. function misfCursorMoveSet() {
  1795. BODY_CONTROLS.clear;
  1796. BODY_CONTROLS_INDEX.clear;
  1797. CONTROLS_MOVE_CNT = 0;
  1798. var navindex_cnt = 0;
  1799. for (var i = 1; i < document.controls.length; i++) {
  1800. var obj = document.controls.item(i);
  1801. if (obj.attribute("navindex") > 0) {
  1802. BODY_CONTROLS[navindex_cnt] = obj.attribute("id");
  1803. BODY_CONTROLS_INDEX[navindex_cnt] = obj.attribute("navindex");
  1804. navindex_cnt++;
  1805. }
  1806. }
  1807. // for(var x = 0; x < BODY_CONTROLS.length; x++) {
  1808. // alert(BODY_CONTROLS_INDEX[x] + "###" + BODY_CONTROLS[x]);
  1809. // }
  1810. var old_control_id = "";
  1811. var old_navindex = 10000;
  1812. var temp_controls = new Array();
  1813. var temp_controls_index = new Array();
  1814. var array_index = 0;
  1815. var del_array_index = 0;
  1816. var exist_yn = "N";
  1817. var break_yn = "N";
  1818. for (var j = 0; j < BODY_CONTROLS.length; j++) {
  1819. old_navindex = parseInt(BODY_CONTROLS_INDEX[j]);
  1820. exist_yn = "N";
  1821. for (var k = j ; k < BODY_CONTROLS.length; k++) {
  1822. // alert(old_navindex);
  1823. // alert(BODY_CONTROLS_INDEX[k]);
  1824. if (parseInt(old_navindex) != 10000) {
  1825. if (parseInt(old_navindex) >= parseInt(BODY_CONTROLS_INDEX[k]) ) {
  1826. old_navindex = parseInt(BODY_CONTROLS_INDEX[k]);
  1827. old_control_id = BODY_CONTROLS[k];
  1828. del_array_index = k;
  1829. exist_yn = "Y";
  1830. }
  1831. }
  1832. }
  1833. if (exist_yn == "Y") {
  1834. temp_controls[array_index] = old_control_id;
  1835. temp_controls_index[array_index] = array_index;
  1836. BODY_CONTROLS_INDEX[del_array_index] = 10000;
  1837. array_index++;
  1838. j = -1;
  1839. }
  1840. }
  1841. // for(var z = 0; z < BODY_CONTROLS.length; z++) {
  1842. // alert(BODY_CONTROLS_INDEX[z] + "###" + BODY_CONTROLS[z]);
  1843. // }
  1844. BODY_CONTROLS_INDEX = temp_controls_index;
  1845. BODY_CONTROLS = temp_controls;
  1846. // for(var q = 0; q < BODY_CONTROLS.length; q++) {
  1847. // alert(BODY_CONTROLS[q]);
  1848. // }
  1849. }
  1850. //Enter Key입력시 포커스 이동
  1851. function misfSetFocus() {
  1852. var objID = event.target;
  1853. var obj = document.controls(objID);
  1854. if (event.keyCode == "13") {
  1855. var objID = event.target;
  1856. var grid_id = objID.split(".");
  1857. var obj = document.controls(grid_id[0]);
  1858. if (obj != null) {
  1859. if (obj.elementName == "xforms:datagrid") {
  1860. return;
  1861. }
  1862. }
  1863. var exist_yn = "N";
  1864. var control_id = "";
  1865. for (var i = 0; i < BODY_CONTROLS_INDEX.length; i++) {
  1866. if ( CONTROLS_MOVE_CNT == BODY_CONTROLS_INDEX[i]) {
  1867. exist_yn = "Y";
  1868. control_id = BODY_CONTROLS[i];
  1869. break;
  1870. }
  1871. }
  1872. if (exist_yn = "Y" && control_id != "") {
  1873. model.setFocus(control_id);
  1874. }
  1875. else {
  1876. CONTROLS_MOVE_CNT = 0;
  1877. model.setFocus(BODY_CONTROLS[0]);
  1878. }
  1879. }
  1880. }
  1881. //포커스 이동시 현재의 위치 Setting
  1882. function misfFocusPosSet() {
  1883. var objID = event.target;
  1884. var obj = document.controls(objID);
  1885. var grid_id = objID.split(".");
  1886. var obj = document.controls(grid_id[0]);
  1887. if (obj != null) {
  1888. if (obj.elementName == "xforms:datagrid") {
  1889. return;
  1890. }
  1891. }
  1892. if (obj != null) {
  1893. for (var i = 0; i < BODY_CONTROLS_INDEX.length; i++) {
  1894. if (obj.attribute("id") == BODY_CONTROLS[i]) {
  1895. CONTROLS_MOVE_CNT = i+1;
  1896. }
  1897. }
  1898. }
  1899. }
  1900. // PopUP 에서 체크 항목을 리턴 시킨다.
  1901. /*
  1902. * pGrid : ex) grd_test
  1903. * iCheckedcol : 1(쓰는 컬럼 인덱스) or parent의 Grid.colRef("test");
  1904. */
  1905. function misfPopUpCheckedListReturn(pGrid_name, iCheckedCol)
  1906. {
  1907. var recv_ref = model.getValue("root/target/recvref");
  1908. var node = instance1.selectNodes("root/target/recvitem/*");
  1909. var iCheckedCnt = misfCountCheckedList(pGrid_name, iCheckedCol);
  1910. var iCurrentCnt = 1;
  1911. var temp = "";
  1912. var iParentRowIdx = "";
  1913. var objID = opener.event.currentTarget;
  1914. var obj = opener.document.controls(objID);
  1915. if(obj.elementName == "xforms:datagrid" || obj.attribute("id") == "btn_setaact")
  1916. {
  1917. temp = recv_ref.split("[")[1];
  1918. iParentRowIdx = temp.split("]")[0];
  1919. }
  1920. if (checkOpener())
  1921. {
  1922. var parentGrid = opener.document.controls(model.getValue("root/target/control"));
  1923. for(var i=1; i<pGrid_name.rows; i++)
  1924. {
  1925. if(pGrid_name.valueMatrix(i, iCheckedCol) == "Y")
  1926. {
  1927. if(obj.elementName == "xforms:datagrid" || obj.attribute("id") == "btn_setaact")
  1928. {
  1929. recv_ref = parentGrid.nodeset + "[" + (iParentRowIdx) + "]";
  1930. for(var j=0; j<node.length; j++)
  1931. {
  1932. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pGrid_name.nodeset + "[" + i + "]/" + pGrid_name.colAttribute(j + 1, "ref")));
  1933. }
  1934. if(iCurrentCnt < iCheckedCnt)
  1935. {
  1936. misfGridIUD(parentGrid, "A");
  1937. iCurrentCnt++;
  1938. iParentRowIdx++;
  1939. }
  1940. }
  1941. else
  1942. {
  1943. for (var j=0; j<node.length; j++)
  1944. {
  1945. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pGrid_name.nodeset + "[" + (pGrid_name.row - pGrid_name.fixedRows + 1) + "]/" + pGrid_name.colAttribute(j + 1, "ref")));
  1946. }
  1947. }
  1948. }
  1949. }
  1950. if (obj.elementName == "xforms:datagrid")
  1951. {
  1952. if (obj.rowstatus(obj.row) == 0)
  1953. {
  1954. obj.rowstatus(obj.row) = 2;
  1955. }
  1956. }
  1957. window.close();
  1958. }
  1959. else
  1960. {
  1961. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  1962. }
  1963. }
  1964. function misfCountCheckedList(pGrid_Name, iChkColidx)
  1965. {
  1966. var iCnt = 0;
  1967. for(var i=1; i<pGrid_Name.rows; i++)
  1968. {
  1969. if(pGrid_Name.valueMatrix(i, iChkColidx) == "Y")
  1970. {
  1971. iCnt++;
  1972. }
  1973. }
  1974. return iCnt;
  1975. }
  1976. // Grid에서 중복된 PK 가 있는지 확인한다.
  1977. /*
  1978. * pGrid : ex) grd_test
  1979. * icolidx : ex) 1(쓰는 컬럼 인덱스) or parent의 Grid.colRef("test");
  1980. */
  1981. function misfCheckDupData(pGrid, icolidx)
  1982. {
  1983. var iInsCnt = 0;
  1984. var iDupCnt = 0;
  1985. var bDel = false;
  1986. for(var i=0; i<pGrid.rows; i++)
  1987. {
  1988. if(pGrid.rowStatus(i) == 1 || pGrid.rowStatus(i) == 3)
  1989. {
  1990. iInsCnt = i;
  1991. break;
  1992. }
  1993. }
  1994. for(var i=iInsCnt; i<pGrid.rows; i++)
  1995. {
  1996. for(var j=1; j<i; j++)
  1997. {
  1998. if(pGrid.valueMatrix(i, icolidx) == pGrid.valueMatrix(j, icolidx))
  1999. {
  2000. if(pGrid.rowStatus(i) == 1 || pGrid.rowStatus(i) == 3)
  2001. {
  2002. pGrid.deleteItem(i);
  2003. iDupCnt++;
  2004. bDel = true;
  2005. }
  2006. }
  2007. }
  2008. if(bDel)
  2009. {
  2010. bDel = false;
  2011. i--;
  2012. }
  2013. }
  2014. if(iDupCnt > 0)
  2015. {
  2016. messageBox("[ " + iDupCnt + " ]" + " 건의 중복된 행이 삭제", "I001");
  2017. }
  2018. }
  2019. // Grid를 Excel 파일로 저장 한다.
  2020. /*
  2021. * pGrid : ex) grd_test
  2022. */
  2023. function misfSaveExcel(pGrid, sTitle)
  2024. {
  2025. var sTitleTmp = "excel"
  2026. if(sTitle != null)
  2027. {
  2028. sTitleTmp = sTitle
  2029. }
  2030. var fileName = window.fileDialog("save", ",", false, sTitleTmp, "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  2031. if (fileName != "")
  2032. {
  2033. pGrid.saveExcel(fileName, "SheetName", true, true, "", "", false);
  2034. }
  2035. }
  2036. // Grid수정되는 안되는 셀을 읽기 전용으로 바꾼다.
  2037. /*
  2038. * pGrid : ex) grd_test
  2039. * pCols : ex) "acntcd,bugtcd" (,)콤마를 기준으로 한개 또는 여러개 입력
  2040. * bYn : ex) true / false
  2041. * iRowIdx : ex) Row 인덱스
  2042. */
  2043. function misfSetReadOnlyCol(pGrid, pRefs, bYn, iRowIdx)
  2044. {
  2045. var arrRefs = pRefs.split(",");
  2046. if(arrRefs.length == 0) return;
  2047. if(iRowIdx == null || iRowIdx == "")
  2048. {
  2049. for(var i=1; i<pGrid.rows; i++)
  2050. {
  2051. for(var j=0; j<arrRefs.length; j++)
  2052. {
  2053. pGrid.isReadOnly(i, pGrid.colRef(arrRefs[j])) = bYn;
  2054. }
  2055. }
  2056. }
  2057. else
  2058. {
  2059. for(var j=0; j<arrRefs.length; j++)
  2060. {
  2061. pGrid.isReadOnly(iRowIdx, pGrid.colRef(arrRefs[j])) = bYn;
  2062. }
  2063. }
  2064. }
  2065. // Grid에서 Insert가 되는 PK가 되는 컬럼중에 널인게 있으면 삭제를 한다.
  2066. /*
  2067. * pGrid : ex) grd_test
  2068. * pCols : ex) "acntcd,bugtcd"
  2069. */
  2070. function misfCheckNullPK(pGrid, pCols)
  2071. {
  2072. var arrCols = pCols.split(",");
  2073. for(var i=1; i<pGrid.rows; i++)
  2074. {
  2075. if(pGrid.rowStatus(i) == 1)
  2076. {
  2077. var bNull = false;
  2078. for(var j=0; j<arrCols.length; j++)
  2079. {
  2080. if(pGrid.valueMatrix(i, pGrid.colRef(arrCols[j])) == null || pGrid.valueMatrix(i, pGrid.colRef(arrCols[j])) == "")
  2081. {
  2082. bNull = true;
  2083. }
  2084. }
  2085. if(bNull)
  2086. {
  2087. pGrid.row = i;
  2088. misfGridIUD(pGrid, "D");
  2089. i--;
  2090. }
  2091. }
  2092. }
  2093. }
  2094. // "200706" 또는 "20070601" 이런씩으로 넘어 오는 날짜 값들을. 사용자가 원하는 딜리미터를 이용한 날짜타입 만들기
  2095. /*
  2096. * sDate : ex) "200607" or "20070701"
  2097. * sDelimete : ex) "/", "-", "."
  2098. */
  2099. function misfConvertChar2Date(sDate, sDelimete)
  2100. {
  2101. var sRetDate = "";
  2102. if(sDate.length == 6)
  2103. {
  2104. sRetDate = sDate.substr(0, 4) + sDelimete + sDate.substr(4, 2);
  2105. }
  2106. else if(sDate.length == 8)
  2107. {
  2108. sRetDate = sDate.substr(0, 4) + sDelimete + sDate.substr(4, 2) + sDelimete + sDate.substr(6, 2);
  2109. }
  2110. return sRetDate;
  2111. }
  2112. // 사용자정보 Get후 없을 경우 Set한다.
  2113. function misfGetAndSetUserInfo()
  2114. {
  2115. var sRecvNode = "bugtusesupcdlist";
  2116. var sParamsNode = "/root/send/retrparam";
  2117. var sRsltNode = "/root/hidden/userinfo";
  2118. var arrRef = "";
  2119. var sShowRsltNode = "";
  2120. model.removeNodeset(sRsltNode);
  2121. model.makeNode(sRsltNode);
  2122. model.removeChild("TRRPD00001");
  2123. model.createChild("xforms:submission", "id:TRRPD00001;mediatype:application/x-www-form-urlencoded; method:post; ref:" + sParamsNode + "; resultref:" + sRsltNode + "; ");
  2124. submit("TRRPD00001");
  2125. model.copyNode(sShowRsltNode, sRsltNode);
  2126. DUT_DEPT_CD = model.getValue("/root/hidden/userinfo/dutdeptcd");
  2127. DUT_UNIT_CD = model.getValue("/root/hidden/userinfo/dutunitcd");
  2128. DUT_UNIT_NM = model.getValue("/root/hidden/userinfo/dutunitnm");
  2129. DUT_TEAM_CD = model.getValue("/root/hidden/userinfo/dutteamcd");
  2130. DUT_TEAM_NM = model.getValue("/root/hidden/userinfo/dutteamnm");
  2131. JOB_RESP_CD = model.getValue("/root/hidden/userinfo/jobrespcd");
  2132. DEPT_CD = model.getValue("/root/hidden/userinfo/deptcd");
  2133. DEPT_NM = model.getValue("/root/hidden/userinfo/deptnm");
  2134. DUT_PLCEDEPT_CD = model.getValue("/root/hidden/userinfo/dutplcedeptcd");
  2135. DUT_PLCEDEPT_NM = model.getValue("/root/hidden/userinfo/dutplcedeptnm");
  2136. model.refresh();
  2137. }
  2138. // 사용자 권한을 조회한다.
  2139. function misfGetUserAuth()
  2140. {
  2141. var sRecvNode = "auth";
  2142. var sParamsNode = "/root/send/retrauthparams";
  2143. var sRsltNode = "/root/main/authlist";
  2144. var arrRef = "";
  2145. var sShowRsltNode = "";
  2146. model.makeValue("/root/send/retrauthparams/instcd", getUserInfo("dutplceinstcd"));
  2147. model.makeValue("/root/send/retrauthparams/emplno", getUserInfo("userid"));
  2148. model.removeNodeset(sRsltNode);
  2149. model.makeNode(sRsltNode);
  2150. model.removeChild("TRRPD90001");
  2151. model.createChild("xforms:submission", "id:TRRPD90001;mediatype:application/x-www-form-urlencoded; method:post; ref:" + sParamsNode + "; resultref:" + sRsltNode + "; ");
  2152. submit("TRRPD90001");
  2153. model.copyNode(sShowRsltNode, sRsltNode);
  2154. if(instance1.selectNodes("/root/main/authlist/auth").length > 0)
  2155. {
  2156. DUTY_RESP_YN = model.getValue("/root/main/authlist/auth/dutyresp");
  2157. DUTY_PART_YN = model.getValue("/root/main/authlist/auth/insaduty");
  2158. DUTY_VALU_YN = model.getValue("/root/main/authlist/auth/insavaluation");
  2159. DUTY_UNIT_CD = model.getValue("/root/main/authlist/auth/dutplcedeptcd");
  2160. DUTY_WELF_YN = model.getValue("/root/main/authlist/auth/insawelfare");
  2161. DUTY_RANK_YN = model.getValue("/root/main/authlist/auth/insarank");
  2162. DUTY_EDU_YN = model.getValue("/root/main/authlist/auth/insaedu");
  2163. DUTY_PAY_YN = model.getValue("/root/main/authlist/auth/insapayinfo");
  2164. PSN_INST_YN = model.getValue("/root/main/authlist/auth/otherinstcdretr");
  2165. DUTY_APNT_YN = model.getValue("/root/main/authlist/auth/insaenter");
  2166. }
  2167. else
  2168. {
  2169. DUTY_RESP_YN = "N";
  2170. DUTY_PART_YN = "N";
  2171. DUTY_VALU_YN = "N";
  2172. DUTY_WELF_YN ="N";
  2173. DUTY_RANK_YN ="N";
  2174. DUTY_EDU_YN = "N";
  2175. DUTY_PAY_YN = "N";
  2176. PSN_INST_YN = "N";
  2177. DUTY_APNT_YN ="N";
  2178. }
  2179. model.refresh();
  2180. }
  2181. /************************************************************************************************
  2182. 함수명 : addGridComboItem ()
  2183. 인자 :
  2184. String comboID - 해당 콤보 아이디
  2185. String label - 추가 할 아이템 Lavel
  2186. String value - 추가 할 아이템 Value
  2187. String [postion] - 추가 할 위치( "above" | "below" )
  2188. 결과값 :
  2189. 함수설명 : 콤보 아이템 추가 함수
  2190. ************************************************************************************************/
  2191. function addGridComboItem(control_id, label, value, position ) {
  2192. //var comboObj = document.all.item(comboID);
  2193. var control = control_id.split(".");
  2194. var obj = document.controls(control[0]);
  2195. if (obj != null && obj.elementName == "xforms:datagrid") {
  2196. obj = document.controls(obj.colAttribute(obj.colRef(control[1]), "id"));
  2197. }
  2198. // Combo ItemSet 정보
  2199. var comboItemNodeSet = obj.choices.itemset.attribute("nodeset");
  2200. var comboLabelRef = obj.choices.itemset.label.attribute("ref");
  2201. var comboValueRef = obj.choices.itemset.value.attribute("ref");
  2202. // Item 노드 생성
  2203. var itemNode = instance1.createNode("element", instance1.selectSingleNode(comboItemNodeSet).nodeName, "");
  2204. var labelNode = instance1.createNode("element", comboLabelRef, "");
  2205. var valueNode = instance1.createNode("element", comboValueRef, "");
  2206. if( label == null || label == "" ) label = "전체";
  2207. labelNode.value = label;
  2208. itemNode.appendChild(labelNode);
  2209. if( value == null || value == "" ) value = "";
  2210. valueNode.value = value;
  2211. itemNode.appendChild(valueNode);
  2212. if( position == null || position == "" )
  2213. position = "above";
  2214. var destNode = instance1.selectSingleNode(comboItemNodeSet);
  2215. var pDestNode = destNode.parentNode;
  2216. if( position == "above" ) {
  2217. pDestNode.insertBefore(itemNode, destNode);
  2218. }
  2219. else {
  2220. pDestNode.appendChild(itemNode);
  2221. }
  2222. }
  2223. function addGridComboItemAll(control_idlist, label, value, position) {
  2224. var control_id = control_idlist.split(",");
  2225. if(label == null || label == "" )
  2226. label = "전체";
  2227. for( var i = 0; i < control_id.length; i++ )
  2228. addGridComboItem( control_id[i], label, value, position);
  2229. }
  2230. /*
  2231. ===============================================================================
  2232. File Name : MIS.js
  2233. File Explanation : 바코드출력 miscommonweb js (for Zebra ZPL )
  2234. File Author : Jung sungwook 2009.06.08
  2235. Revision Details :
  2236. ===============================================================================
  2237. */
  2238. //바코드 object생성 - 한도미디어작성, 버전 1.0.0.33
  2239. function misfMakeBrcdPrntObjHanDo(objNm){
  2240. body.removeChild(objNm);
  2241. //1.0.0.26
  2242. //{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}
  2243. body.createChild("xforms:object", "id:"+objNm+"; clsid:{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  2244. }
  2245. /**
  2246. * @group : miscommonweb
  2247. * @ver : 2009.06.08
  2248. * @by : Jung sungwook
  2249. * @---------------------------------------------------
  2250. * @type : function
  2251. * @access : public
  2252. * <pre>
  2253. * 바코드 Format 시작
  2254. *
  2255. * </pre>
  2256. * @param : pX = 시작 가로위치 (in dots)
  2257. * @param : pY = 시작 세로위치 (in dots)
  2258. * @return :
  2259. * @---------------------------------------------------
  2260. */
  2261. function misfBP_StartFormat(pX, pY) {
  2262. return "^XA" + "^LH" + pX + "," + pY;
  2263. }
  2264. /**
  2265. * @group : miscommonweb
  2266. * @ver : 2009.06.08
  2267. * @by : Jung sungwook
  2268. * @---------------------------------------------------
  2269. * @type : function
  2270. * @access : public
  2271. * <pre>
  2272. * 바코드 Format 종료
  2273. *
  2274. * </pre>
  2275. * @param : pCnt = 출력매수
  2276. * @return :
  2277. * @---------------------------------------------------
  2278. */
  2279. function misfBP_EndFormat(pCnt) {
  2280. var vCnt = 1;
  2281. if (isNull(pCnt)) {
  2282. vCnt = 1;
  2283. } else {
  2284. vCnt = pCnt
  2285. }
  2286. return "^PQ" + vCnt + "^XZ";
  2287. }
  2288. /**
  2289. * @group : miscommonweb
  2290. * @ver : 2009.06.08
  2291. * @by : Jung sungwook
  2292. * @---------------------------------------------------
  2293. * @type : function
  2294. * @access : public
  2295. * @desc : Hangul Or English
  2296. * @param : pData --> Original String
  2297. * : aFlag[] --> H(Hangle) / E(English)
  2298. *
  2299. *
  2300. * @return :
  2301. *
  2302. * ex) lpzffGetHanGul(pData, aFlag);
  2303. * @-------------------------------------------------------------------
  2304. */
  2305. function misfGetHanGul(pData, aFlag) {
  2306. var re = /([!-~]*)*/g;
  2307. var matchMatrix = pData.match(re);
  2308. var aData = new Array();
  2309. var iSPos = 0;
  2310. var iFindPos = 0;
  2311. var iDataCnt = 0;
  2312. var iHngCnt = 0;
  2313. var bHngState = false;
  2314. //---------------------------------------
  2315. for(j = 0; j < matchMatrix.length-1; j++) {
  2316. tmpStr = matchMatrix[j] + "";
  2317. //-------------------------
  2318. if (matchMatrix[j] == "") {
  2319. bHngState = true;
  2320. iHngCnt++;
  2321. } else {
  2322. //--------------
  2323. if (bHngState) {
  2324. aFlag[iDataCnt] = "H";
  2325. aData[iDataCnt] = pData.substr(iSPos, iHngCnt);
  2326. bHngState = false;
  2327. iSPos += iHngCnt;
  2328. iHngCnt = 0;
  2329. iDataCnt++;
  2330. }
  2331. //--------------------
  2332. aFlag[iDataCnt] = "E";
  2333. iFindPos = pData.indexOf(matchMatrix[j], iSPos);
  2334. aData[iDataCnt] = matchMatrix[j]
  2335. //------------------------------------------------
  2336. iSPos = Number(iFindPos) + Number(tmpStr.length);
  2337. iDataCnt++;
  2338. }
  2339. }
  2340. //--------------
  2341. if (bHngState) {
  2342. aFlag[iDataCnt] = "H";
  2343. aData[iDataCnt] = pData.substr(iSPos, iHngCnt);
  2344. bHngState = false;
  2345. }
  2346. //-----------
  2347. return aData;
  2348. }
  2349. /**
  2350. * @group : miscommonweb
  2351. * @ver : 2009.06.08
  2352. * @by : Jung sungwook
  2353. * @---------------------------------------------------
  2354. * @type : function
  2355. * @access : public
  2356. * <pre>
  2357. * 알파벳, 숫자 Field정의
  2358. *
  2359. * </pre>
  2360. * @param : pX = 시작 가로위치 (in dots)
  2361. * @param : pY = 시작 세로위치 (in dots)
  2362. * @param : pData = Field Data
  2363. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  2364. * @return :
  2365. * @---------------------------------------------------
  2366. */
  2367. function misfBP_FieldDataA(pX, pY, pData, pReverse) {
  2368. var sBuf = "";
  2369. sBuf = misfBP_FiendOrigin(pX, pY);
  2370. if (!isNull(pReverse)) {
  2371. if (pReverse.getTrim() == "Y") {
  2372. sBuf += "^FR";
  2373. }
  2374. }
  2375. sBuf += "^FD" + pData + "^FS";
  2376. return sBuf;
  2377. }
  2378. /**
  2379. * @group : miscommonweb
  2380. * @ver : 2009.06.08
  2381. * @by : Jung sungwook
  2382. * @---------------------------------------------------
  2383. * @type : function
  2384. * @access : public
  2385. * <pre>
  2386. * 기본 Font 설정
  2387. *
  2388. * </pre>
  2389. * @param : pF = Default Font
  2390. * @param : pH = Height(in dots) - Default 9
  2391. * @param : pW = Width(in dots) - Default 5
  2392. * @return :
  2393. * @---------------------------------------------------
  2394. */
  2395. function misfBP_ChangeFont(pF, pH, pW) {
  2396. var sBuf = "";
  2397. sBuf = "^CF" + pF;
  2398. sBuf += "," + pH;
  2399. sBuf += "," + pW;
  2400. return sBuf;
  2401. }
  2402. /**
  2403. * @group : miscommonweb
  2404. * @ver : 2009.06.08
  2405. * @by : Jung sungwook
  2406. * @---------------------------------------------------
  2407. * @type : function
  2408. * @access : public
  2409. * <pre>
  2410. * 바코드 정의(Code 39)
  2411. *
  2412. * </pre>
  2413. * @param : pX = 시작 가로위치
  2414. * @param : pY = 시작 세로위치
  2415. * @param : pO = 방향
  2416. * @param : pH = 바코드 Height
  2417. * @param : pData = 바코드정보
  2418. * @return :
  2419. * @---------------------------------------------------
  2420. */
  2421. function misfBP_BarCode_Code39NEW(pX, pY, pO, pH, pData) {
  2422. var sBuf = "";
  2423. sBuf = misfBP_FiendOrigin(pX, pY);
  2424. sBuf += "^BY2,2.0";
  2425. sBuf += "^B3" + pO + ",N," + pH + ",N,N^FD" + pData + "^FS";
  2426. return sBuf;
  2427. }
  2428. /**
  2429. * @group : miscommonweb
  2430. * @ver : 2009.06.08
  2431. * @by : Jung sungwook
  2432. * @---------------------------------------------------
  2433. * @type : function
  2434. * @access : public
  2435. * <pre>
  2436. * 알파벳, 숫자 Field정의
  2437. *
  2438. * </pre>
  2439. * @param : pX = 시작 가로위치 (in dots)
  2440. * @param : pY = 시작 세로위치 (in dots)
  2441. * @param : pData = Field Data
  2442. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  2443. * @return :
  2444. * @---------------------------------------------------
  2445. */
  2446. function misfBP_FieldDataANEW(pX, pY, pData, pReverse,pW ,pH) {
  2447. var sBuf = "";
  2448. sBuf = misfBP_FiendOrigin(pX, pY);
  2449. if (!isNull(pReverse)) {
  2450. //if (pReverse.getTrim() == "Y") {
  2451. // sBuf += "^FR";
  2452. //}
  2453. sBuf += "^A0"+pReverse+","+pW+","+pH;
  2454. }
  2455. sBuf += "^FD" + pData + "^FS";
  2456. return sBuf;
  2457. }
  2458. /**
  2459. * @group : miscommonweb
  2460. * @ver : 2009.06.08
  2461. * @by : Jung sungwook
  2462. * @---------------------------------------------------
  2463. * @type : function
  2464. * @access : public
  2465. * <pre>
  2466. * 바코드 Format 종료
  2467. *
  2468. * </pre>
  2469. * @param : pX = 시작 가로위치 (in dots)
  2470. * @param : pY = 시작 세로위치 (in dots)
  2471. * @return :
  2472. * @---------------------------------------------------
  2473. */
  2474. function misfBP_FiendOrigin(pX, pY) {
  2475. return "^FO" + pX + "," + pY;
  2476. }
  2477. /**
  2478. * @group : miscommonweb
  2479. * @ver : 2009.06.08
  2480. * @by : Jung sungwook
  2481. * @---------------------------------------------------
  2482. * @type : function
  2483. * @access : public
  2484. * <pre>
  2485. * 기본 Font 설정
  2486. *
  2487. * </pre>
  2488. * @param : pF = Default Font
  2489. * @param : pH = Height(in dots) - Default 9
  2490. * @param : pW = Width(in dots) - Default 5
  2491. * @return :
  2492. * @---------------------------------------------------
  2493. */
  2494. function misfBP_ChangeFont(pF, pH, pW) {
  2495. var sBuf = "";
  2496. sBuf = "^CF" + pF;
  2497. sBuf += "," + pH;
  2498. sBuf += "," + pW;
  2499. return sBuf;
  2500. }
  2501. /**
  2502. * @group : miscommonweb
  2503. * @ver : 2009.06.08
  2504. * @by : Jung sungwook
  2505. * @---------------------------------------------------
  2506. * @type : function
  2507. * @access : public
  2508. * <pre>
  2509. * 한글 출력 (폰트 및 글자크기 지정)
  2510. * </pre>
  2511. * @param : pX = 시작 가로위치 (in dots)
  2512. * @param : pY = 시작 세로위치 (in dots)
  2513. * @param : pW = 폰트 Width
  2514. * @param : pH = 폰트 Height
  2515. * @param : pData = Field Data
  2516. * @return :
  2517. *
  2518. */
  2519. function misfBP_FieldDataHNEW(pX, pY, pW, pH, pData) {
  2520. var sBuf = "";
  2521. sBuf = "^SEE:UHANGUL.DAT^FS"
  2522. sBuf = "^CWQ,E:AAAAA.FNT^FS"
  2523. sBuf = "^CI26";
  2524. sBuf += misfBP_FiendOrigin(pX, pY);
  2525. sBuf += "^AQN" + "," + pW + "," + pH;
  2526. sBuf += "^FD" + pData + "^FS";
  2527. return sBuf;
  2528. }
  2529. /**
  2530. * @group : miscommonweb
  2531. * @ver : 2009.06.08
  2532. * @by : Jung sungwook
  2533. * @---------------------------------------------------
  2534. * @type : function
  2535. * @access : public
  2536. * <pre>
  2537. * 알파벳, 숫자 Field정의
  2538. *
  2539. * </pre>
  2540. * @param : pX = 시작 가로위치 (in dots)
  2541. * @param : pY = 시작 세로위치 (in dots)
  2542. * @param : pData = Field Data
  2543. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  2544. * @return :
  2545. * @---------------------------------------------------
  2546. */
  2547. function misfBP_FieldDataANEW(pX, pY, pData, pReverse,pW ,pH) {
  2548. var sBuf = "";
  2549. sBuf = misfBP_FiendOrigin(pX, pY);
  2550. if (!isNull(pReverse)) {
  2551. //if (pReverse.getTrim() == "Y") {
  2552. // sBuf += "^FR";
  2553. //}
  2554. sBuf += "^A0"+pReverse+","+pW+","+pH;
  2555. }
  2556. sBuf += "^FD" + pData + "^FS";
  2557. return sBuf;
  2558. }
  2559. //바코드 object생성 - 한도미디어작성, 버전 1.0.0.33
  2560. function misfMakeBrcdPrntObjHanDo(objNm, pSetRef, pIsNew){
  2561. if(pSetRef != null){
  2562. var prtkind = model.getvalue(pSetRef + "/prntkind");
  2563. var portnm = model.getvalue(pSetRef + "/commkind");
  2564. var prtnm = model.getvalue(pSetRef + "/comm01/setupval");
  2565. var comnum = model.getvalue(pSetRef + "/comm02/comm");
  2566. var comset = model.getvalue(pSetRef + "/comm02/baudrate");
  2567. comset = comset + "," + model.getvalue(pSetRef + "/comm02/parity");
  2568. comset = comset + "," + model.getvalue(pSetRef + "/comm02/databit");
  2569. comset = comset + "," + model.getvalue(pSetRef + "/comm02/stopbit");
  2570. }else{
  2571. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind");
  2572. var portnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/commkind");
  2573. var prtnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm01/setupval");
  2574. var comnum = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/comm");
  2575. var comset = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/baudrate");
  2576. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/parity");
  2577. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/databit");
  2578. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/stopbit");
  2579. }
  2580. body.removeChild(objNm);
  2581. if( prtkind == "2" || prtkind == "6" || prtkind == "7" || pIsNew == "NEW"){
  2582. body.createChild("xforms:object", "id:"+objNm+"; clsid:{b721f534-d025-466b-8a28-7cf40e700acd}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  2583. if(prtkind == "1") prtkind = 0;
  2584. else if(prtkind == "5") prtkind = 1;
  2585. else if(prtkind == "2") prtkind = 2;
  2586. else if(prtkind == "6") prtkind = 3;
  2587. else if(prtkind == "7") prtkind = 4;
  2588. else prtkind = 9;
  2589. if(portnm == "02") portnm = "1";
  2590. else portnm = "2";
  2591. eval(objNm + ".setPrt(prtkind, portnm, prtnm, comnum, comset);");
  2592. //objNm.setPrt(prtkind, portnm, prtnm, comnum, comset);
  2593. //PORT.setPrt(3, "LPT");
  2594. }
  2595. else{
  2596. //1.0.0.26
  2597. //{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}
  2598. body.createChild("xforms:object", "id:"+objNm+"; clsid:{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  2599. }
  2600. }
  2601. /**
  2602. * @group : miscommonweb
  2603. * @ver : 2009.06.08
  2604. * @by : Jung sungwook
  2605. * @---------------------------------------------------
  2606. * @type : function
  2607. * @access : public
  2608. * <pre>
  2609. * 바코드 Format 종료
  2610. *
  2611. * </pre>
  2612. * @param : pX = 시작 가로위치 (in dots)
  2613. * @param : pY = 시작 세로위치 (in dots)
  2614. * @return :
  2615. * @---------------------------------------------------
  2616. */
  2617. function misfBP_FiendOrigin(pX, pY) {
  2618. return "^FO" + pX + "," + pY;
  2619. }
  2620. function misfComboInstCdListMulti(pcontrol_name_list, pBaseDD, pLabel, sBlankYn, pAllYn)
  2621. {
  2622. var control_list = pcontrol_name_list.split(",");
  2623. var instcd_node = "/root/send/inst";
  2624. var instcd_rsltnode = "/root/init/inst";
  2625. model.makeNode(instcd_rsltnode);
  2626. model.removeNodeset(instcd_node);
  2627. model.makeNode(instcd_node);
  2628. model.makeNode(instcd_node + "/refcond");
  2629. model.makeNode(instcd_node + "/instcd");
  2630. model.makeNode(instcd_node + "/basedd");
  2631. model.makeNode(instcd_node + "/allyn");
  2632. if (pLabel == null || pLabel == "") {
  2633. sLabelName = "instnm";
  2634. }
  2635. else {
  2636. sLabelName = pLabel;
  2637. }
  2638. //var sLabelName = ( pLabel == null ) ? "instnm" : pLabel;
  2639. var sBasedd = "";
  2640. if (pBaseDD == null || pBaseDD == "") {
  2641. var curdate = getCurrentDate();
  2642. sBasedd = curdate.substr(0,8);
  2643. }
  2644. else {
  2645. sBasedd = pBaseDD;
  2646. }
  2647. var sallyn = "N";
  2648. if (pAllYn == null || pAllYn == "") {
  2649. sallyn = "N";
  2650. }
  2651. else {
  2652. sallyn = pAllYn;
  2653. }
  2654. model.makeNode(instcd_node + "/" + sLabelName);
  2655. var arrInstCd_ItemSet_Temp = new Array();
  2656. var arrAddNode = new Array();
  2657. for (var i = 0; i < control_list.length; i++)
  2658. {
  2659. var control_id = control_list[i];
  2660. var control = control_id.split(".");
  2661. var obj = document.controls(control[0]);
  2662. var instcd_itemset = "/root/init/instcd";
  2663. var refcondNode = instance1.selectSingleNode(instcd_node + "/refcond");
  2664. var baseddNode = instance1.selectSingleNode(instcd_node + "/basedd");
  2665. var instcdNode = instance1.selectSingleNode(instcd_node + "/instcd");
  2666. var instnmNode = instance1.selectSingleNode(instcd_node + "/" + sLabelName);
  2667. var allynNode = instance1.selectSingleNode(instcd_node + "/allyn");
  2668. var refcondvalueNode = instance1.createNode("element", "refcondvalue", "");
  2669. var baseddvalueNode = instance1.createNode("element", "baseddvalue", "");
  2670. var instcdvalueNode = instance1.createNode("element", "instcdvalue", "");
  2671. var instnmvalueNode = instance1.createNode("element", "instnmvalue", "");
  2672. var allynvalueNode = instance1.createNode("element", "allynvalue", "");
  2673. baseddvalueNode.text = sBasedd;
  2674. instcdvalueNode.text = "%";
  2675. instnmvalueNode.text = "%";
  2676. refcondvalueNode.text = "instnm";
  2677. allynvalueNode.text = sallyn;
  2678. refcondNode.appendChild(refcondvalueNode);
  2679. baseddNode.appendChild(baseddvalueNode);
  2680. instcdNode.appendChild(instcdvalueNode);
  2681. instnmNode.appendChild(instnmvalueNode);
  2682. allynNode.appendChild(allynvalueNode);
  2683. if(sBlankYn == "Y")
  2684. {
  2685. arrAddNode[i] = "inst" + i + "/" + "inst" + i;
  2686. arrInstCd_ItemSet_Temp[i] = instcd_itemset + "/" + "inst" + i + "_temp/" + "inst" + i;
  2687. instcd_itemset = instcd_itemset + "/" + "inst" + i + "_temp/" + "inst" + i;
  2688. }
  2689. else
  2690. {
  2691. arrAddNode[i] = "inst" + i + "/" + "inst" + i;
  2692. arrInstCd_ItemSet_Temp[i] = instcd_itemset + "/" + "inst" + i + "_temp/" + "inst" + i;
  2693. instcd_itemset = instcd_itemset + "/" + "inst" + i + "_temp/" + "inst" + i;
  2694. }
  2695. model.removeNodeset(instcd_itemset);
  2696. model.makeNode(instcd_itemset);
  2697. if (obj != null && obj.elementName == "xforms:datagrid")
  2698. {
  2699. obj = document.controls(obj.colAttribute(obj.colRef(control[1]), "id"));
  2700. }
  2701. obj.choices.itemset.attribute("nodeset") = instcd_itemset;
  2702. obj.choices.itemset.label.attribute("ref") = sLabelName;
  2703. obj.choices.itemset.value.attribute("ref") = "instcd";
  2704. }
  2705. model.removeChild("TRRPZ00801");
  2706. model.createChild("xforms:submission", "id:TRRPZ00801;mediatype:application/x-www-form-urlencoded; method:post; ref:" + instcd_node + "; resultref:" + instcd_rsltnode + "; ");
  2707. submit("TRRPZ00801");
  2708. //if(sBlankYn == "Y")
  2709. //{
  2710. for(var i=0; i<arrInstCd_ItemSet_Temp.length; i++)
  2711. {
  2712. if(sBlankYn == "Y") {
  2713. model.makeValue(arrInstCd_ItemSet_Temp[i] + "[" + 1 + "]/instnm", "전체");
  2714. model.makeValue(arrInstCd_ItemSet_Temp[i] + "[" + 1 + "]/instcd", "");
  2715. }
  2716. var sAddNodeName = arrAddNode[i].split("/")[0];
  2717. sourcenode = document.models(0).instances(0).selectSingleNode(instcd_rsltnode + "/" + sAddNodeName);
  2718. cnt = 1;
  2719. var sourcenodelist = sourcenode.childNodes;
  2720. while (childNode = sourcenodelist.nextNode())
  2721. {
  2722. model.makeValue(arrInstCd_ItemSet_Temp[i] + "[" + (cnt + 1)+ "]/instnm", childNode.getXPathString(instcd_rsltnode + "/" + arrAddNode[i] + "[" + cnt + "]/instnm"));
  2723. model.makeValue(arrInstCd_ItemSet_Temp[i] + "[" + (cnt + 1)+ "]/instcd", childNode.getXPathString(instcd_rsltnode + "/" + arrAddNode[i] + "[" + cnt + "]/instcd"));
  2724. cnt++;
  2725. }
  2726. model.removenode(instcd_rsltnode + "/" + sAddNodeName);
  2727. }
  2728. //}
  2729. }
  2730. String.prototype.num = function(stt, len) {
  2731. var str = this;
  2732. var l = 0;
  2733. for (var i=0; i<str.length; i++) {
  2734. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  2735. if (l >= len){
  2736. if (l%2) return l-1;
  2737. return l;
  2738. }
  2739. }
  2740. return len;
  2741. }
  2742. String.prototype.cut = function(len) {
  2743. var str = this;
  2744. var l = 0;
  2745. for (var i=0; i<len; i++) {
  2746. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  2747. if (l >= len){
  2748. return str.substring(0,i);
  2749. }
  2750. }
  2751. return str;
  2752. }
  2753. String.prototype.recut = function(len) {
  2754. var str = this;
  2755. var l = 0;
  2756. for (var i=0; i<str.length; i++) {
  2757. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  2758. if (l > len){
  2759. return str.substr(i) ;
  2760. }
  2761. }
  2762. return " ";
  2763. }
  2764. String.prototype.substr2 = function(stt, len) {
  2765. var str = this;
  2766. var str_tmp = str.recut(stt);
  2767. return str_tmp.cut(len);
  2768. }
  2769. /**
  2770. * @desc : EMR부서콤보 조회
  2771. * @
  2772. * @param : ref - reference path
  2773. * rsltref - result reference path
  2774. * orddeptflag- 진료과구분
  2775. * @return :
  2776. * @author : 오지훈 -> 이창록 EMR있는 것을 복사
  2777. * @---------------------------------------------------
  2778. */
  2779. function mmbfGetDeptCodeComboList(ref, rsltref, orddeptflag, stnddd){
  2780. var mmb_rsltref = "/root/hidden/mmb/orddept";
  2781. model.removeNode(mmb_rsltref);
  2782. model.makeNode(mmb_rsltref);
  2783. model.removeNode(ref);
  2784. model.makeValue(ref + "/orddeptflag", orddeptflag);
  2785. if(stnddd != ""){
  2786. model.makeValue(ref + "/stnddd", stnddd);
  2787. }
  2788. if(submit("TRRPZ00100", "false", ref, mmb_rsltref)==true){
  2789. model.copyNode(rsltref, mmb_rsltref);
  2790. model.removeNode(mmb_rsltref);
  2791. }
  2792. model.refresh();
  2793. }
  2794. // Grid상에 drag한 row 일괄 삭제
  2795. function fGridDel(pGrid_Name)
  2796. {
  2797. if (pGrid_Name.selectedRows > 0) {
  2798. var selectedRows = Array(pGrid_Name.selectedRows);
  2799. for(i=0;i< pGrid_Name.selectedRows;i++) {
  2800. selectedRows[i] = pGrid_Name.selectedRow(i);
  2801. }
  2802. }
  2803. for ( var i= selectedRows.length; i >= 0; i--){
  2804. rowIdx = selectedRows[i];
  2805. if (pGrid_Name.rowstatus(rowIdx) == 0)
  2806. {
  2807. pGrid_Name.rowStatus(rowIdx) = "4";
  2808. }else{
  2809. pGrid_Name.deleteRow(rowIdx);
  2810. }
  2811. }
  2812. }
  2813. // 유니코드 문자 바이트수 계산
  2814. function getUTF8Length()
  2815. {
  2816. // Byte 수를 저장할 변수
  2817. var rtnValue = 0;
  2818. // Value 값의 길이만큼 loop
  2819. for(var i=0; i < this.length; i++)
  2820. {
  2821. //한글이 들어오면 255보다 크다
  2822. (this.charCodeAt(i) > 255) ? rtnValue += 3 : rtnValue += 1;
  2823. }
  2824. return rtnValue;
  2825. }
  2826. //유니코드 변환 바이트 길이 계산
  2827. function misfUTF8MaxLengthMulti(pcontrol_name_list)
  2828. {
  2829. var control_list = pcontrol_name_list.split(",");
  2830. for (var i = 0; i < control_list.length; i++)
  2831. {
  2832. var control_id = control_list[i];
  2833. var control = control_id.split(".");
  2834. var obj = document.controls(control[0]);
  2835. if (obj != null)
  2836. {
  2837. var maxLength = obj.attribute("maxlength");
  2838. var strLength = obj.value.getUTF8Length();
  2839. if(maxLength < strLength){
  2840. messageBox("허용된 입력을", "E003","("+strLength+"/"+maxLength+")");
  2841. model.setFocus(control[0]);
  2842. return false;
  2843. }
  2844. }
  2845. }
  2846. return true;
  2847. }
  2848. //부서명 검색
  2849. function misfSearchDept(name_control_id, pValueControl, pNodeNames)
  2850. {
  2851. var code_control_id = document.controls(event.currentTarget);
  2852. if(code_control_id == null || name_control_id == null) return;
  2853. var codeRef = code_control_id.attribute("ref");
  2854. var nameRef = name_control_id.attribute("ref");
  2855. model.setValue(nameRef, "");
  2856. if(model.getValue(codeRef).length != 0)
  2857. {
  2858. var callCodeRef = codeRef.substr(codeRef.lastIndexOf("/") + 1, codeRef.length - codeRef.lastIndexOf("/"));
  2859. var callNameRef = nameRef.substr(nameRef.lastIndexOf("/") + 1, nameRef.length - nameRef.lastIndexOf("/"));
  2860. misfValidationCheck("02", "", callCodeRef + "," + callNameRef, pValueControl, pNodeNames);
  2861. if(model.getValue(nameRef) == "") model.setValue(codeRef, "");
  2862. }
  2863. code_control_id.refresh();
  2864. name_control_id.refresh();
  2865. }
  2866. //Grid 에서 엔터 입력시 다음행 수정
  2867. function misfNextRow(name_grid_id)
  2868. {
  2869. var targetGrid = name_grid_id;
  2870. var col = targetGrid.col;
  2871. var row = targetGrid.row;
  2872. //엔터키 입력 && 셀유형 input && 마지막행이 아닐경우
  2873. if(event.keyCode == "13" && targetGrid.colAttribute(col, "type") == "input" && row+1 < targetGrid.rows){
  2874. targetGrid.row = row + 1;
  2875. targetGrid.editCell();
  2876. }
  2877. }
  2878. //거래처 검색
  2879. function misfSearchCust(name_control_id, instcd_control_id, basedate_control_id)
  2880. {
  2881. var code_control_id = document.controls(event.currentTarget);
  2882. if(code_control_id == null || name_control_id == null || instcd_control_id == null) return;
  2883. var codeRef = code_control_id.attribute("ref");
  2884. var nameRef = name_control_id.attribute("ref");
  2885. var instcdRef = instcd_control_id.attribute("ref");
  2886. var basedateRef = null;
  2887. var instcdVal = model.getValue(instcdRef);
  2888. var codeVal = model.getValue(codeRef);
  2889. var basedateVal = "";
  2890. var basedateFlag = false;
  2891. if(basedate_control_id != null) {
  2892. basedateFlag = true;
  2893. basedateRef = basedate_control_id.attribute("ref");
  2894. basedateVal = model.getValue(basedateRef);
  2895. }
  2896. model.setValue(nameRef, "");
  2897. if(model.getValue(codeRef).length != 0) {
  2898. var callCodeRef = codeRef.substr(codeRef.lastIndexOf("/") + 1, codeRef.length - codeRef.lastIndexOf("/"));
  2899. var callNameRef = nameRef.substr(nameRef.lastIndexOf("/") + 1, nameRef.length - nameRef.lastIndexOf("/"));
  2900. // 추가 호출창 전달 파라메터
  2901. var pdefault_node = "instcd,retrnm";
  2902. var pdefault_value = instcd_control_id.attribute("id")+","+code_control_id.attribute("id");
  2903. if(basedateFlag) {
  2904. pdefault_node += ",basedate";
  2905. pdefault_value += ","+basedate_control_id.attribute("id");
  2906. }
  2907. rszfValidationCheck("TRRSD00221", "reqcustomlist",
  2908. "instcd,refcond,statcond,retrnm,basedate",
  2909. instcdVal+",,1,"+codeVal+","+basedateVal,
  2910. "",callCodeRef+","+callNameRef,
  2911. code_control_id,"SPRSD00220",pdefault_node,pdefault_value);
  2912. if(model.getValue(nameRef) == "") model.setValue(codeRef, "");
  2913. }
  2914. code_control_id.refresh();
  2915. name_control_id.refresh();
  2916. }
  2917. // 거래처 지급중지 확인
  2918. function misfCheckCustStat(pInstcd, pCustCode, type) {
  2919. try
  2920. {
  2921. if(pInstcd == "" || pCustCode == "" || pCustCode == "-") return;
  2922. var pmapresultlist = "checkCustStat";
  2923. var pmaprefcol = "instcd,refcond,statcond,retrnm";
  2924. var pmaprefvalue = pInstcd + ",custcode,2," + pCustCode;
  2925. var objID = event.currentTarget;
  2926. var obj = document.controls(objID);
  2927. var validation_node = "/root/send/validation";
  2928. var validation_rsltnode = "/root/temp/checkcuststat/main";
  2929. model.removeNodeset(validation_node);
  2930. model.removeNodeset(validation_rsltnode);
  2931. model.makeNode(validation_node);
  2932. model.makeNode(validation_rsltnode);
  2933. if(pmaprefcol != "" && pmaprefcol != null) {
  2934. pmaprefcol = pmaprefcol.split(",");
  2935. }
  2936. if(pmaprefvalue != "" && pmaprefvalue != null) {
  2937. pmaprefvalue = pmaprefvalue.split(",");
  2938. }
  2939. if(pmaprefcol != "" && pmaprefcol != null) {
  2940. for (var z = 0; z < pmaprefcol.length; z++) {
  2941. model.makeValue(validation_node + "/" + pmaprefcol[z] , pmaprefvalue[z]);
  2942. }
  2943. }
  2944. model.removeChild("TRRSD00221");
  2945. model.createChild("xforms:submission", "id:TRRSD00221;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  2946. submit("TRRSD00221");
  2947. var node = instance1.selectSingleNode(validation_rsltnode + "/reqcustomlist/custnm");
  2948. if(node != null && node.length > 0){
  2949. var message = "[" + node.value + "]는 사용중지 된 거래처";
  2950. if(type == "return") {
  2951. if(messageBox(" " + message + " 입니다.\n","Q003") == 6) return true;
  2952. else return false;
  2953. } else {
  2954. messageBox(message,"E008");
  2955. }
  2956. }
  2957. }
  2958. catch(Exception)
  2959. {
  2960. }
  2961. }
  2962. // 전자결재 정보 조회
  2963. function misfGetElctSanct(knuhDomain, pInstID, approverole) {
  2964. try
  2965. {
  2966. if(knuhDomain == "" || pInstID == "") {
  2967. alert("전자결재 정보 조회 조건이 부족합니다.");
  2968. return null;
  2969. }
  2970. if(approverole == null || approverole == "") approverole = "01";
  2971. var objID = event.currentTarget;
  2972. var obj = document.controls(objID);
  2973. var validation_node = "/root/send/validation";
  2974. var validation_rsltnode = "/root/temp/elctsanctinfo";
  2975. model.removeNodeset(validation_node);
  2976. model.removeNodeset(validation_rsltnode);
  2977. model.makeNode(validation_node);
  2978. model.makeNode(validation_rsltnode);
  2979. model.makeValue(validation_node + "/knuhdomain" , knuhDomain);
  2980. model.makeValue(validation_node + "/pinstid" , pInstID);
  2981. model.makeValue(validation_node + "/approverole", approverole);
  2982. model.removeChild("TRRSD00225");
  2983. model.createChild("xforms:submission", "id:TRRSD00225;mediatype:application/x-www-form-urlencoded; method:post; ref:" + validation_node + "; resultref:" + validation_rsltnode + "; ");
  2984. if(submit("TRRSD00225")) {
  2985. var node = instance1.selectNodes(validation_rsltnode);
  2986. var result = new Object();
  2987. if(node != null && node.length > 0){
  2988. result.title = model.getValue(validation_rsltnode + "/title"); // 전자결재 제목
  2989. result.apprid = model.getValue(validation_rsltnode + "/apprid"); // 전자결재 문서PK
  2990. result.status = model.getValue(validation_rsltnode + "/status"); // 전자결재 상태코드
  2991. result.statusnm = model.getValue(validation_rsltnode + "/statusnm"); // 전자결재 상태명
  2992. result.pinstid = model.getValue(validation_rsltnode + "/pinstid"); // 전자결재 조건PK
  2993. result.knuhdomain = model.getValue(validation_rsltnode + "/knuhdomain"); // 전자결재 양식코드
  2994. result.approverole = model.getValue(validation_rsltnode + "/approverole"); // 전자결재 문서역활
  2995. result.drafter = model.getValue(validation_rsltnode + "/drafter"); // 전자결재 기안자사번
  2996. result.drafternm = model.getValue(validation_rsltnode + "/drafternm"); // 전자결재 기안자명
  2997. result.draftdate = model.getValue(validation_rsltnode + "/draftdate"); // 전자결재 기안시간
  2998. }
  2999. return result;
  3000. }
  3001. }
  3002. catch(Exception) {
  3003. alert("전자결재 정보 조회 중 오류가 발생했습니다.");
  3004. }
  3005. }
  3006. // 전자결재 신규생성 or 뷰어열기
  3007. function misfMakeElctSanct(workDomain, pmaprefcol, pmaprefvalue) {
  3008. // try
  3009. // {
  3010. var elctSanctServer = "http://192.168.100.12:7890";
  3011. var elctSanctGianPath = "/knuhMis/gian";
  3012. var monSize = getMonitorSize(1);
  3013. var features = "top=30,left=0,width=" + ( monSize[0] - 20 ) + ",height=" + (monSize[1] - 110 ) + ",toolbar=no,menubar=no,location=no,scrollbars=no,status=no,resizable=yes";
  3014. var knuhDomain = "";
  3015. var pInstID = "";
  3016. var approverole = "";
  3017. var parameter = "";
  3018. var knuhEmployee = "";
  3019. if(pmaprefcol != "" && pmaprefcol != null) {
  3020. pmaprefcol = pmaprefcol.split(",");
  3021. }
  3022. if(pmaprefvalue != "" && pmaprefvalue != null) {
  3023. pmaprefvalue = pmaprefvalue.split(",");
  3024. }
  3025. if(pmaprefcol != "" && pmaprefcol != null) {
  3026. for (var z = 0; z < pmaprefcol.length; z++) {
  3027. if(pmaprefcol[z].toUpperCase() == "knuhDomain".toUpperCase() ) knuhDomain = pmaprefvalue[z];
  3028. if(pmaprefcol[z].toUpperCase() == "instId".toUpperCase() ) pInstID = pmaprefvalue[z];
  3029. if(pmaprefcol[z].toUpperCase() == "approverole".toUpperCase() ) approverole = pmaprefvalue[z];
  3030. if(pmaprefcol[z].toUpperCase() == "knuhEmployee".toUpperCase()) knuhEmployee = pmaprefvalue[z];
  3031. if(pmaprefvalue[z] != "") {
  3032. parameter += (parameter.length==0?"?":"&") + pmaprefcol[z] + "=" + pmaprefvalue[z];
  3033. }
  3034. }
  3035. }
  3036. if(knuhEmployee == "") {
  3037. knuhEmployee = getUserInfo("userid");
  3038. parameter = "?knuhEmployee=" + knuhEmployee + parameter;
  3039. }
  3040. // 전자결재 정보 조회
  3041. var sanctInfo = misfGetElctSanct(knuhDomain, pInstID, approverole);
  3042. if(sanctInfo != null) {
  3043. if(sanctInfo.status == null || sanctInfo.status == "04") {
  3044. var url = elctSanctServer + elctSanctGianPath + "/" + workDomain + ".do" + parameter;
  3045. alert(sanctInfo.status + " : " + sanctInfo.statusnm + "\n전자결재 정보를 생성합니다.\n" + url);
  3046. htmlwindow.open(url, 'client', features).focus();
  3047. } else {
  3048. alert(sanctInfo.status + " : " + sanctInfo.statusnm + "\n전자결재 정보를 불러옵니다.\n" + url);
  3049. misfViewElctSanct(sanctInfo.apprid, knuhEmployee);
  3050. }
  3051. }
  3052. // }
  3053. // catch(Exception)
  3054. // {
  3055. // }
  3056. }
  3057. // 전자결재 뷰어
  3058. function misfViewElctSanct(apprid, knuhEmployee) {
  3059. try
  3060. {
  3061. var elctSanctServer = "http://192.168.100.12:7890";
  3062. var elctSanctViewPath = "/knuhMis/gw";
  3063. var monSize = getMonitorSize(1);
  3064. var features = "top=30,left=0,width=" + ( monSize[0] - 20 ) + ",height=" + (monSize[1] - 110 ) + ",toolbar=no,menubar=no,location=no,scrollbars=no,status=no,resizable=yes";
  3065. if(knuhEmployee == null || knuhEmployee == "") {
  3066. knuhEmployee = getUserInfo("userid");
  3067. }
  3068. var url = elctSanctServer + elctSanctViewPath + "/approvalSancView.do?knuhEmployee=" + knuhEmployee + "&approval=" + apprid + "&viewpage=sancDocView";
  3069. htmlwindow.open(url, 'client', features).focus();
  3070. }
  3071. catch(Exception) {
  3072. alert("전자결재 뷰어 실행 중 오류가 발생했습니다.");
  3073. }
  3074. }