MRF01000.js 122 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 서식생성기 ( SMMRF001000.xrw - JScript )
  4. * Version :
  5. * 개발자: 이경희
  6. * 최초작성일:
  7. - 2007
  8. * 수정이력:
  9. 2008-11-12
  10. - 산술식 설정 시 반올림, 반올림 자리수 설정 추가
  11. - SSU에 단위 설정 가능하도록 수정
  12. * 기타:
  13. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  14. */
  15. var g_pageInfo = new PAGEINFO();
  16. function fOnCreate(viewerobj)
  17. {
  18. return new PAGEINFO(viewerobj);
  19. }
  20. function fCreateView()
  21. {
  22. var viewname = "Form" + (++g_viewcnt);
  23. fAddViewArray(viewname);
  24. g_curviewname = viewname;
  25. }
  26. function setColor(type, popup)
  27. {
  28. if(popup == null)
  29. popup = false;
  30. //model.setValue("/root/temp/curstyletype", type);
  31. //if(popup)
  32. popupColorPicker(type);
  33. //canvas.window.javascript.applystyle(type, model.getValue("/root/temp/style/" + type));
  34. }
  35. function popupColorPicker(type)
  36. {
  37. var offsetx = event.screenX - event.clientX;
  38. var offsety = event.screenY - event.clientY;
  39. var x = parseInt(event.ptarget.attribute("left")) - 25;
  40. var y = parseInt(event.ptarget.attribute("height"));
  41. //window.load("palette.xrw", "modal", "palette", "left:" + x + "px; top:" + y + "px; width:176px; height:140px;caption:hidden;resize:false;");
  42. colorpicker.attribute("left") = x;
  43. colorpicker.attribute("top") = y;
  44. colorpicker.attribute("type") = type;
  45. document.controls("C0").attribute("background-color") = model.getValue("/root/temp/style/" + type);
  46. colorpicker.attribute("visibility") = "visible";
  47. model.setFocus("colorpicker");
  48. colorpicker.refresh();
  49. }
  50. function colorclicked()
  51. {
  52. var ctrl = document.controls(event.target);
  53. var color = ctrl.attribute("background-color");
  54. model.setValue("/root/temp/style/" + colorpicker.attribute("type"), color);
  55. canvas.window.javascript.applystyle(colorpicker.attribute("type"), color);
  56. colorpicker.attribute("visibility") = "hidden";
  57. }
  58. function fAppDegn(mode)
  59. {
  60. if(mode == null)
  61. mode = "design";
  62. //item정보 카피
  63. var pageInfo = fOnCreate(canvas);
  64. copyNode(canvas.model, model, pageInfo.forminfoRef, pageInfo.forminfoRef);
  65. if(mode == "xsltsave")
  66. canvas.window.javascript.fCreateDegnBySelfInfo(pageInfo, canvas, "record");
  67. else
  68. canvas.window.javascript.fCreateDegnBySelfInfo(pageInfo, canvas, mode);
  69. setTree(grd_pltte, grd_pltte.colref("degnitemlevlno"), grd_pltte.colref("degnitemcd"), false);
  70. //var strNewXrw = canvas.window.javascript.fGetFormXrw();
  71. //model.makeValue("/root/send/savedata/formmast/formxrw", strNewXrw, true);
  72. // XSLT 저장.
  73. if(mode == "xsltsave")
  74. {
  75. model.makeNode("/root/send");
  76. model.makeValue("/root/send/xsltdata", fSaveXSLT(), true);
  77. }
  78. /*
  79. model.makeNode("/root/send/cond");
  80. model.makeValue("/root/send/cond/formcd", );
  81. model.makeValue("/root/send/cond/reqstatus", "Y");
  82. model.makeValue("/root/send/xsltdata", fSaveXSLT(), true);
  83. */
  84. //model.setValue("root/send/xsltinfo/xslt/xsltfromdt_bk", xsltfromdt_bk);
  85. }
  86. function fCreateXSLT()
  87. {
  88. var pageInfo = fOnCreate(canvas);
  89. copyNode(canvas.model, model, pageInfo.forminfoRef, pageInfo.forminfoRef);
  90. var formcd = model.getValue(pageInfo.formmastRef + "/formcd");
  91. var curDate = getCurrentDate();
  92. model.removenode("/root/send2");
  93. model.makeNode("/root/send2");
  94. model.makeValue("/root/send/xsltinfo/xslt/result", false);
  95. model.makeValue("/root/send2/cond/formcd", formcd);
  96. model.makeValue("/root/send2/cond/reqstatus", "Y");
  97. model.removenode("/root/main/xsltinfo");
  98. model.makeNode("/root/main/xsltinfo");
  99. grd_xslt.refresh();
  100. var saveFlag = "";
  101. if(submit("TRMRI01401"))
  102. {
  103. var cnt = getNodesetCnt(model, "/root/main/xsltinfo/xsltlist");
  104. if(cnt > 0) {
  105. saveFlag = "u";
  106. }
  107. else
  108. saveFlag = "i";
  109. }
  110. model.makeValue("/root/main/xsltinfo/xsltlist/m", saveFlag);
  111. model.makeValue("/root/main/xsltinfo/xsltlist/formcd", formcd);
  112. model.makeValue("/root/main/xsltinfo/xsltlist/xsltfromdd", curDate);
  113. model.makeValue("/root/main/xsltinfo/xsltlist/xsltfromtm", getCurrentTime().substr(0,4) );
  114. model.makeValue("/root/main/xsltinfo/xsltlist/xslttodd", "99991231");
  115. model.makeValue("/root/main/xsltinfo/xsltlist/xslttotm", "0000");
  116. model.makeValue("/root/main/xsltinfo/xsltlist/xsltdata", fSaveXSLT(), true);
  117. grd_xslt.refresh();
  118. var savedata = "";
  119. if(saveFlag == "i")
  120. savedata = grd_xslt.getUpdateDataAll("i");
  121. else
  122. savedata = grd_xslt.getUpdateDataAll("u");
  123. return savedata;
  124. }
  125. function fAppDegn_old(mode)
  126. {
  127. if(mode == null)
  128. mode = "design";
  129. //item정보 카피
  130. var pageInfo = fOnCreate(canvas);
  131. copyNode(canvas.model, model, pageInfo.forminfoRef, pageInfo.forminfoRef);
  132. canvas.window.javascript.fCreateDegnBySelfInfo(pageInfo, canvas, mode);
  133. setTree(grd_pltte, grd_pltte.colref("degnitemlevlno"), grd_pltte.colref("degnitemcd"), false);
  134. }
  135. /**
  136. * @group :
  137. * @ver : 2008.07.24
  138. * @by : 이경희
  139. * @modify:
  140. * @---------------------------------------------------
  141. * @type : function
  142. * @access : public
  143. * @desc : 특수서식의 XSLT 를 반환한다.
  144. * @param :
  145. * @param :
  146. * @return :
  147. * @---------------------------------------------------
  148. */
  149. function fSaveXSLT()
  150. {
  151. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  152. // XSLT 저장
  153. var xslt = canvas.window.javascript.fCreateXSLTDegnBySelfInfo();
  154. return xslt;
  155. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  156. }
  157. function new_fAppDegn()
  158. {
  159. //item정보 카피
  160. open("SSMRF01200", 1, 0, 0);
  161. //var pwindow = getChildWindow("SSMRF01200");
  162. var pwindow = window.children.item("SSMRF01200");
  163. if(pwindow == null)
  164. return;
  165. var pageInfo = fOnCreate(pwindow);
  166. copyNode(pwindow.model, model, pageInfo.forminfoRef, pageInfo.forminfoRef);
  167. pwindow.javascript.fCreateDegnBySelfInfo(pageInfo, pwindow);
  168. }
  169. function fMakeParent()
  170. {
  171. }
  172. function fSelectParent()
  173. {
  174. var pageInfo = new PAGEINFO();
  175. // TASK번호: 33261 요청번호: 4548
  176. // 부모설정을 할 때 후보아이템의 목록에서 아이템 앞에 row번호를 붙여주세요
  177. var formdegnListNode = findNodeset(model, pageInfo.formdegnRef);
  178. var degnitemnm = "";
  179. var degnitemno = "";
  180. var degnrowno = "";
  181. for(var idx= 0; idx < grd_pltte.rows; idx++)
  182. {
  183. var formdegnNode = formdegnListNode.item(idx);
  184. if(formdegnNode != null)
  185. {
  186. degnitemnm = model.getValue(pageInfo.formdegnRef + "[" + (idx+1) + "]/degnitemnm");
  187. model.makeValue(pageInfo.formdegnRef + "[" + (idx+1) + "]/degnitemnonm", (idx+1) + " " + degnitemnm);
  188. }
  189. }
  190. // 현재 선택된 아이템은 제외함.
  191. var cond = "";
  192. for ( var i= 0; i < grd_pltte.selectedRows; i++)
  193. {
  194. //cond += "itemcd != '" + model.getValue("/root/main/formdegninfo/detail/pltte[" + grd_pltte.selectedrow(i) + "]/itemcd") + "'";
  195. cond += "degnitemno != '" + model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedrow(i) + "]/degnitemno") + "'";
  196. if(i < grd_pltte.selectedRows - 1)
  197. cond += " and ";
  198. }
  199. for(var i = 0; i < cmb_selUper.children.length; i++)
  200. {
  201. var pchoice = cmb_selUper.children.item(i);
  202. if(pchoice.elementName != "xforms:choices")
  203. continue;
  204. for(var j = 0; j < pchoice.children.length; j++)
  205. {
  206. var pitem = pchoice.children.item(j);
  207. if(pitem.elementName != "xforms:itemset")
  208. continue;
  209. pitem.attribute("nodeset") = pitem.attribute("nodeset") + "[" + cond + "]";
  210. //alert(pitem.attribute("nodeset"));
  211. }
  212. }
  213. cmb_selUper.refresh();
  214. grup_selUper.attribute("left") = "300px";
  215. grup_selUper.attribute("visibility") = "visible";
  216. }
  217. function fCancelChild()
  218. {
  219. var pageInfo = new PAGEINFO();
  220. var curRow = grd_pltte.row - grd_pltte.fixedRows + 1;
  221. var parentDegnItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[" + curRow + "]/degnitemno");
  222. var fstLevlNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/degnitemlevlno");
  223. fCancelChildSub(pageInfo, parentDegnItemNo, fstLevlNo);
  224. grd_pltte.refresh();
  225. setTree(grd_pltte, grd_pltte.colRef("degnitemlevlno"), grd_pltte.colRef("degnitemcd"), false);
  226. }
  227. function fCancelChildSub(pageInfo, parentDegnItemNo, fstLevlNo)
  228. {
  229. var parentDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/degnitemcd");
  230. var childList = findNodeset(model, grd_pltte.attribute("nodeset") + "[supdegnitemno = '" + parentDegnItemNo + "']");
  231. for(var i = 0; i < childList.length; i++)
  232. {
  233. var childNode = childList.item(i);
  234. var degnitemno = childNode.selectSingleNode("degnitemno").text;
  235. fCancelChildSub(pageInfo, degnitemno, fstLevlNo);
  236. var degnitemlevlno = parseInt(childNode.selectSingleNode("degnitemlevlno").text);
  237. var degnitemlevlcd = childNode.selectSingleNode("degnitemlevlcd").text;
  238. arrLevlcd = degnitemlevlcd.split(".");
  239. degnitemlevlcd = "";
  240. for(var j = 0; j < arrLevlcd.length - 1; j++)
  241. {
  242. if(j == parseInt(fstLevlNo) - 1)
  243. continue;
  244. degnitemlevlcd += arrLevlcd[j] + ".";
  245. }
  246. // 변경된 부모관계를 반영하여 degnitemlevlcd 를 생성
  247. degnitemlevlcd += arrLevlcd[arrLevlcd.length - 1];
  248. if(degnitemlevlno > 1)
  249. degnitemlevlno--;
  250. var grandDegnItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/supdegnitemno");
  251. var grandDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/supdegnitemcd");
  252. if(fstLevlNo == degnitemlevlno)
  253. {
  254. childNode.selectSingleNode("supdegnitemno").text = grandDegnItemNo;
  255. childNode.selectSingleNode("supdegnitemcd").text = grandDegnItemCd;
  256. }
  257. childNode.selectSingleNode("degnitemlevlcd").text = degnitemlevlcd;
  258. childNode.selectSingleNode("degnitemlevlno").text = degnitemlevlno;
  259. childNode.selectSingleNode("degnxval").text = (degnitemlevlno == 1) ? 0 : ((parseInt(degnitemlevlno)-1) * 15);//((parseInt(parentDegnItemNo)-1) + 1) * 15;
  260. }
  261. }
  262. function fCancelChildSub_old(pageInfo, parentDegnItemNo, fstLevlNo)
  263. {
  264. var parentDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/degnitemcd");
  265. var childList = findNodeset(model, grd_pltte.attribute("nodeset") + "[supdegnitemno = '" + parentDegnItemNo + "']");
  266. for(var i = 0; i < childList.length; i++)
  267. {
  268. var childNode = childList.item(i);
  269. var degnitemno = childNode.selectSingleNode("degnitemno").text;
  270. fCancelChildSub(pageInfo, degnitemno, fstLevlNo);
  271. var degnitemlevlno = parseInt(childNode.selectSingleNode("degnitemlevlno").text);
  272. var degnitemlevlcd = childNode.selectSingleNode("degnitemlevlcd").text;
  273. arrLevlcd = degnitemlevlcd.split(".");
  274. degnitemlevlcd = "";
  275. //var bRemove = false;
  276. for(var j = 0; j < arrLevlcd.length - 1; j++)
  277. {
  278. //alert(arrLevlcd[j] + ", " + parentDegnItemCd.substr(0, 7) + ", " + (j + 2) + ", " + degnitemlevlno);
  279. //if(arrLevlcd[j] == parentDegnItemCd.substr(0, 7) && j + 2 == degnitemlevlno)
  280. // continue;
  281. if(j == parseInt(fstLevlNo) - 1)
  282. continue;
  283. degnitemlevlcd += arrLevlcd[j] + ".";
  284. }
  285. degnitemlevlcd += arrLevlcd[arrLevlcd.length - 1];
  286. if(degnitemlevlno > 1)
  287. degnitemlevlno--;
  288. /*if(degnitemlevlno == 1)
  289. {
  290. childNode.selectSingleNode("supdegnitemno").text = "";
  291. childNode.selectSingleNode("supdegnitemcd").text = "";
  292. }
  293. else*/
  294. {
  295. var grandDegnItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/supdegnitemno");
  296. var grandDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno='" + parentDegnItemNo + "']/supdegnitemcd");
  297. if(fstLevlNo == degnitemlevlno)
  298. {
  299. childNode.selectSingleNode("supdegnitemno").text = grandDegnItemNo;
  300. childNode.selectSingleNode("supdegnitemcd").text = grandDegnItemCd;
  301. //childNode.selectSingleNode("supdegnitemno").text = parentDegnItemNo;
  302. //childNode.selectSingleNode("supdegnitemcd").text = parentDegnItemCd;
  303. }
  304. /*else
  305. {
  306. childNode.selectSingleNode("supdegnitemno").text = grandDegnItemNo;
  307. childNode.selectSingleNode("supdegnitemcd").text = grandDegnItemCd;
  308. }*/
  309. }
  310. childNode.selectSingleNode("degnitemlevlcd").text = degnitemlevlcd;
  311. childNode.selectSingleNode("degnitemlevlno").text = degnitemlevlno;
  312. }
  313. }
  314. /*
  315. * 2010.02.19, 주희경
  316. */
  317. function fMakeChild_20100318()
  318. {
  319. var pageInfo = new PAGEINFO();
  320. var bSelState = true;
  321. var arrSelRows = new Array();
  322. for ( var i= 0; i<grd_pltte.selectedRows; i++)
  323. {
  324. arrSelRows[i] = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedrow(i) + "]/degnitemno");
  325. if (bSelState)
  326. {
  327. if ( i != 0 && (grd_pltte.selectedrow(i-1) +1) != grd_pltte.selectedrow(i) )
  328. bSelState = false;
  329. }
  330. }
  331. var parentItemNo = model.getValue("/root/hidden/seluper");
  332. if ( grd_pltte.selectedRows > 1 && !bSelState) //연속되지 않은 멀티선택 시 일괄적으로 타겟아이템의 하위아이템(2레벨)으로 설정
  333. fRndmMultiMakeChild( parentItemNo, arrSelRows );
  334. else //싱글선택과 연속된 멀티선택 시 통째로 하위아이템(다단계)으로 설정
  335. fSeqSelectMakeChild( parentItemNo, grd_pltte.selectedrow(0), grd_pltte.selectedrow(grd_pltte.selectedRows-1) );
  336. for(var i = grd_pltte.FixedRows; i < grd_pltte.rows; i++)
  337. {
  338. model.setValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnrowno", i);
  339. }
  340. grd_pltte.refresh();
  341. setTree(grd_pltte, grd_pltte.colRef("degnitemlevlno"), grd_pltte.colRef("degnitemcd"), false);
  342. }
  343. /*
  344. * 싱글 선택 하거나 연속된 멀티 선택 시 노드 이동 함수
  345. * 2010.02.19, 주희경
  346. *
  347. * parentItemNo:부모아이템으로 지정한 아이템번호
  348. * startIdx : 멀티 선택 시 시작 idx
  349. * endIdx : 멀티 선택 시 끝 idx
  350. */
  351. function fSeqSelectMakeChild( parentItemNo, startIdx, endIdx )
  352. {
  353. var node = instance1.selectSingleNode("/root/main/forminfo");
  354. var targetRow = parseInt(grd_pltte.findRow( parentItemNo, 1, grd_pltte.colRef("degnitemno")));
  355. // var tarNode = instance1.selectSingleNode("/root/main/forminfo/formdegn["+ targetRow +"]"); //타겟 부모아이템의 노드 select
  356. var tarDegnitemlevlno = instance1.selectSingleNode("/root/main/forminfo/formdegn["+targetRow+"]/degnitemlevlno"); // 타겟 부모아이템의 계층번호
  357. var tarDegnitemlevlcd = instance1.selectSingleNode("/root/main/forminfo/formdegn["+targetRow+"]/degnitemlevlcd"); // 타겟 부모아이템의 계층코드
  358. var tarDegnitemno = instance1.selectSingleNode("/root/main/forminfo/formdegn["+targetRow+"]/degnitemno"); // 타겟 부모아이템의 아이템번호
  359. var tarDegnitemcd = instance1.selectSingleNode("/root/main/forminfo/formdegn["+targetRow+"]/degnitemcd"); // 타겟 부모아이템의 아이템코드
  360. var srcRow = grd_pltte.row;
  361. var srcNode = instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]"); //선택한 아이템과 하위아이템 노드셋 select
  362. var srcSupdegnitemcds= instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/supdegnitemcd");//선택한 아이템의 상위아이템코드
  363. var srcDegnitemlevlnos= instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/degnitemlevlno"); // "" 계층번호
  364. var srcDegnitemlevlcds= instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/degnitemlevlcd"); // "" 계층코드
  365. var srcSupdegnitemnos= instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/supdegnitemno"); // "" 상위아이템번호
  366. var srcDegnxvals= instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/degnxval"); // "" x좌표
  367. var srcDegnitemcds = instance1.selectNodes("/root/main/forminfo/formdegn[ position() >= "+startIdx+" and position() <= "+endIdx+" ]/degnitemcd"); // "" 아이템코드
  368. var srcLevlno = 1;
  369. if ( srcNode.length > 0 )
  370. srcLevlno = parseInt(srcDegnitemlevlnos.item(0).value);
  371. for(i=0; i<srcNode.length; i++)
  372. {
  373. if ( srcDegnitemlevlnos.item(i).value == srcLevlno ) //복사하려는 아이템들 중 최상위 노드인 경우
  374. {
  375. srcSupdegnitemnos.item(i).value = tarDegnitemno.value; //상위아이템번호 변경
  376. srcSupdegnitemcds.item(i).value = tarDegnitemcd.value; //상위아이템코드 변경
  377. srcDegnitemlevlnos.item(i).value = parseInt(tarDegnitemlevlno.value) + 1; //계층번호 변경
  378. srcDegnitemlevlcds.item(i).value = tarDegnitemlevlcd.value + "." + srcDegnitemcds.item(i).value.substr(0,7); //계층코드 변경
  379. }
  380. else
  381. {
  382. srcDegnitemlevlnos.item(i).value = parseInt(srcDegnitemlevlnos.item(0).value) + parseInt(srcDegnitemlevlnos.item(i).value) - srcLevlno; //계층번호 변경
  383. var pDegnitemlevlcd = model.getValue("/root/main/forminfo/formdegn[degnitemno='"+ srcSupdegnitemnos.item(i).value +"']/degnitemlevlcd");
  384. srcDegnitemlevlcds.item(i).value = pDegnitemlevlcd + "." + srcDegnitemcds.item(i).value.substr(0,7); //계층코드 변경
  385. }
  386. srcDegnxvals.item(i).value = (parseInt(srcDegnitemlevlnos.item(i).value) - 1) * 15; //X좌표 변경
  387. }
  388. var parentlevlno = parseInt(model.getValue("/root/main/forminfo/formdegn["+targetRow+"]/degnitemlevlno"));
  389. //부모노드의 가장 하위 자식 아이템 위치 검색
  390. for ( var i= targetRow+1; i<grd_pltte.rows; i++)
  391. {
  392. var chldlevlno = parseInt(model.getValue("/root/main/forminfo/formdegn["+i+"]/degnitemlevlno"));
  393. if ( chldlevlno <= parentlevlno)
  394. break;
  395. }
  396. var tarNode = instance1.selectSingleNode("/root/main/forminfo/formdegn["+ (i-1) +"]"); //이동 할 타겟 아이템의 노드 select
  397. for(i=srcNode.length-1; i>=0; i--)
  398. {
  399. node.insertAfter(srcNode.item(i), tarNode); //변경된 데이터 셋으로 노드이동
  400. }
  401. grd_pltte.rebuild();
  402. }
  403. /*
  404. * 랜덤하게 멀티 선택 시 노드 이동 함수
  405. * 2010.02.19, 주희경
  406. *
  407. * parentItemNo:부모아이템으로 지정한 아이템번호
  408. * arrSelRows : 멀티 선택 한 아이템들의 아이템 번호
  409. */
  410. function fRndmMultiMakeChild( parentItemNo, arrSelRows )
  411. {
  412. var parentDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemcd");
  413. var parentDegnItemLevlCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemlevlcd");
  414. var parentDegnItemLevlNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemlevlno");
  415. var supdegnitemno = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/supdegnitemno");
  416. var parentRow = grd_pltte.findRow(parentItemNo, 1, grd_pltte.colRef("degnitemno"));
  417. var nextRow = -1;
  418. var nextItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemlevlno <= " + parentDegnItemLevlNo + " and position() > " + parentRow + "]/degnitemno");
  419. if(nextItemNo == '')
  420. nextRow = grd_pltte.rows;
  421. else
  422. nextRow = grd_pltte.findRow(nextItemNo, parentRow + 1, grd_pltte.colRef("degnitemno"));
  423. var insRow;
  424. for ( var i= 0; i < arrSelRows.length; i++)
  425. {
  426. var selRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  427. if(i == 0)
  428. {
  429. if(nextRow == -1)
  430. insRow = grd_pltte.rows - 1;
  431. else
  432. {
  433. if(parentRow < selRow)
  434. insRow = nextRow - 1 + i;
  435. else
  436. insRow = nextRow - 1;
  437. }
  438. }
  439. grd_pltte.insertRow(insRow, "after", true);
  440. grd_pltte.rebuild();
  441. insRow++;
  442. selRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  443. var degnitemcd = grd_pltte.textmatrix(selRow, grd_pltte.colRef("degnitemcd"));
  444. var degnitemkind = grd_pltte.textmatrix(selRow, grd_pltte.colRef("degnitemkind"));
  445. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno", parseInt(parentDegnItemLevlNo) + 1);
  446. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/supdegnitemno", parentItemNo);
  447. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/supdegnitemcd", parentDegnItemCd);
  448. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlcd", parentDegnItemLevlCd + "." + degnitemcd.substr(0, 7));
  449. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnxval", parseInt(parentDegnItemLevlNo) * 15); // (parseInt(parentDegnItemLevlNo) + 1) * 15);
  450. var cnt = getNodesetCnt(model, grd_pltte.attribute("nodeset") + "[supdegnitemno = '" + parentItemNo + "' and itemuseflag = 'F0']");
  451. if(degnitemkind == "FRM")
  452. {
  453. if(cnt >= 1)
  454. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/itemuseflag", "F1");
  455. else
  456. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/itemuseflag", "F0");
  457. }
  458. fMoveRow(grd_pltte, insRow, selRow);
  459. model.removenode(grd_pltte.nodeset + "[" + selRow + "]");
  460. grd_pltte.rebuild();
  461. insRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  462. }
  463. }
  464. function fMakeChild()
  465. {
  466. var pageInfo = new PAGEINFO();
  467. var parentItemNo = model.getValue("/root/hidden/seluper");
  468. var parentDegnItemCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemcd");
  469. var parentDegnItemLevlCd = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemlevlcd");
  470. var parentDegnItemLevlNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/degnitemlevlno");
  471. var supdegnitemno = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemno = '" + parentItemNo + "']/supdegnitemno");
  472. var parentRow = grd_pltte.findRow(parentItemNo, 1, grd_pltte.colRef("degnitemno"));
  473. var nextRow = -1;
  474. var nextItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemlevlno <= " + parentDegnItemLevlNo + " and position() > " + parentRow + "]/degnitemno");
  475. if(nextItemNo == '')
  476. nextRow = grd_pltte.rows;
  477. else
  478. nextRow = grd_pltte.findRow(nextItemNo, parentRow + 1, grd_pltte.colRef("degnitemno"));
  479. var arrSelRows = new Array();
  480. for ( var i= 0; i<grd_pltte.selectedRows; i++)
  481. {
  482. arrSelRows[i] = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedrow(i) + "]/degnitemno");
  483. }
  484. var insRow;
  485. for ( var i= 0; i < arrSelRows.length; i++)
  486. {
  487. var selRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  488. if(i == 0)
  489. {
  490. if(nextRow == -1)
  491. insRow = grd_pltte.rows - 1;
  492. else
  493. {
  494. if(parentRow < selRow)
  495. insRow = nextRow - 1 + i;
  496. else
  497. insRow = nextRow - 1;
  498. }
  499. }
  500. //grd_pltte.insertItem(insRow, "after");
  501. grd_pltte.insertRow(insRow, "after", true);
  502. grd_pltte.rebuild();
  503. insRow++;
  504. selRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  505. var degnitemcd = grd_pltte.textmatrix(selRow, grd_pltte.colRef("degnitemcd"));
  506. var degnitemkind = grd_pltte.textmatrix(selRow, grd_pltte.colRef("degnitemkind"));
  507. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno", parseInt(parentDegnItemLevlNo) + 1);
  508. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/supdegnitemno", parentItemNo);
  509. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/supdegnitemcd", parentDegnItemCd);
  510. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlcd", parentDegnItemLevlCd + "." + degnitemcd.substr(0, 7));
  511. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnxval", parseInt(parentDegnItemLevlNo) * 15); // (parseInt(parentDegnItemLevlNo) + 1) * 15);
  512. var cnt = getNodesetCnt(model, grd_pltte.attribute("nodeset") + "[supdegnitemno = '" + parentItemNo + "' and itemuseflag = 'F0']");
  513. if(degnitemkind == "FRM")
  514. {
  515. if(cnt >= 1)
  516. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/itemuseflag", "F1");
  517. else
  518. model.makeValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/itemuseflag", "F0");
  519. }
  520. fMoveRow(grd_pltte, insRow, selRow);
  521. model.removenode(grd_pltte.nodeset + "[" + selRow + "]");
  522. grd_pltte.rebuild();
  523. insRow = grd_pltte.findRow(arrSelRows[i], 1, grd_pltte.colRef("degnitemno"));
  524. }
  525. for(var i = grd_pltte.FixedRows; i < grd_pltte.rows; i++)
  526. {
  527. //var seq = parseInt(model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/seq"));
  528. //var degnrowno = parseInt(model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnrowno"));
  529. //var gab = i - degnrowno;
  530. //model.setValue(grd_pltte.attribute("nodeset") + "[" + i + "]/seq", i);
  531. model.setValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnrowno", i);
  532. }
  533. grd_pltte.refresh();
  534. setTree(grd_pltte, grd_pltte.colRef("degnitemlevlno"), grd_pltte.colRef("degnitemcd"), false);
  535. }
  536. function fMoveRow(gridid, destRow, srcRow)
  537. {
  538. var nodeset = gridid.attribute("nodeset");
  539. var srcPath = nodeset + "[" + srcRow + "]";
  540. var destPath = nodeset + "[" + destRow + "]";
  541. copyNode(model, model, "/root/hidden/movetmp", destPath);
  542. copyNode(model, model, destPath, srcPath);
  543. copyNode(model, model, srcPath, "/root/hidden/movetmp");
  544. model.removenode("/root/hidden/movetmp");
  545. }
  546. function old_fMoveItemUp(grdObj, collapsed)
  547. {
  548. var selRow = grdObj.row;
  549. if(selRow <= grdObj.fixedRows)
  550. return;
  551. var degnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  552. var supdegnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/supdegnitemno");
  553. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  554. var nextRow = -1;
  555. var nextItemNo = model.getValue(grdObj.attribute("nodeset") + "[degnitemlevlno <= " + degnitemlevlno + " and position() > " + selRow + "]/degnitemno");
  556. if(nextItemNo == '')
  557. nextRow = grdObj.rows;
  558. else
  559. nextRow = grdObj.findRow(nextItemNo, selRow + 1, grdObj.colRef("degnitemno"));
  560. //alert("nextRow : " + nextRow);
  561. //1. 현재 선택된 row의 그룹을 찾는다.(degnitemlevlcd를 이용)
  562. var nodeList = instance1.selectNodes(grdObj.attribute("nodeset") + "[position() >= " + selRow + " and position() < " + nextRow + "]");
  563. //alert("length : " + nodeList.length);
  564. //2. 상위 아이템의 depth를 비교해서 seq를 구한다. (degnitemlevlno를 이용.. 자신과 같을때까지 찾는다.)
  565. for(var i = selRow - 1; i > 0; i --)
  566. {
  567. if(parseInt(degnitemlevlno) > parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno")))
  568. break;
  569. for(var j = 0; j < nodeList.length; j++)
  570. {
  571. var seq = grdObj.findRow(nodeList.item(j).selectSingleNode("degnitemno").nodeValue,
  572. grdObj.fixedRows, grdObj.colRef("degnitemno"));
  573. model.setValue(grdObj.attribute("nodeset") + "[" + seq + "]/degnrowno",
  574. parseInt(nodeList.item(j).selectSingleNode("degnrowno").nodeTypedValue) - 1);
  575. }
  576. model.setValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno",
  577. parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno")) + parseInt(nodeList.length));
  578. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  579. break;
  580. }
  581. grdObj.refresh();
  582. grdObj.outlinebar=0;
  583. grdObj.colsort(grdObj.colRef("degnrowno")) = "asc";
  584. //grdObj.colsort(grdObj.colRef("degnxval")) = "asc";
  585. //grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnxval"), grdObj.rows - 1, grdObj.colRef("degnxval")) = "asc";
  586. grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnrowno"), grdObj.rows - 1, grdObj.colRef("degnrowno")) = "asc";
  587. grdObj.gridToInstance();
  588. var topRow = grdObj.topRow;
  589. setTree(grdObj, grdObj.colRef("degnitemlevlno"), grdObj.colRef("degnitemcd"), collapsed);
  590. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  591. grdObj.row = seq;
  592. grdObj.topRow = topRow;
  593. }
  594. function fMoveItemUp(grdObj, collapsed)
  595. {
  596. var selCnt = grdObj.selectedRows;
  597. var baseitemlevlno = 0;
  598. for(var i = 0; i < selCnt; i++)
  599. {
  600. var selRow = grdObj.selectedRow(i);
  601. if(i == 0)
  602. baseitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  603. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  604. if(baseitemlevlno != degnitemlevlno)
  605. return;
  606. }
  607. var selRow = grdObj.row;
  608. if(selRow <= grdObj.fixedRows)
  609. return;
  610. var degnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  611. var supdegnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/supdegnitemno");
  612. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  613. var nextRow = -1;
  614. var nextItemNo = model.getValue(grdObj.attribute("nodeset") + "[degnitemlevlno <= " + degnitemlevlno + " and position() > " + selRow + "]/degnitemno");
  615. if(nextItemNo == '')
  616. nextRow = grdObj.rows;
  617. else
  618. nextRow = grdObj.findRow(nextItemNo, selRow + 1, grdObj.colRef("degnitemno"));
  619. var nodeList = instance1.selectNodes(grdObj.attribute("nodeset") + "[position() >= " + selRow + " and position() < " + nextRow + "]");
  620. for(var i = selRow - 1; i > 0; i --)
  621. {
  622. if(parseInt(degnitemlevlno) > parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno")))
  623. break;
  624. for(var j = 0; j < nodeList.length; j++)
  625. {
  626. var seq = grdObj.findRow(nodeList.item(j).selectSingleNode("degnitemno").nodeValue,
  627. grdObj.fixedRows, grdObj.colRef("degnitemno"));
  628. model.setValue(grdObj.attribute("nodeset") + "[" + seq + "]/degnrowno",
  629. parseInt(nodeList.item(j).selectSingleNode("degnrowno").nodeTypedValue) - 1);
  630. }
  631. model.setValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno",
  632. parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno")) + parseInt(nodeList.length));
  633. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  634. break;
  635. }
  636. grdObj.refresh();
  637. grdObj.outlinebar=0;
  638. grdObj.colsort(grdObj.colRef("degnrowno")) = "asc";
  639. //grdObj.colsort(grdObj.colRef("degnxval")) = "asc";
  640. //grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnxval"), grdObj.rows - 1, grdObj.colRef("degnxval")) = "asc";
  641. grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnrowno"), grdObj.rows - 1, grdObj.colRef("degnrowno")) = "asc";
  642. grdObj.gridToInstance();
  643. var topRow = grdObj.topRow;
  644. setTree(grdObj, grdObj.colRef("degnitemlevlno"), grdObj.colRef("degnitemcd"), collapsed);
  645. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  646. grdObj.row = seq;
  647. grdObj.topRow = topRow;
  648. }
  649. function old_fMoveItemDown(grdObj, collapsed)
  650. {
  651. var selRow = grdObj.row;
  652. if(selRow == grdObj.rows - 1)
  653. return;
  654. var degnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  655. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  656. var topRow = grdObj.topRow;
  657. for(var i = selRow + 1; i < grdObj.rows; i ++)
  658. {
  659. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  660. {
  661. grdObj.row = i;
  662. moveItemUp(grdObj, collapsed);
  663. break;
  664. }
  665. }
  666. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  667. grdObj.row = seq;
  668. grdObj.topRow = topRow;
  669. }
  670. function fMoveItemDown(grdObj, collapsed)
  671. {
  672. var selRow = grdObj.row;
  673. if(selRow == grdObj.rows - 1)
  674. return;
  675. var degnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  676. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  677. var topRow = grdObj.topRow;
  678. for(var i = selRow + 1; i < grdObj.rows; i ++)
  679. {
  680. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  681. {
  682. grdObj.row = i;
  683. moveItemUp(grdObj, collapsed);
  684. break;
  685. }
  686. }
  687. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  688. grdObj.row = seq;
  689. grdObj.topRow = topRow;
  690. }
  691. function old_fMoveUp()
  692. {
  693. var selRow = grd_pltte.row;
  694. if(selRow <= grd_pltte.fixedRows)
  695. return;
  696. var degnitemno = model.getValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  697. var supdegnitemno = model.getValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/supdegnitemno");
  698. var degnitemlevlno = model.getValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  699. var nextRow = -1;
  700. var nextItemNo = model.getValue(grd_pltte.attribute("nodeset") + "[degnitemlevlno <= " + degnitemlevlno + " and position() > " + selRow + "]/degnitemno");
  701. if(nextItemNo == '')
  702. nextRow = grd_pltte.rows;
  703. else
  704. nextRow = grd_pltte.findRow(nextItemNo, selRow + 1, grd_pltte.colRef("degnitemno"));
  705. //alert("nextRow : " + nextRow);
  706. //1. 현재 선택된 row의 그룹을 찾는다.(degnitemlevlcd를 이용)
  707. var nodeList = instance1.selectNodes(grd_pltte.attribute("nodeset") + "[position() >= " + selRow + " and position() < " + nextRow + "]");
  708. //alert("length : " + nodeList.length);
  709. //2. 상위 아이템의 depth를 비교해서 seq를 구한다. (degnitemlevlno를 이용.. 자신과 같을때까지 찾는다.)
  710. for(var i = selRow - 1; i > 0; i --)
  711. {
  712. if(parseInt(degnitemlevlno) > parseInt(model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnitemlevlno")))
  713. break;
  714. for(var j = 0; j < nodeList.length; j++)
  715. {
  716. var seq = grd_pltte.findRow(nodeList.item(j).selectSingleNode("degnitemno").nodeValue,
  717. grd_pltte.fixedRows, grd_pltte.colRef("degnitemno"));
  718. model.setValue(grd_pltte.attribute("nodeset") + "[" + seq + "]/degnrowno",
  719. parseInt(nodeList.item(j).selectSingleNode("degnrowno").nodeTypedValue) - 1);
  720. }
  721. model.setValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnrowno",
  722. parseInt(model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnrowno")) + parseInt(nodeList.length));
  723. if(degnitemlevlno == model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  724. break;
  725. }
  726. grd_pltte.refresh();
  727. grd_pltte.outlinebar=0;
  728. grd_pltte.colsort(grd_pltte.colRef("degnrowno")) = "asc";
  729. //grd_pltte.colsort(grd_pltte.colRef("degnxval")) = "asc";
  730. //grd_pltte.sort(grd_pltte.fixedRows, grd_pltte.colRef("degnxval"), grd_pltte.rows - 1, grd_pltte.colRef("degnxval")) = "asc";
  731. grd_pltte.sort(grd_pltte.fixedRows, grd_pltte.colRef("degnrowno"), grd_pltte.rows - 1, grd_pltte.colRef("degnrowno")) = "asc";
  732. grd_pltte. gridToInstance();
  733. setTree(grd_pltte, grd_pltte.colRef("degnitemlevlno"), grd_pltte.colRef("degnitemcd"), false);
  734. var seq = grd_pltte.findRow(degnitemno, grd_pltte.fixedRows, grd_pltte.colRef("degnitemno"));
  735. grd_pltte.row = seq;
  736. }
  737. function old_fMoveDown()
  738. {
  739. var selRow = grd_pltte.row;
  740. if(selRow == grd_pltte.rows - 1)
  741. return;
  742. var degnitemno = model.getValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  743. var degnitemlevlno = model.getValue(grd_pltte.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  744. for(var i = selRow + 1; i < grd_pltte.rows; i ++)
  745. {
  746. if(degnitemlevlno == model.getValue(grd_pltte.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  747. {
  748. grd_pltte.row = i;
  749. fMoveUp();
  750. break;
  751. }
  752. }
  753. var seq = grd_pltte.findRow(degnitemno, grd_pltte.fixedRows, grd_pltte.colRef("degnitemno"));
  754. grd_pltte.row = seq;
  755. }
  756. function fDelDegnItem()
  757. {
  758. var arrRows = new Array();
  759. for(var i = 0; i < grd_pltte.selectedRows; i++)
  760. {
  761. arrRows[i] = grd_pltte.selectedRow(i);
  762. }
  763. for(var j = arrRows.length - 1; j >= 0; j--)
  764. {
  765. grd_pltte.deleteRow(arrRows[j]);
  766. }
  767. setTree(grd_pltte, grd_pltte.colRef("degnitemlevlno"), grd_pltte.colRef("degnitemcd"), false);
  768. }
  769. function fGoIn()
  770. {
  771. var pageInfo = new PAGEINFO(canvas);
  772. for(var i = 0; i < grd_pltte.selectedRows; i++)
  773. {
  774. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnitemno");
  775. var curPos = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnxval");
  776. var degnxval = parseInt(curPos) + pageInfo.indentwidth;
  777. model.setValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnxval", degnxval);
  778. var ctrl = canvas.window.document.controls("grp_" + degnitemno);
  779. if(ctrl != null)
  780. {
  781. ctrl.attribute("left") = pageInfo.leftmargin + degnxval;
  782. ctrl.refresh();
  783. }
  784. }
  785. grd_pltte.refresh();
  786. }
  787. function fGoOut()
  788. {
  789. var pageInfo = new PAGEINFO(canvas);
  790. for(var i = 0; i < grd_pltte.selectedRows; i++)
  791. {
  792. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnitemno");
  793. var curPos = model.getValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnxval");
  794. var degnxval = parseInt(curPos) - pageInfo.indentwidth < 0 ? 0 : parseInt(curPos) - pageInfo.indentwidth;
  795. model.setValue(pageInfo.formdegnRef + "[" + grd_pltte.selectedRow(i) + "]/degnxval", parseInt(curPos) - pageInfo.indentwidth < 0 ? 0 : parseInt(curPos) - pageInfo.indentwidth);
  796. var ctrl = canvas.window.document.controls("grp_" + degnitemno);
  797. if(ctrl != null)
  798. {
  799. ctrl.attribute("left") = pageInfo.leftmargin + degnxval;
  800. ctrl.refresh();
  801. }
  802. }
  803. grd_pltte.refresh();
  804. }
  805. function fShowCntl()
  806. {
  807. /*var ref = grd_pltte.attribute("nodeset");
  808. var degnitemno = model.getValue(ref + "[" + grd_pltte.row + "]/degnitemno");
  809. var degnitemkind = model.getvalue(ref + "[" + grd_pltte.row + "]/degnitemkind");
  810. var degncntrviewflag = model.getValue(ref + "[" + grd_pltte.row + "]/degncntrviewflag");
  811. var ctrl = canvas.window.document.controls(degnitemkind + "_" + degnitemseqno);
  812. if(ctrl != null)
  813. {
  814. if(degncntrviewflag == "A")
  815. ctrl.attribute("visibility") = "hidden";
  816. else
  817. ctrl.attribute("visibility") = "visible";
  818. ctrl.refresh();
  819. }*/
  820. }
  821. function fShowLbl()
  822. {
  823. /*var ref = grd_pltte.attribute("nodeset");
  824. var degnitemseqno = model.getValue(ref + "[" + grd_pltte.row + "]/degnitemseqno");
  825. var degnlblviewyn = model.getValue(ref + "[" + grd_pltte.row + "]/degnlblviewyn");
  826. var ctrl = canvas.window.document.controls("LBL_" + degnitemseqno);
  827. if(ctrl != null)
  828. {
  829. if(degnlblviewyn == "N")
  830. ctrl.attribute("visibility") = "hidden";
  831. else
  832. ctrl.attribute("visibility") = "visible";
  833. ctrl.refresh();
  834. }*/
  835. }
  836. function fSelectVallist()
  837. {
  838. var ref = grd_pltte.attribute("nodeset");
  839. var degnitemkind = model.getValue(ref + "[" + grd_pltte.row + "]/degnitemkind");
  840. var itemattrval = model.getValue(ref + "[" + grd_pltte.row + "]/itemattrval");
  841. if(degnitemkind != "RDO" && degnitemkind != "CMB" && degnitemkind != "CHK" && degnitemkind != "GRD" && degnitemkind != "GSU")
  842. return;
  843. if(degnitemkind == "GSU")
  844. {
  845. if(isSearchString(itemattrval, "axtype:COMBO") != true)
  846. {
  847. return;
  848. }
  849. }
  850. if(degnitemkind == "GRD")
  851. {
  852. modal("SPMRF01700_누적선택", 1, 100, 100);
  853. /*var grupcd = getParameter("grupcd");
  854. var grupnm = getParameter("grupnm");
  855. model.setValue(ref + "[" + grd_pltte.row + "]/valgrupcd", grupcd);
  856. model.setValue(ref + "[" + grd_pltte.row + "]/valgrupnm", grupnm);
  857. grd_pltte.refresh();*/
  858. }
  859. else
  860. {
  861. //데이타갱신
  862. modal("SPMRF01600_밸류리스트선택", 1, 100, 100);
  863. var grupcd = getParameter("grupcd");
  864. var grupnm = getParameter("grupnm");
  865. if(grupcd != "")
  866. {
  867. model.setValue(ref + "[" + grd_pltte.row + "]/valgrupcd", grupcd);
  868. model.setValue(ref + "[" + grd_pltte.row + "]/valgrupnm", grupnm);
  869. grd_pltte.refresh();
  870. setParameter("grupcd", "");
  871. setParameter("grupnm", "");
  872. }
  873. }
  874. }
  875. function fSelectUnit()
  876. {
  877. var ref = grd_pltte.attribute("nodeset");
  878. var degnitemkind = model.getValue(ref + "[" + grd_pltte.row + "]/degnitemkind");
  879. var degnattrval = model.getValue(ref + "[" + grd_pltte.row + "]/degnattrval");
  880. if(degnitemkind == "STX" || degnitemkind == "SSU" || degnitemkind == "CMB")
  881. {
  882. if(degnitemkind == "CMB")
  883. {
  884. var itemattrval = model.getValue(ref + "[" + grd_pltte.row + "]/itemattrval");
  885. if(isSearchString(itemattrval, "extn") == true)
  886. {
  887. var ret = messageBox("단위를 설정하려면 확장컨트롤을 삭제하여야 합니다.", "Q001");
  888. if(ret == "6")
  889. {
  890. fDelExtnStx();
  891. }
  892. else
  893. {
  894. return;
  895. }
  896. }
  897. }
  898. modal("SPMRF01500_단위선택",1, 100, 100);
  899. //데이터갱신
  900. var ref = grd_pltte.attribute("nodeset");
  901. var unitcd = getParameter("unitcd");
  902. var unitnm = getParameter("unitnm");
  903. model.setValue(ref + "[" + grd_pltte.row + "]/unitcd", unitcd);
  904. model.setValue(ref + "[" + grd_pltte.row + "]/unitnm", unitnm);
  905. grd_pltte.refresh();
  906. }
  907. //화면갱신
  908. /*var degnitemno = model.getValue(ref + "[" + grd_pltte.row + "]/degnitemno");
  909. var ctrlid = "UNIT_" + degnitemno;
  910. var ctrl = canvas.window.document.controls(ctrlid);
  911. if(ctrl == null)
  912. return;
  913. ctrl.attribute("text") = unitnm;
  914. ctrl.refresh();*/
  915. }
  916. //서식 디자인 저장 함수
  917. function fSaveFormDegn()
  918. {
  919. var pageInfo = new PAGEINFO();
  920. var formcd = model.getValue(pageInfo.formmastRef + "/formcd");
  921. var formprogflag = model.getValue(pageInfo.formmastRef + "/formprogflag");
  922. var formprognm = model.getValue(pageInfo.formmastRef + "/formprognm");
  923. var formdeptcd = model.getValue(pageInfo.formmastRef + "/formdeptcd");
  924. var formuserid = model.getValue(pageInfo.formmastRef + "/formuserid");
  925. var formkind = model.getValue(pageInfo.formmastRef + "/formkind");
  926. //서식진단명, 서식수술명, 서식주호소는 저장을 막는다.
  927. if(formcd == "0000000899" || formcd == "0000000900" || formcd == "0000000901" )
  928. return;
  929. grd_pltte.clearStatus();
  930. for(var i = grd_pltte.fixedRows; i < grd_pltte.rows; i++)
  931. {
  932. grd_pltte.rowstatus(i) = 1;
  933. }
  934. copyNode(model, model, "/root/send/savedata/formmast", pageInfo.formmastRef);
  935. //grd_pltte.attribute("rowsep") = "$|$";
  936. //grd_pltte.attribute("colsep") = "$^$";
  937. model.makeValue("/root/send/savedata/formdegn", grd_pltte.getUpdateData());
  938. var status = "2";
  939. if(getParameter("opentype") == "save")
  940. status = "3";
  941. setParameter("opentype", "");
  942. // XRW 저장
  943. model.makeNode("/root/send/savedata/formmast/formxrw");
  944. var strNewXrw = "";
  945. var strXSLT = "";
  946. //1. 화면에 그린다. (최대서식이 아닌경우에만 화면에 그린다.)
  947. //if(formcd != "0000000059" && formcd != "0000000009" && formcd != "0000000070")
  948. /*
  949. if(formdeptcd != "-" || formuserid != "DEPT_BASE")
  950. {
  951. }
  952. */
  953. if( !(formdeptcd == "-" && formuserid == "DEPT_BASE") // 병원 최대
  954. && !(formdeptcd != "-" && formuserid == "DEPT_BASE")) // 과 최대
  955. {
  956. if(formprogflag == "PROF" || formprogflag == "MAIN")
  957. {
  958. var ret = messageBox("해당 서식은 개발팀과 협의하에 저장해야 하는 서식입니다.\n\n저장", "S001");
  959. if(ret != 6)
  960. return ;
  961. }
  962. if(formprogflag != "PROG")
  963. {
  964. // 2. xrw 저장
  965. fAppDegn("record");
  966. strNewXrw = canvas.window.javascript.fGetFormXrw();
  967. // 3. xslt 저장
  968. strXSLT = fCreateXSLT();
  969. model.makeValue("/root/send2/xslt/xsltlist", strXSLT);
  970. }
  971. }
  972. // 4. 마스터 Data 생성
  973. model.makeValue("/root/send/savedata/formmast/formxrw", strNewXrw, true);
  974. model.makeValue("/root/send/savedata/formmast/formstatus", status);
  975. model.makeValue("/root/send/savedata/formmast/formdegnfromdt", model.getValue("/root/hidden/appdt/fromdt1")+ getCurrentTime());
  976. model.makeValue("/root/send/savedata/formmast/formdegntodt", model.getValue("/root/hidden/appdt/todt1")+ "000000");
  977. model.makeValue("/root/send/savedata/formmast/readonlyyn", model.getValue("/root/main/forminfo/readonlylist/readonlyyn"));
  978. // 5. 저장
  979. if(submit("TXMRF02001"))
  980. {
  981. model.setValue(pageInfo.formmastRef + "/formdegnseq", model.getValue("root/temp/settingform/savedforminfo/formdegnseq"));
  982. // 6. 최대서식, PROG가 아닌경우에만 XSLT를 저장한다.
  983. //if(formcd != "0000000059" && formcd != "0000000009" && formcd != "0000000070" && formprogflag != "PROG")
  984. //if(formdeptcd != "-" && formuserid != "DEPT_BASE" && formprogflag != "PROG")
  985. if( !(formdeptcd == "-" && formuserid == "DEPT_BASE") // 병원 최대
  986. && !(formdeptcd != "-" && formuserid == "DEPT_BASE") // 과 최대
  987. && formprogflag != "PROG")
  988. {
  989. if(submit("TXMRI01402"))
  990. {
  991. model.makeValue("/root/send/xsltinfo/xslt/result", true);
  992. model.refresh();
  993. }
  994. }
  995. }
  996. }
  997. function fSaveFormDegn_old()
  998. {
  999. var pageInfo = new PAGEINFO();
  1000. var formcd = model.getValue(pageInfo.formmastRef + "/formcd");
  1001. var formprogflag = model.getValue(pageInfo.formmastRef + "/formprogflag");
  1002. var formprognm = model.getValue(pageInfo.formmastRef + "/formprognm");
  1003. var formkind = model.getValue(pageInfo.formmastRef + "/formkind");
  1004. //서식진단명, 서식수술명, 서식주호소는 저장을 막는다.
  1005. if(formcd == "0000000899" || formcd == "0000000900" || formcd == "0000000901" )
  1006. return;
  1007. grd_pltte.clearStatus();
  1008. for(var i = grd_pltte.fixedRows; i < grd_pltte.rows; i++)
  1009. {
  1010. grd_pltte.rowstatus(i) = 1;
  1011. }
  1012. copyNode(model, model, "/root/send/savedata/formmast", pageInfo.formmastRef);
  1013. //grd_pltte.attribute("rowsep") = "$|$";
  1014. //grd_pltte.attribute("colsep") = "$^$";
  1015. model.makeValue("/root/send/savedata/formdegn", grd_pltte.getUpdateData());
  1016. var status = "2";
  1017. if(getParameter("opentype") == "save")
  1018. status = "3";
  1019. setParameter("opentype", "");
  1020. // XRW 저장
  1021. model.makeNode("/root/send/savedata/formmast/formxrw");
  1022. //신체검진, 과거력, 계통문진 병원최대 서식은 xrw 저장하지 않는다.. (너무 오래걸림)
  1023. /*if(formcd != "0000000059" &&
  1024. formcd != "0000000009" &&
  1025. formcd != "0000000070")*/
  1026. //신체검진, 과거력, 계통문진 병원최대 서식은 xrw 저장하지 않는다.. (너무 오래걸림)
  1027. //program 서식들(공통서식, 컨설트 등등)은 xrw를 저장하지 않는다..
  1028. if(//formcd != "0000000005" &&
  1029. formcd != "0000000059" &&
  1030. formcd != "0000000009" &&
  1031. formcd != "0000000070" &&
  1032. formprogflag != "PROG")
  1033. {
  1034. fAppDegn("record");
  1035. var strNewXrw = canvas.window.javascript.fGetFormXrw();
  1036. model.makeValue("/root/send/savedata/formmast/formxrw", strNewXrw, true);
  1037. model.makeValue("/root/send/savedata/formmast/formstatus", status);
  1038. model.makeValue("/root/send/savedata/formmast/formdegnfromdt", model.getValue("/root/hidden/appdt/fromdt1")+ getCurrentTime());
  1039. model.makeValue("/root/send/savedata/formmast/formdegntodt", model.getValue("/root/hidden/appdt/todt1")+ "000000");
  1040. if(submit("TXMRF02001"))
  1041. {
  1042. model.setValue(pageInfo.formmastRef + "/formdegnseq", model.getValue("root/temp/settingform/savedforminfo/formdegnseq"));
  1043. if(submit("TXMRI01402"))
  1044. {
  1045. model.makeValue("/root/send/xsltinfo/xslt/result", true);
  1046. model.refresh();
  1047. }
  1048. /*
  1049. else
  1050. {
  1051. alert("서식의 xslt 내용이 올바르게 저장되지 못하였습니다. 다시 저장해주십시오");
  1052. }
  1053. */
  1054. }
  1055. }
  1056. }
  1057. function fGetHead(str)
  1058. {
  1059. var strXrw = str;
  1060. var strFront;
  1061. var regexp1 = new RegExp('(</instance>)', 'igm');
  1062. if (regexp1.test(strXrw) == '1')
  1063. {
  1064. strFront = RegExp.leftContext + "</instance>\r\n";
  1065. strFront += fGetBindInfo(strXrw);
  1066. strFront += "\r\n</model>\r\n</xhtml:head>\r\n<xhtml:body pagewidth=\"595\" pageheight=\"700\" style=\"background-repeat:repeat;\">\r\n";
  1067. strFront += "<import id=\"canvas_main\" instancetype=\"merge\" src=\"SSMRF01200.xrw\" style=\"left:0px; top:0px; width:595px; height:700px; \"/>";
  1068. return strFront;
  1069. }
  1070. else
  1071. {
  1072. return "";
  1073. }
  1074. }
  1075. function fGetBody(str)
  1076. {
  1077. var strXrw = str;
  1078. var regexp = new RegExp('(</import>)', 'igm');
  1079. if (regexp.test(strXrw) == '1')
  1080. {
  1081. strBody = RegExp.rightContext + "\r\n";
  1082. return strBody;
  1083. }
  1084. else
  1085. {
  1086. return "";
  1087. }
  1088. }
  1089. function fGetBindInfo(str)
  1090. {
  1091. var strXrw = str;
  1092. var regexp = new RegExp('(<bind [^<>]+>)', 'igm');
  1093. if (regexp.test(strXrw) == true)
  1094. {
  1095. var bindinfo = strXrw.match(regexp);
  1096. var strRtn = "";
  1097. for(var idx =0; idx < bindinfo.length; idx++)
  1098. {
  1099. strRtn += bindinfo[idx] + "\r\n";
  1100. }
  1101. return strRtn;
  1102. }
  1103. else
  1104. {
  1105. return "";
  1106. }
  1107. }
  1108. function fRemoveGroupTag(str)
  1109. {
  1110. var strXrw = str;
  1111. var grpexpSt = new RegExp('(<group[^<>]+>)', 'igm');
  1112. var grpexpEd = new RegExp('(</group>)', 'igm');
  1113. if (grpexpSt.test(strXrw) == true)
  1114. {
  1115. strXrw = strXrw.replace(grpexpSt, '');
  1116. }
  1117. if (grpexpEd.test(strXrw) == true)
  1118. {
  1119. strXrw = strXrw.replace(grpexpEd, '');
  1120. }
  1121. return strXrw;
  1122. }
  1123. function fSaveFormXrw()
  1124. {
  1125. var pageInfo = new PAGEINFO();
  1126. grd_pltte.clearStatus();
  1127. for(var i = grd_pltte.fixedRows; i < grd_pltte.rows; i++)
  1128. {
  1129. grd_pltte.rowstatus(i) = 1;
  1130. }
  1131. copyNode(model, model, "/root/send/savedata/formmast", pageInfo.formmastRef);
  1132. //model.makeValue("/root/send/savedata/formdegn", grd_pltte.getUpdateData());
  1133. var status = "4";
  1134. //if(getParameter("opentype") == "save")
  1135. // status = "3";
  1136. //setParameter("opentype", "");
  1137. model.makeValue("/root/send/savedata/formmast/formstatus", status);
  1138. fAppDegn("record");
  1139. //canvas.model.removeNode("/root/main");
  1140. //canvas.model.removeNode("/root/hidden");
  1141. //canvas.model.removeNode("/root/temp");
  1142. canvas.model.removeNodeset(pageInfo.imgelistRef);
  1143. var strXrw = canvas.window.document.save(null, false);
  1144. //var strXrw = canvas.window.document.save(null, true);
  1145. model.makeNode("/root/send/savedata/formmast/formxrw");
  1146. model.setValue("/root/send/savedata/formmast/formxrw", strXrw, true);
  1147. window.clipBoardData = strXrw;
  1148. //model.makeValue("/root/send/savedata/formmast/formxrw", strXrw);
  1149. //model.makeValue("/root/send/savedata/formmast/formdegnfromdt", model.getValue("/root/hidden/appdt/fromdt1")+ getCurrentTime());
  1150. //model.makeValue("/root/send/savedata/formmast/formdegntodt", model.getValue("/root/hidden/appdt/todt1")+ "000000");
  1151. if(submit("TXMRF02002"))
  1152. {
  1153. model.setValue(pageInfo.formmastRef + "/formdegnseq", model.getValue("root/main2/savedforminfo/formdegnseq"));
  1154. }
  1155. }
  1156. function fSaveFormData()
  1157. {
  1158. var pageInfo = new PAGEINFO();
  1159. var status = "4";
  1160. copyNode(model, model, "/root/send/savedata/formmast", pageInfo.formmastRef);
  1161. model.makeValue("/root/send/savedata/formmast/formstatus", status);
  1162. fAppDegn("record");
  1163. copyNode(model, canvas.model, "/root/temp/formdata/root/main2", "/root/main");
  1164. var strData = instance1.selectSingleNode("/root/temp/formdata/root").xml;
  1165. model.makeNode("/root/send/savedata/formmast/formxrw");
  1166. model.setValue("/root/send/savedata/formmast/formxrw", strData, true);
  1167. model.setValue("/root/temp/formdata/root/main2", "");
  1168. if(submit("TXMRF02002"))
  1169. {
  1170. model.setValue(pageInfo.formmastRef + "/formdegnseq", model.getValue("root/main2/savedforminfo/formdegnseq"));
  1171. }
  1172. }
  1173. //저장 버튼 클릭 시 서식 유효 기간 설정 박스 띄워줌.
  1174. function fSetAppDt()
  1175. {
  1176. if ( !fChkReadonlyyn() )
  1177. {
  1178. alert("공유해제 체크 후 저장 해 주세요");
  1179. return;
  1180. }
  1181. //공유해제로 저장 하기 전 현재 서식이 최신 서식인지 degnseq를 체크한다, 2010.04.08, 주희경
  1182. if ( fChkDegnSeq() )
  1183. {
  1184. var formfromdt = model.getValue("/root/main/forminfo/formmast/formfromdt");
  1185. var currentDateTime = getCurrentDate() + getCurrentTime();
  1186. if( (parseInt(formfromdt) - parseInt(currentDateTime)) > 0)
  1187. {
  1188. // 미래서식
  1189. model.setValue("/root/hidden/appdt/fromdt1", formfromdt.substr(0, 8));
  1190. }
  1191. else
  1192. {
  1193. model.setValue("/root/hidden/appdt/fromdt1", getCurrentDate());
  1194. }
  1195. //model.setValue("/root/hidden/appdt/fromdt1", getCurrentDate());
  1196. model.setValue("/root/hidden/appdt/fromdt2", "00");
  1197. model.setValue("/root/hidden/appdt/todt1", "99991231");
  1198. model.setValue("/root/hidden/appdt/todt2", "24");
  1199. grup_setAppdd.refresh();
  1200. grup_setAppdd.attribute("left") = "300px";
  1201. grup_setAppdd.attribute("visibility") = "visible";
  1202. }
  1203. }
  1204. function fChkReadonlyyn()
  1205. {
  1206. var readonlyyn = model.getValue("/root/main/forminfo/readonlylist/readonlyyn");
  1207. if ( readonlyyn == "Y")
  1208. {
  1209. return true;
  1210. }
  1211. else
  1212. {
  1213. return false;
  1214. }
  1215. }
  1216. ////////////////////
  1217. //공유해제로 저장 하기 전 현재 서식이 최신 서식인지 degnseq를 체크한다, 2010.04.08, 주희경
  1218. function fChkDegnSeq()
  1219. {
  1220. var formcd = model.getValue("/root/main/forminfo/formmast/formcd");
  1221. model.makeValue("/root/send/req/formcd",formcd);
  1222. submit("TRMRF02006");
  1223. var new_formdegnseq = model.getValue("/root/temp/forminfo/readonlylist/formdegnseq");
  1224. var old_formdegnseq = model.getValue("/root/main/forminfo/formmast/formdegnseq");
  1225. var new_readonlyuserid = model.getValue("/root/temp/forminfo/readonlylist/readonlyuserid");
  1226. var old_readonlyuserid = getUserInfo("userid");
  1227. var readonlyyn = model.getValue("/root/main/forminfo/readonlylist/readonlyyn");
  1228. // alert("new_formdegnseq:"+new_formdegnseq+" || old_formdegnseq:"+old_formdegnseq);
  1229. //현재 조회되어 있는 formdegnseq와 cmc db의 해당 서식의 formdegnseq가 다른 경우 서식 다시 조회 하게 한다.
  1230. if ( new_formdegnseq != "0" && new_formdegnseq != "" && new_formdegnseq != old_formdegnseq )
  1231. {
  1232. var result = window.alert("변경 된 디자인이 존재합니다. 변경된 디자인을 다시 조회 하시겠습니까?", "디자인 변경 알림", 4 | 32 | 256);
  1233. if(result == 7) //no
  1234. {
  1235. model.setValue("/root/main/forminfo/readonlylist/readonlyyn", "N");
  1236. chk_readonlyyn.refresh();
  1237. return false;
  1238. }
  1239. else if ( result == 6 ) //yes
  1240. {
  1241. setParameter("SPMRF1300_formnm", model.getValue("/root/main/forminfo/formmast/formnm"));
  1242. btn_formlist.dispatch("onclick");
  1243. return false;
  1244. }
  1245. }
  1246. else if ( readonlyyn == "Y" && new_readonlyuserid != "-" && new_readonlyuserid != old_readonlyuserid )
  1247. {
  1248. //alert("new_readonlyuserid:"+new_readonlyuserid+" || old_readonlyuserid : "+old_readonlyuserid);
  1249. var readonlystatdt = model.getValue("/root/temp/forminfo/readonlylist/readonlystatdt");
  1250. var blokingdt = readonlystatdt.substr(0,4) + "/";
  1251. blokingdt = blokingdt + readonlystatdt.substr(4,2) + "/";
  1252. blokingdt = blokingdt + readonlystatdt.substr(6,2) + "/ ";
  1253. blokingdt = blokingdt + readonlystatdt.substr(8,2) + ":";
  1254. blokingdt = blokingdt + readonlystatdt.substr(10,2) + ":";
  1255. blokingdt = blokingdt + readonlystatdt.substr(12,2);
  1256. var readonlyusernm = model.getValue("/root/temp/forminfo/readonlylist/readonlyusernm");
  1257. alert("이미 ["+new_readonlyuserid+","+readonlyusernm+"]님이 ["+blokingdt+"]부터 작업 중입니다.");
  1258. model.setValue("/root/main/forminfo/readonlylist/readonlyyn", "N");
  1259. chk_readonlyyn.refresh();
  1260. return false;
  1261. }
  1262. return true;
  1263. }
  1264. function fArrangeVallist()
  1265. {
  1266. var nodeset = grd_pltte.attribute("nodeset");
  1267. var selRow = grd_pltte.row;
  1268. var itemtype = model.getValue(nodeset + "[" + selRow + "]/degnitemkind");
  1269. if(itemtype != "RDO" && itemtype != "CHK")
  1270. {
  1271. alert("정렬이 가능한 컨트롤이 아닙니다.");
  1272. return;
  1273. }
  1274. model.setValue("/root/hidden/arrange/cols", getStyleValue(model.getValue(nodeset + "[" + selRow + "]/degnattrval"), "cols"));
  1275. grup_arrVallist.refresh();
  1276. grup_arrVallist.attribute("left") = "300px";
  1277. grup_arrVallist.attribute("visibility") = "visible";
  1278. }
  1279. function fSetArrangeVallist()
  1280. {
  1281. var nodeset = grd_pltte.attribute("nodeset");
  1282. var selRow = grd_pltte.row;
  1283. var attrVal = model.getValue(nodeset + "[" + selRow + "]/degnattrval");
  1284. attrVal = setStyleValue(attrVal, "cols", model.getValue("/root/hidden/arrange/cols"));
  1285. model.makeValue(nodeset + "[" + selRow + "]/degnattrval", attrVal);
  1286. var degnitemseqno = model.getValue(nodeset + "[" + selRow + "]/degnitemno");
  1287. var degnitemtype = model.getValue(nodeset + "[" + selRow + "]/degnitemkind");
  1288. grd_pltte.refresh();
  1289. }
  1290. function fSetDegnItemStyle(ctrl, attrName, attrVal, bEmpty)
  1291. {
  1292. if(bEmpty == null)
  1293. bEmpty = false;
  1294. if(!bEmpty && attrVal == "")
  1295. return;
  1296. var nodeset = grd_pltte.attribute("nodeset");
  1297. var degnitemno = ctrl.attribute("degnitemno");
  1298. if(degnitemno == "")
  1299. return;
  1300. var rowno = grd_pltte.findRow(degnitemno, grd_pltte.fixedRows, grd_pltte.colRef("degnitemno"));
  1301. if(rowno == -1)
  1302. return;
  1303. /*if(ctrl.elementName != "xforms:group")
  1304. if(ctrl.elementName == "xforms:caption")
  1305. attrName = "label." + attrName;
  1306. else if(ctrl.attribute("extn") == "true")
  1307. attrName = "extn." + attrName;
  1308. else
  1309. attrName = "ctrl." + attrName; */
  1310. if(ctrl.attribute("ctrltype") != "grup")
  1311. attrName = ctrl.attribute("ctrltype") + "." + attrName;
  1312. var styleVal = model.getValue(nodeset + "[" + rowno + "]/degnattrval");
  1313. styleVal = fSetDegnStyleValue(styleVal, attrName, attrVal);
  1314. model.makeValue(nodeset + "[" + rowno + "]/degnattrval", styleVal);
  1315. /*grd_pltte.row = rowno;
  1316. if(grd_pltte.iscollapsed(rowno))
  1317. grd_pltte.iscollapsed(rowno) = false;*/
  1318. return;
  1319. grd_pltte.refresh();
  1320. }
  1321. /**
  1322. * @desc : 컨트롤의 스타일 값 셋팅
  1323. * @id :
  1324. * @event :
  1325. * @return :
  1326. * @authur : 이경희
  1327. */
  1328. function fSetDegnStyleValue(attrs, attrNm, attrVal)
  1329. {
  1330. var arrAttrs = attrs.split(";");
  1331. attrs = "";
  1332. var bFind = false;
  1333. for(var i = 0; i < arrAttrs.length; i++)
  1334. {
  1335. var arrAttr = "";
  1336. if(isSearchString(arrAttrs[i], "ctrl.format"))
  1337. {
  1338. var tempArrs = arrAttrs[i].setReplaceWord("format:", "format▩");
  1339. arrAttr = tempArrs.split("▩");
  1340. }
  1341. else
  1342. arrAttr = arrAttrs[i].split(":");
  1343. if(arrAttr.length < 2)
  1344. continue;
  1345. if(arrAttr[0] == attrNm)
  1346. {
  1347. arrAttr[1] = attrVal;
  1348. bFind = true;
  1349. if(attrVal == "")
  1350. continue;
  1351. }
  1352. attrs += arrAttr[0] + ":" + arrAttr[1] + ";";
  1353. }
  1354. if(!bFind)
  1355. attrs += attrNm + ":" + attrVal + ";";
  1356. return attrs;
  1357. }
  1358. function fCtrlSize()
  1359. {
  1360. var nodeset = grd_pltte.attribute("nodeset");
  1361. var selRow = grd_pltte.row;
  1362. model.setValue("/root/hidden/size/width", getStyleValue(model.getValue(nodeset + "[" + selRow + "]/degnattrval"), "width"));
  1363. model.setValue("/root/hidden/size/height", getStyleValue(model.getValue(nodeset + "[" + selRow + "]/degnattrval"), "height"));
  1364. grup_size.refresh();
  1365. grup_size.attribute("left") = "300px";
  1366. grup_size.attribute("visibility") = "visible";
  1367. }
  1368. function fSetCtrlSize()
  1369. {
  1370. var nodeset = grd_pltte.attribute("nodeset");
  1371. var selRow = grd_pltte.row;
  1372. var styleVal = model.getValue(nodeset + "[" + selRow + "]/degnattrval");
  1373. styleVal = setStyleValue(styleVal, "width", model.getValue("/root/hidden/size/width"));
  1374. styleVal = setStyleValue(styleVal, "height", model.getValue("/root/hidden/size/height"));
  1375. model.makeValue(nodeset + "[" + selRow + "]/degnattrval", styleVal);
  1376. var degnitemseqno = model.getValue(nodeset + "[" + selRow + "]/degnitemno");
  1377. var degnitemtype = model.getValue(nodeset + "[" + selRow + "]/degnitemkind");
  1378. grd_pltte.refresh();
  1379. }
  1380. function fArrangeSameRow()
  1381. {
  1382. var nodeset = grd_pltte.attribute("nodeset");
  1383. var selRow = grd_pltte.row;
  1384. if(selRow - 1 == 0)
  1385. return;
  1386. var supRow = selRow - 1;
  1387. model.setValue(nodeset + "[" + selRow + "]/degnrowno", model.getValue(nodeset + "[" + supRow + "]/degnrowno"));
  1388. grd_pltte.refresh();
  1389. }
  1390. function fSetLabel()
  1391. {
  1392. grup_lbl.attribute("left") = "150px";
  1393. grup_lbl.attribute("visibility") = "visible";
  1394. }
  1395. function fSetDrawType(drawType)
  1396. {
  1397. var degnitemno = model.getXPathValue("max(" + grd_pltte.attribute("nodeset") + "/degnitemno)");
  1398. if(degnitemno == "NaN")
  1399. degnitemno = 1;
  1400. else
  1401. degnitemno = parseInt(degnitemno) + 1;
  1402. canvas.window.javascript.setDrawType(drawType, degnitemno);
  1403. }
  1404. function fAddLabel()
  1405. {
  1406. var pageInfo = new PAGEINFO();
  1407. var formcd = model.getValue(pageInfo.formmastRef + "formcd");
  1408. var formdegnseq = model.getValue(pageInfo.formmastRef + "formdegnseq");
  1409. var degnitemno = model.getXPathValue("max(" + grd_pltte.attribute("nodeset") + "/degnitemno)");
  1410. if(degnitemno == "NaN")
  1411. degnitemno = 1;
  1412. else
  1413. degnitemno = parseInt(degnitemno) + 1;
  1414. var degnrowno = model.getXPathValue("max(" + grd_pltte.attribute("nodeset") + "/degnrowno)");
  1415. if(degnrowno == "NaN")
  1416. degnrowno = 1;
  1417. else
  1418. degnrowno = parseInt(degnrowno) + 1;
  1419. var destPath = grd_pltte.attribute("nodeset") + "[" + (getNodesetCnt(model, grd_pltte.attribute("nodeset")) + 1) + "]";
  1420. model.makeValue(destPath + "/formdegnseq" , formdegnseq );
  1421. model.makeValue(destPath + "/degnitemno" , degnitemno );
  1422. model.makeValue(destPath + "/degnitemkind" , "LBL" );
  1423. model.makeValue(destPath + "/degnitemcd" , "Z000000001" );
  1424. model.makeValue(destPath + "/termcd" , "" );
  1425. model.makeValue(destPath + "/degnitemnm" , "label" );
  1426. model.makeValue(destPath + "/supdegnitemno" , "" );
  1427. model.makeValue(destPath + "/supdegnitemcd" , "" );
  1428. model.makeValue(destPath + "/degnitemlevlno" , "1" );
  1429. model.makeValue(destPath + "/degnitemlevlcd" , "Z000000001" );
  1430. model.makeValue(destPath + "/valgrupcd" , "" );
  1431. model.makeValue(destPath + "/valgrupnm" , "" );
  1432. model.makeValue(destPath + "/unitcd" , "" );
  1433. model.makeValue(destPath + "/unitnm" , "" );
  1434. model.makeValue(destPath + "/degnitemdefltval", model.getValue("/root/hidden/lblnm"));
  1435. model.makeValue(destPath + "/degncntrviewflag", "C" );
  1436. model.makeValue(destPath + "/userdegnyn" , "N" );
  1437. model.makeValue(destPath + "/degnxval" , "0" );
  1438. model.makeValue(destPath + "/degnyval" , "0" );
  1439. model.makeValue(destPath + "/degnrowno" , degnrowno );
  1440. model.makeValue(destPath + "/essndegnyn" , "N" );
  1441. model.makeValue(destPath + "/essnrecyn" , "N" );
  1442. model.makeValue(destPath + "/degnattrval" , "" );
  1443. model.makeValue(destPath + "/itemattrval" , "" );
  1444. grd_pltte.rebuild();
  1445. setTree(grd_pltte, grd_pltte.colref("degnitemlevlno"), grd_pltte.colref("degnitemcd"), true);
  1446. }
  1447. function fSetItemUseFlag()
  1448. {
  1449. var pageInfo = new PAGEINFO();
  1450. var selRow = grd_pltte.row - grd_pltte.fixedRows + 1;
  1451. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + selRow + "]/degnitemno");
  1452. var itemuseflag = model.getValue(pageInfo.formdegnRef + "[" + selRow + "]/itemuseflag");
  1453. var supdegnitemno = model.getValue(pageInfo.formdegnRef + "[" + selRow + "]/supdegnitemno");
  1454. var cnt = getNodesetCnt(model, pageInfo.formdegnRef + "[supdegnitemno = '" + supdegnitemno + "' and itemuseflag = 'F0']");
  1455. if(cnt == 0)
  1456. {
  1457. alert("부분서식중 기본서식이 반드시 1개 존재해야 합니다.");
  1458. model.setValue(pageInfo.formdegnRef + "[" + selRow + "]/itemuseflag", "F0");
  1459. }
  1460. else if(cnt > 1)
  1461. {
  1462. var nodeList = instance1.selectNodes(pageInfo.formdegnRef + "[supdegnitemno = '" + supdegnitemno + "' and itemuseflag = 'F0' and position() != " + selRow + "]");
  1463. for(var i = 0; i < nodeList.length; i++)
  1464. {
  1465. var node = nodeList.item(i);
  1466. var itemuseflagNode = node.selectSingleNode("itemuseflag");
  1467. itemuseflagNode.text = "F1";
  1468. }
  1469. }
  1470. grd_pltte.refresh();
  1471. }
  1472. function fSelectItem()
  1473. {
  1474. var selRow = grd_pltte.row - grd_pltte.fixedRows + 1;
  1475. var degnitemno = model.getValue(g_pageInfo.formdegnRef + "[" + selRow + "]/degnitemno");
  1476. //grd_pltte.topRow = selRow;
  1477. canvas.window.javascript.fSelectItem(degnitemno);
  1478. }
  1479. function fValidateDegnitemkind()
  1480. {
  1481. var selRow = grd_pltte.row - grd_pltte.fixedRows + 1;
  1482. var degnitemno = model.getValue(g_pageInfo.formdegnRef + "[" + selRow + "]/degnitemno");
  1483. var supdegnitemno = model.getValue(g_pageInfo.formdegnRef + "[" + selRow + "]/supdegnitemno");
  1484. var degnitemkind = model.getValue(g_pageInfo.formdegnRef + "[" + selRow + "]/degnitemkind");
  1485. var supdegnitemkind = model.getValue(g_pageInfo.formdegnRef + "[degnitemno='" + supdegnitemno + "']/degnitemkind");
  1486. if(supdegnitemkind == "SEL" && degnitemkind != "SSR" && degnitemkind != "SSC")
  1487. {
  1488. alert("'선택형' 컨트롤하위에는 '선택형서브' 형태의 컨트롤만 정의가능합니다");
  1489. }
  1490. }
  1491. function fLocalSaveForm()
  1492. {
  1493. var pageInfo = new PAGEINFO();
  1494. if(model.getValue(pageInfo.formmastRef + "/formnm") == "")
  1495. {
  1496. alert("저장할 서식이 없습니다.");
  1497. return;
  1498. }
  1499. var fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + "_" +getCurrentDate() + ".xml";
  1500. var filePath = window.fileDialog("save", "", "", fileNm, "xml", "XML 문서(*.xml)|*.xml|All Files (*.*)|*.*");
  1501. if (filePath == "")
  1502. return;
  1503. var insXml = instance1.selectSingleNode("/root").xml;
  1504. insXml = "<?xml version='1.0' encoding='utf-8'?>\r\n" + insXml;
  1505. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1506. //var objFile = fso.CreateTextFile(filePath, true, true);
  1507. var objFile = fso.CreateTextFile(filePath, true);
  1508. objFile.write(insXml);
  1509. objFile.Close();
  1510. }
  1511. function fLocalSaveUniCodeForm()
  1512. {
  1513. var pageInfo = new PAGEINFO();
  1514. if(model.getValue(pageInfo.formmastRef + "/formnm") == "")
  1515. {
  1516. alert("저장할 서식이 없습니다.");
  1517. return;
  1518. }
  1519. //var fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + "(" + model.getValue(pageInfo.formmastRef + "/formcd") + ")" + "_" +getCurrentDate() + ".xml";
  1520. var fileNm = "";
  1521. var formextnnm = model.getValue(pageInfo.formmastRef + "/formextnnm");
  1522. if(formextnnm != "" && formextnnm != "-")
  1523. fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + formextnnm + "_(" + model.getValue(pageInfo.formmastRef + "/formcd") + ")" + "_" +getCurrentDate() + ".xml";
  1524. else
  1525. fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + "(" + model.getValue(pageInfo.formmastRef + "/formcd") + ")" + "_" +getCurrentDate() + ".xml";
  1526. fileNm = fileNm.setReplaceWord("/", "_");
  1527. fileNm = fileNm.setReplaceWord("\"", "_");
  1528. fileNm = fileNm.setReplaceWord("?", "_");
  1529. fileNm = fileNm.setReplaceWord(":", "_");
  1530. var filePath = window.fileDialog("save", "", "", fileNm, "xml", "XML 문서(*.xml)|*.xml|All Files (*.*)|*.*");
  1531. if (filePath == "")
  1532. return;
  1533. var insXml = instance1.selectSingleNode("/root").xml;
  1534. insXml = "<?xml version='1.0' encoding='utf-16'?>\r\n" + insXml;
  1535. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1536. var objFile = fso.CreateTextFile(filePath, true, true);
  1537. objFile.write(insXml);
  1538. objFile.Close();
  1539. }
  1540. function fLocalSaveXSLTFile()
  1541. {
  1542. var pageInfo = new PAGEINFO();
  1543. if(model.getValue(pageInfo.formmastRef + "/formnm") == "")
  1544. {
  1545. alert("저장할 서식이 없습니다.");
  1546. return;
  1547. }
  1548. var fileNm = "";
  1549. var formextnnm = model.getValue(pageInfo.formmastRef + "/formextnnm");
  1550. if(formextnnm != "" && formextnnm != "-")
  1551. fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + formextnnm + "_(" + model.getValue(pageInfo.formmastRef + "/formcd") + ")" + "_" +getCurrentDate() + ".xsl";
  1552. else
  1553. fileNm = model.getValue(pageInfo.formmastRef + "/formnm") + "(" + model.getValue(pageInfo.formmastRef + "/formcd") + ")" + "_" +getCurrentDate() + ".xsl";
  1554. fileNm = fileNm.setReplaceWord("/", "_");
  1555. fileNm = fileNm.setReplaceWord("\"", "_");
  1556. fileNm = fileNm.setReplaceWord("?", "_");
  1557. fileNm = fileNm.setReplaceWord(":", "_");
  1558. var filePath = window.fileDialog("save", "", "", fileNm, "xsl", "XSLT 문서(*.xsl)|*.xsl|All Files (*.*)|*.*");
  1559. if (filePath == "")
  1560. return;
  1561. var xsltdata = model.getValue("/root/send/xsltdata");
  1562. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1563. var objFile = fso.CreateTextFile(filePath, true, true);
  1564. objFile.write(xsltdata);
  1565. objFile.Close();
  1566. }
  1567. function fLocalLoadForm()
  1568. {
  1569. var pageInfo = new PAGEINFO();
  1570. var filePath = window.fileDialog("open", "", false, "", "xml", "XML 문서(*.xml)|*.xml|All Files (*.*)|*.*");
  1571. if (filePath == "")
  1572. return;
  1573. var ForReading = 1, ForWriting = 2;
  1574. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1575. var objFile = fso.OpenTextFile(filePath, ForReading);
  1576. var cntsFile = objFile.ReadAll();
  1577. objFile.Close();
  1578. if(isSearchString(cntsFile, "utf-8"))
  1579. {
  1580. cntsFile.setReplaceWord("utf-8", "utf-16");
  1581. //alert(cntsFile);
  1582. var tmpFile = fso.CreateTextFile(filePath, true, true);
  1583. tmpFile.write(cntsFile);
  1584. tmpFile.Close();
  1585. //alert("1");
  1586. }
  1587. else if(!isSearchString(cntsFile, "utf-16"))
  1588. {
  1589. cntsFile = "<?xml version='1.0' encoding='utf-16'?>" + cntsFile;
  1590. //alert(cntsFile);
  1591. var tmpFile = fso.CreateTextFile(filePath, true, true);
  1592. tmpFile.write(cntsFile);
  1593. tmpFile.Close();
  1594. //alert("2");
  1595. }
  1596. //instance1.loadXML(cntsFile);
  1597. instance1.load(filePath);
  1598. if(!submit("TRMRF01001"))
  1599. {
  1600. model.removeNodeset(pageInfo.forminfoRef);
  1601. model.refresh();
  1602. alert("파일 로딩중 오류가 발생하였습니다.\r\n 다시 시도하시기 바랍니다.");
  1603. return;
  1604. }
  1605. //grd_pltte.rebuild();
  1606. model.refresh();
  1607. setTree(grd_pltte, grd_pltte.colref("degnitemlevlno"), grd_pltte.colref("degnitemcd"), true);
  1608. }
  1609. function fLocalLoadUniCodeForm()
  1610. {
  1611. var pageInfo = new PAGEINFO();
  1612. var filePath = window.fileDialog("open", "", false, "", "xml", "XML 문서(*.xml)|*.xml|All Files (*.*)|*.*");
  1613. if (filePath == "")
  1614. return;
  1615. /*var ForReading = 1, ForWriting = 2;
  1616. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1617. var objFile = fso.OpenTextFile(filePath, ForReading);
  1618. var cntsFile = objFile.ReadAll();
  1619. instance1.loadXML(cntsFile);
  1620. objFile.Close();*/
  1621. instance1.load(filePath);
  1622. model.makeValue("/root/send/req/formcd", model.getValue("/root/main/forminfo/formmast/formcd"));
  1623. model.makeValue("/root/send/req/srchcond", "loadtempdegn");
  1624. var tmpRsltRef = "/root/hidden/forminfo/formdegn";
  1625. model.removeNode(tmpRsltRef);
  1626. model.makeNode(tmpRsltRef);
  1627. copyNodeset(tmpRsltRef, pageInfo.formdegnRef, "replace", model, model);
  1628. if(!submit("TRMRF01003"))
  1629. {
  1630. model.removeNodeset(pageInfo.forminfoRef);
  1631. model.refresh();
  1632. alert("파일 로딩중 오류가 발생하였습니다.\r\n 다시 시도하시기 바랍니다.");
  1633. return;
  1634. }
  1635. // 읽기전용인지 확인
  1636. var readonlystatdt = model.getValue("/root/main/forminfo/readonlylist/readonlystatdt");
  1637. var readonlyuserid = model.getValue("/root/main/forminfo/readonlylist/readonlyuserid");
  1638. var userid = getUserInfo("userid");
  1639. if ( readonlystatdt != "-" && readonlyuserid == userid ) //읽기전용등록일시정보가 있고 동일아이디인 경우
  1640. {
  1641. model.setValue("/root/main/forminfo/readonlylist/readonlyyn", "Y");
  1642. }
  1643. defaulttab.disabled = false;
  1644. copyNodeset(pageInfo.formdegnRef, tmpRsltRef, "replace", model, model);
  1645. model.removeNode("/root/hidden/forminfo");
  1646. model.refresh();
  1647. }
  1648. function fLocalLoadUniCodeForm_old()
  1649. {
  1650. var pageInfo = new PAGEINFO();
  1651. var filePath = window.fileDialog("open", "", false, "", "xml", "XML 문서(*.xml)|*.xml|All Files (*.*)|*.*");
  1652. if (filePath == "")
  1653. return;
  1654. /*var ForReading = 1, ForWriting = 2;
  1655. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1656. var objFile = fso.OpenTextFile(filePath, ForReading);
  1657. var cntsFile = objFile.ReadAll();
  1658. instance1.loadXML(cntsFile);
  1659. objFile.Close();*/
  1660. instance1.load(filePath);
  1661. if(!submit("TRMRF01001"))
  1662. {
  1663. model.removeNodeset(pageInfo.forminfoRef);
  1664. model.refresh();
  1665. alert("파일 로딩중 오류가 발생하였습니다.\r\n 다시 시도하시기 바랍니다.");
  1666. return;
  1667. }
  1668. //grd_pltte.rebuild();
  1669. model.refresh();
  1670. setTree(grd_pltte, grd_pltte.colref("degnitemlevlno"), grd_pltte.colref("degnitemcd"), true);
  1671. }
  1672. function fShowCnxtMenu()
  1673. {
  1674. if(grd_pltte.isCell(event.target) && grd_pltte.mouserow >= grd_pltte.fixedrows)//그리드에서 데이타영역만
  1675. {
  1676. //메뉴 초기화
  1677. model.removeNodeset("/root/hidden/menu/item");
  1678. fShowBasicCntxMenu();
  1679. fShowExtnCntxMenu();
  1680. window.setPopupMenu(true, "/root/hidden/menu/item", "name", "func", false);//사용자지정팝업메뉴설정
  1681. }
  1682. else
  1683. {
  1684. window.setPopupMenu(false); //아닐경우 default 팝업메뉴설정
  1685. }
  1686. }
  1687. function fShowBasicCntxMenu()
  1688. {
  1689. var pageInfo = new PAGEINFO();
  1690. var idx = grd_pltte.mouserow - grd_pltte.fixedRows + 1;
  1691. addCntxMenu("하위아이템으로 설정", "fSelectParent");
  1692. addCntxMenu("부모관계 취소", "fCancelChild");
  1693. addCntxMenu("", "");
  1694. addCntxMenu("들여쓰기", "fGoIn");
  1695. addCntxMenu("내어쓰기", "fGoOut");
  1696. addCntxMenu("상위아이템과 동일행 배치", "fArrangeSameRow");
  1697. addCntxMenu("", "");
  1698. var disabled = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval"), "ctrl.disabled");
  1699. if(disabled == "true")
  1700. {
  1701. addCntxMenu("입력가능", "fEnableEdit");
  1702. }
  1703. else
  1704. {
  1705. addCntxMenu("입력불가", "fEnableEdit");
  1706. }
  1707. var essential = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval"), "essential");
  1708. if(essential != "true")
  1709. {
  1710. addCntxMenu("필수입력 설정", "fSetEssential");
  1711. }
  1712. else
  1713. {
  1714. addCntxMenu("필수입력 미설정", "fSetEssential");
  1715. }
  1716. addCntxMenu("", "");
  1717. var printable = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval"), "ctrl._printable");
  1718. if(printable != "false")
  1719. {
  1720. addCntxMenu("출력시 보이지 않게", "fSetPrintable");
  1721. }
  1722. else
  1723. {
  1724. addCntxMenu("출력시 보이게", "fSetPrintable");
  1725. }
  1726. }
  1727. function fShowExtnCntxMenu()
  1728. {
  1729. var pageInfo = new PAGEINFO();
  1730. var idx = grd_pltte.mouserow - grd_pltte.fixedRows + 1;
  1731. var degnitemkind = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemkind");
  1732. if(degnitemkind == "STX" || degnitemkind == "MTX")
  1733. {
  1734. addCntxMenu("", "");
  1735. if(degnitemkind == "STX")
  1736. addCntxMenu("패턴설정", "fSetFormat");
  1737. addCntxMenu("기본입력모드설정", "fSetIMEMode");
  1738. addCntxMenu("산술식설정", "fSetCalc");
  1739. cmb_calculation.disabled = false;
  1740. }
  1741. else if(degnitemkind == "MSK")
  1742. {
  1743. addCntxMenu("", "");
  1744. addCntxMenu("패턴설정", "fSetFormat");
  1745. addCntxMenu("마스킹위치 설정", "fSetMaskPos");
  1746. }
  1747. else if(isSelectItem(degnitemkind))
  1748. {
  1749. addCntxMenu("", "");
  1750. if(degnitemkind == "RDO" || degnitemkind == "CHK")
  1751. addCntxMenu("밸류리스트 상세설정", "fViewSetValueCtrl");
  1752. // else
  1753. // addCntxMenu("ValueList 정렬", "fArrangeVallist");
  1754. var extn = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval"), "extn");
  1755. // CMB에 단위가 붙은 경우 확장컨트롤 메뉴는 없앤다.
  1756. if(degnitemkind == "CMB")
  1757. {
  1758. var unitcd = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/unitcd");
  1759. var unitnm = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/unitnm");
  1760. if(unitcd != "")
  1761. {
  1762. return;
  1763. }
  1764. }
  1765. if(extn == "visible")
  1766. {
  1767. addCntxMenu("확장컨트롤 숨기기", "fShowExtnStx");
  1768. addCntxMenu("확장컨트롤 삭제", "fDelExtnStx");
  1769. }
  1770. else if(extn == "hidden")
  1771. {
  1772. addCntxMenu("확장컨트롤 보이기", "fShowExtnStx");
  1773. addCntxMenu("확장컨트롤 삭제", "fDelExtnStx");
  1774. }
  1775. else
  1776. {
  1777. addCntxMenu("확장컨트롤 보이기", "fShowExtnStx");
  1778. }
  1779. }
  1780. else if(degnitemkind == "IMG")
  1781. {
  1782. addCntxMenu("", "");
  1783. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval"), "imgedit");
  1784. if(imgedit == "Y")
  1785. {
  1786. addCntxMenu("이미지편집 불가", "fEditImge");
  1787. }
  1788. else
  1789. {
  1790. addCntxMenu("이미지편집 가능", "fEditImge");
  1791. }
  1792. }
  1793. else if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN" )
  1794. {
  1795. addCntxMenu("", "");
  1796. var type = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval"), "type");
  1797. if(type != "btn")
  1798. {
  1799. addCntxMenu("버튼형태", "fShowGrid");
  1800. }
  1801. else
  1802. {
  1803. addCntxMenu("그리드형태", "fShowGrid");
  1804. }
  1805. }
  1806. else if(degnitemkind == "CAL")
  1807. {
  1808. addCntxMenu("", "");
  1809. var setcurdate = getStyleValue(model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval"), "setcurdate");
  1810. if(setcurdate != "Y")
  1811. {
  1812. addCntxMenu("현재일자 설정(Yes)", "fSetCurDate");
  1813. }
  1814. else
  1815. {
  1816. addCntxMenu("현재일자 설정(No)", "fSetCurDate");
  1817. }
  1818. }
  1819. else if(degnitemkind == "GRD")
  1820. {
  1821. addCntxMenu("산술식설정", "fSetCalc");
  1822. cmb_calculation.disabled = false; //readonly 기능만 사용하도록 disable
  1823. }
  1824. else if(degnitemkind == "URL")
  1825. {
  1826. addCntxMenu("", "");
  1827. addCntxMenu("URL설정", "fViewSetUrl");
  1828. }
  1829. else if (degnitemkind == "HLP")
  1830. {
  1831. addCntxMenu("", "");
  1832. addCntxMenu("HELP 설정", "fGetHelpLIst");
  1833. }
  1834. //2010.04.07 readonly메뉴 추가, 주희경, readonly 기능만 사용하는 컨트롤임. calculation 사용X
  1835. if( degnitemkind == "MSK" || degnitemkind == "CAL" || degnitemkind == "RDO"
  1836. || degnitemkind == "CHK" || degnitemkind == "CMB" || degnitemkind == "BOL"
  1837. || degnitemkind == "GRD" || degnitemkind == "GSU" || degnitemkind == "MSL"
  1838. || degnitemkind == "SSL" || degnitemkind == "SSU" || degnitemkind == "ISU"
  1839. || degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  1840. {
  1841. //2010.04.07 readonly메뉴 추가, 주희경
  1842. addCntxMenu("", "");
  1843. addCntxMenu("산술식설정", "fSetCalc2");
  1844. cmb_calculation.disabled = true; //readonly 기능만 사용하도록 disable
  1845. }
  1846. if(degnitemkind == "STX" || degnitemkind == "MTX" || degnitemkind == "MSK"
  1847. || degnitemkind == "IMG" || degnitemkind == "FDG" || degnitemkind == "CAL"
  1848. || degnitemkind == "RDO" || degnitemkind == "CMB" || degnitemkind == "GRD"
  1849. || degnitemkind == "BTN" || degnitemkind == "BOL" || degnitemkind == "SSU"
  1850. || degnitemkind == "LBL" || degnitemkind == "CHK")
  1851. {
  1852. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1853. var TooltipText = getStyleValue(degnattrval, "ctrl.hint");
  1854. model.setValue("/root/hidden/hint" , TooltipText);
  1855. addCntxMenu("툴팁 설정", "fSetHint");
  1856. }
  1857. }
  1858. function fShowExtnStx()
  1859. {
  1860. var pageInfo = new PAGEINFO();
  1861. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1862. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  1863. var status = getStyleValue(itemattrval, "extn");
  1864. if(status == "visible")
  1865. {
  1866. itemattrval = setStyleValue(itemattrval, "extn", "hidden");
  1867. }
  1868. else
  1869. {
  1870. itemattrval = setStyleValue(itemattrval, "extn", "visible");
  1871. }
  1872. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  1873. grd_pltte.refresh();
  1874. }
  1875. function fDelExtnStx()
  1876. {
  1877. var pageInfo = new PAGEINFO();
  1878. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1879. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  1880. var status = getStyleValue(itemattrval, "extn");
  1881. if(status == "hidden" || status == "visible")
  1882. {
  1883. itemattrval = itemattrval.setReplaceWord("extn:" + status + ";", "");
  1884. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  1885. grd_pltte.refresh();
  1886. }
  1887. }
  1888. function fSetFormat()
  1889. {
  1890. var pageInfo = new PAGEINFO();
  1891. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1892. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1893. var format = getFormatStyleValue(degnattrval, "ctrl.format");
  1894. model.setValue("/root/hidden/format", format);
  1895. grup_format.refresh();
  1896. grup_format.attribute("left") = "300px";
  1897. grup_format.attribute("visibility") = "visible";
  1898. }
  1899. function fSetFormat_old()
  1900. {
  1901. var pageInfo = new PAGEINFO();
  1902. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1903. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1904. var format = getStyleValue(degnattrval, "ctrl.format");
  1905. model.setValue("/root/hidden/format", format);
  1906. grup_format.refresh();
  1907. grup_format.attribute("left") = "300px";
  1908. grup_format.attribute("visibility") = "visible";
  1909. }
  1910. function fSetIMEMode()
  1911. {
  1912. var pageInfo = new PAGEINFO();
  1913. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1914. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1915. var imemode = getStyleValue(degnattrval, "ctrl.imemode");
  1916. if(imemode == "")
  1917. imemode = "alpha";
  1918. model.setValue("/root/hidden/imemode", imemode);
  1919. grup_ime.refresh();
  1920. grup_ime.attribute("left") = "300px";
  1921. grup_ime.attribute("visibility") = "visible";
  1922. }
  1923. function fApplyFormat()
  1924. {
  1925. var format = model.getValue("/root/hidden/format");
  1926. var pageInfo = new PAGEINFO();
  1927. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1928. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1929. degnattrval = setStyleValue(degnattrval, "ctrl.format", format);
  1930. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  1931. }
  1932. function fApplyIMEMode()
  1933. {
  1934. var imemode = model.getValue("/root/hidden/imemode");
  1935. var pageInfo = new PAGEINFO();
  1936. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1937. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1938. degnattrval = setStyleValue(degnattrval, "ctrl.imemode", imemode);
  1939. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  1940. }
  1941. function fSetMaskPos()
  1942. {
  1943. var pageInfo = new PAGEINFO();
  1944. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1945. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1946. var stPos = getStyleValue(degnattrval, "ctrl.secretstartposition");
  1947. var endPos = getStyleValue(degnattrval, "ctrl.secretendposition");
  1948. model.setValue("/root/hidden/maskpos/start", stPos);
  1949. model.setValue("/root/hidden/maskpos/end", endPos);
  1950. grup_mask.refresh();
  1951. grup_mask.attribute("left") = "300px";
  1952. grup_mask.attribute("visibility") = "visible";
  1953. }
  1954. function fApplyMaskPos()
  1955. {
  1956. var pageInfo = new PAGEINFO();
  1957. var stPos = model.getValue("/root/hidden/maskpos/start");
  1958. var endPos = model.getValue("/root/hidden/maskpos/end");
  1959. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1960. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1961. degnattrval = setStyleValue(degnattrval, "ctrl.secretstartposition", stPos);
  1962. degnattrval = setStyleValue(degnattrval, "ctrl.secretendposition", endPos);
  1963. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  1964. }
  1965. function fSetCalc()
  1966. {
  1967. model.setValue("/root/hidden/calculation/readonly", "");
  1968. var pageInfo = new PAGEINFO();
  1969. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  1970. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemno");
  1971. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  1972. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  1973. var strCalc = getStyleValue(itemattrval, "calculation");
  1974. var strRead = getStyleValue(itemattrval, "readonly");
  1975. model.setValue("/root/hidden/calculation/ref", idx);
  1976. model.setValue("/root/hidden/calculation/formular", strCalc);
  1977. model.setValue("/root/hidden/calculation/readonly", strRead);
  1978. model.refresh();
  1979. // 소수점 자리 노드 생성
  1980. var roundmode = getStyleValue(degnattrval, "ctrl.roundmode");
  1981. var roundpos = getStyleValue(degnattrval, "ctrl.roundposition");
  1982. if(roundmode == "")
  1983. roundmode = "none";
  1984. model.makeValue("/root/hidden/calculation/roundmode", roundmode);
  1985. model.makeValue("/root/hidden/calculation/roundpos", roundpos);
  1986. model.makeValue("/root/hidden/calculation/attr", "1"); // calculate속성이 기본으로 열리게
  1987. grd_pltte.rowstyle(idx, "fixed", "background-image") = "../../../com/commonweb/images/icon_rect_over.gif";
  1988. grup_calc.refresh();
  1989. grup_calc.attribute("left") = "150px";
  1990. grup_calc.attribute("visibility") = "visible";
  1991. tar_calc.attribute("visibility") = "visible";
  1992. input4.disabled = false;
  1993. combo5.disabled = false;
  1994. tar_read.attribute("visibility") = "hidden";
  1995. caption28.attribute("visibility") = "hidden";
  1996. model.setFocus("tar_calc");
  1997. }
  1998. //2010.04.06, 주희경
  1999. //readonly만 사용 시 함수 추가
  2000. function fSetCalc2()
  2001. {
  2002. model.setValue("/root/hidden/calculation/readonly", "");
  2003. var pageInfo = new PAGEINFO();
  2004. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2005. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2006. model.setValue("/root/hidden/calculation/ref", idx);
  2007. var strRead = getStyleValue(itemattrval, "readonly");
  2008. model.setValue("/root/hidden/calculation/readonly", strRead); //이전에 설정한 readonly 내용 복사
  2009. model.makeValue("/root/hidden/calculation/attr", "2"); // calculate속성이 기본으로 열리게
  2010. tar_read.attribute("visibility") = "visible";
  2011. cpt_readonly.attribute("visibility") = "visible";
  2012. grd_pltte.rowstyle(idx, "fixed", "background-image") = "../../../com/commonweb/images/icon_rect_over.gif";
  2013. grup_calc.refresh();
  2014. grup_calc.attribute("left") = "150px";
  2015. grup_calc.attribute("visibility") = "visible";
  2016. model.setFocus("tar_read");
  2017. }
  2018. function fApplyCalc()
  2019. {
  2020. var pageInfo = new PAGEINFO();
  2021. var strCalc = model.getValue("/root/hidden/calculation/formular");
  2022. var strRead = model.getValue("/root/hidden/calculation/readonly");
  2023. var idx = model.getValue("/root/hidden/calculation/ref");
  2024. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2025. if(strCalc == "" && strRead == "") // 둘다 삭제하는 경우
  2026. {
  2027. grd_pltte.rowstyle(idx, "fixed", "background-image") = "../../../com/commonweb/images/grid_bg.gif";
  2028. model.setValue("/root/hidden/calculation/ref", "");
  2029. model.setValue("/root/hidden/calculation/formular", "");
  2030. var tmpstr = getStyleValue(itemattrval, "calculation");
  2031. itemattrval = itemattrval.setReplaceWord("calculation:" + tmpstr + ";", "");
  2032. tmpstr = getStyleValue(itemattrval, "readonly");
  2033. itemattrval = itemattrval.setReplaceWord("readonly:" + tmpstr + ";", "");
  2034. // 아이템 속성 삭제
  2035. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2036. // 디자인 속성 삭제
  2037. var roundMode = model.getValue("/root/hidden/calculation/roundmode");
  2038. var roundposition = model.getValue("/root/hidden/calculation/roundpos");
  2039. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2040. if(isSearchString(degnattrval, "ctrl.roundmode") == true)
  2041. {
  2042. var oldRound = getStyleValue(degnattrval, "ctrl.roundmode");
  2043. var newRound = "";
  2044. if(roundMode != "none")
  2045. newRound = "ctrl.roundmode:" + roundMode;
  2046. degnattrval = degnattrval.setReplaceWord("ctrl.roundmode:" + oldRound + ";", newRound);
  2047. }
  2048. if(isSearchString(degnattrval, "ctrl.roundposition") == true)
  2049. {
  2050. var oldRoundPos = getStyleValue(degnattrval, "ctrl.roundposition");
  2051. if(roundposition != "") // 변경
  2052. {
  2053. var newRoundPos = "ctrl.roundposition:" + roundposition;
  2054. degnattrval = degnattrval.setReplaceWord("ctrl.roundposition:" + oldRoundPos, newRoundPos);
  2055. }
  2056. else // 삭제
  2057. degnattrval = degnattrval.setReplaceWord("ctrl.roundposition:" + oldRoundPos + ";", roundposition);
  2058. }
  2059. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2060. model.refresh();
  2061. return;
  2062. }
  2063. //if(strCalc != "")
  2064. itemattrval = setStyleValue(itemattrval, "calculation", strCalc);
  2065. //if(strRead != "")
  2066. itemattrval = setStyleValue(itemattrval, "readonly", strRead);
  2067. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2068. // 해당 아이템 찾기
  2069. var degnitemcd = model.getValue(g_pageInfo.formdegnRef + "[" + idx + "]/degnitemcd");
  2070. var degnitemno = model.getValue(g_pageInfo.formdegnRef +"[" + idx + "]/degnitemno");
  2071. var degnitemkind = model.getValue(g_pageInfo.formdegnRef +"[" + idx + "]/degnitemkind");
  2072. var degnitemnm = model.getValue(g_pageInfo.formdegnRef +"[" + idx + "]/degnitemnm");
  2073. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2074. var roundMode = model.getValue("/root/hidden/calculation/roundmode");
  2075. var roundposition = model.getValue("/root/hidden/calculation/roundpos");
  2076. // roundmode 추가
  2077. if(roundMode != "")
  2078. {
  2079. if(isSearchString(degnattrval, "ctrl.roundmode") == true)
  2080. {
  2081. var oldRound = getStyleValue(degnattrval, "ctrl.roundmode");
  2082. var newRound = "";
  2083. if(roundMode != "none")
  2084. newRound = "ctrl.roundmode:" + roundMode;
  2085. degnattrval = degnattrval.setReplaceWord("ctrl.roundmode:" + oldRound, newRound);
  2086. }
  2087. else
  2088. degnattrval += ("ctrl.roundmode:" + roundMode + ";");
  2089. }
  2090. // roundposition 변경/삭제
  2091. if(isSearchString(degnattrval, "ctrl.roundposition") == true)
  2092. {
  2093. var oldRoundPos = getStyleValue(degnattrval, "ctrl.roundposition");
  2094. if(roundposition != "") // 변경
  2095. {
  2096. var newRoundPos = "ctrl.roundposition:" + roundposition;
  2097. degnattrval = degnattrval.setReplaceWord("ctrl.roundposition:" + oldRoundPos, newRoundPos);
  2098. }
  2099. else // 삭제
  2100. degnattrval = degnattrval.setReplaceWord("ctrl.roundposition:" + oldRoundPos + ";", roundposition);
  2101. }
  2102. else // roundposition 추가
  2103. {
  2104. degnattrval += ("ctrl.roundposition:" + roundposition + ";");
  2105. }
  2106. // 디자인 속성을 변경
  2107. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2108. grd_pltte.rowstyle(idx, "fixed", "background-image") = "../../../com/commonweb/images/grid_bg.gif";
  2109. model.setValue("/root/hidden/calculation/ref", "");
  2110. model.setValue("/root/hidden/calculation/formular", "");
  2111. model.refresh();
  2112. }
  2113. function fSelectCalcItem()
  2114. {
  2115. if(grup_calc.attribute("visibility") == "hidden")
  2116. return;
  2117. var pageInfo = new PAGEINFO();
  2118. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2119. var supdegnitemno = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/supdegnitemno");
  2120. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemno");
  2121. var degnitemkind = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemkind");
  2122. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2123. var axflag = getStyleValue(itemattrval, "axflag");
  2124. var calcItem = "#" +degnitemno + "#";
  2125. if(degnitemkind == "GSU" && axflag == "X")
  2126. {
  2127. var supitemattrval = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  2128. var gridtype = getStyleValue(supitemattrval, "gridtype");
  2129. if(gridtype == "T")
  2130. calcItem = "^" + calcItem;
  2131. else
  2132. calcItem = "#" +supdegnitemno + "#|" + calcItem;
  2133. }
  2134. else if(degnitemkind == "GSU" && axflag == "Y")
  2135. calcItem = "#" +supdegnitemno + "#|" + calcItem;
  2136. var txtSelPos = tar_calc.selBegin;
  2137. var curText = tar_calc.currentText;
  2138. var curTextBefore = curText.substr(0, txtSelPos);
  2139. var curTextAfter = curText.substr(txtSelPos, curText.length);
  2140. model.setFocus("tar_calc");
  2141. tar_calc.currentText = curTextBefore + calcItem + curTextAfter;
  2142. tar_calc.selBegin = txtSelPos + calcItem.length;
  2143. tar_calc.dispatch("onkeyup");
  2144. }
  2145. function fSetComUseYN()
  2146. {
  2147. var curRow = grd_pltte.row - grd_pltte.fixedRows + 1;
  2148. var degnitemlevlno = model.getValue(grd_pltte.attribute("nodeset") + "[" + curRow + "]/degnitemlevlno");
  2149. if(parseInt(degnitemlevlno) > 1)
  2150. {
  2151. messageBox("최상위 레벨 아니면 상용구 사용여부를 등록", "E001");
  2152. model.setValue(grd_pltte.attribute("nodeset") + "[" + curRow + "]/comuseyn", "N");
  2153. }
  2154. grd_pltte.refresh();
  2155. }
  2156. function fEditImge()
  2157. {
  2158. var pageInfo = new PAGEINFO();
  2159. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2160. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2161. var status = getStyleValue(itemattrval, "imgedit");
  2162. if(status == "Y")
  2163. {
  2164. itemattrval = setStyleValue(itemattrval, "imgedit", "N");
  2165. }
  2166. else
  2167. {
  2168. itemattrval = setStyleValue(itemattrval, "imgedit", "Y");
  2169. }
  2170. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2171. grd_pltte.refresh();
  2172. }
  2173. function fEnableEdit()
  2174. {
  2175. var pageInfo = new PAGEINFO();
  2176. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2177. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2178. var status = getStyleValue(degnattrval, "ctrl.disabled");
  2179. if(status == "true")
  2180. {
  2181. degnattrval = setStyleValue(degnattrval, "ctrl.disabled", "false");
  2182. }
  2183. else
  2184. {
  2185. degnattrval = setStyleValue(degnattrval, "ctrl.disabled", "true");
  2186. }
  2187. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2188. grd_pltte.refresh();
  2189. }
  2190. function fShowGrid()
  2191. {
  2192. var pageInfo = new PAGEINFO();
  2193. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2194. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2195. var status = getStyleValue(itemattrval, "type");
  2196. if(status != "btn")
  2197. {
  2198. itemattrval = setStyleValue(itemattrval, "type", "btn");
  2199. }
  2200. else
  2201. {
  2202. itemattrval = setStyleValue(itemattrval, "type", "grd");
  2203. }
  2204. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2205. grd_pltte.refresh();
  2206. }
  2207. function fSetPrintable()
  2208. {
  2209. var pageInfo = new PAGEINFO();
  2210. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2211. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2212. var status = getStyleValue(degnattrval, "ctrl._printable");
  2213. if(status != "false")
  2214. {
  2215. degnattrval = setStyleValue(degnattrval, "ctrl._printable", "false");
  2216. }
  2217. else
  2218. {
  2219. degnattrval = setStyleValue(degnattrval, "ctrl._printable", "true");
  2220. }
  2221. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2222. grd_pltte.refresh();
  2223. }
  2224. function fSetEssential()
  2225. {
  2226. var pageInfo = new PAGEINFO();
  2227. // 아이템 번호 얻기
  2228. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2229. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2230. var status = getStyleValue(itemattrval, "essential");
  2231. if(status != "true")
  2232. {
  2233. // 필수입력으로 설정
  2234. itemattrval = setStyleValue(itemattrval, "essential", "true");
  2235. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/essnrecyn", "Y");
  2236. }
  2237. else
  2238. {
  2239. // 필수입력 설정해제
  2240. itemattrval = setStyleValue(itemattrval, "essential", "false");
  2241. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/essnrecyn", "N");
  2242. }
  2243. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2244. grd_pltte.refresh();
  2245. }
  2246. function fSetCurDate()
  2247. {
  2248. var pageInfo = new PAGEINFO();
  2249. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2250. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2251. var status = getStyleValue(itemattrval, "setcurdate");
  2252. if(status != "Y")
  2253. {
  2254. itemattrval = setStyleValue(itemattrval, "setcurdate", "Y");
  2255. }
  2256. else
  2257. {
  2258. itemattrval = setStyleValue(itemattrval, "setcurdate", "N");
  2259. }
  2260. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  2261. grd_pltte.refresh();
  2262. }
  2263. function fDisableCtrl(ctrlid)
  2264. {
  2265. try{
  2266. var ctrl = document.controls(ctrlid);
  2267. if(ctrl != null)
  2268. {
  2269. ctrl.disabled = true;
  2270. ctrl.refresh();
  2271. }
  2272. }
  2273. catch(e)
  2274. {
  2275. return;
  2276. }
  2277. }
  2278. function fEnableCtrl(ctrlid)
  2279. {
  2280. try{
  2281. var ctrl = document.controls(ctrlid);
  2282. if(ctrl != null)
  2283. {
  2284. ctrl.disabled = false;
  2285. ctrl.refresh();
  2286. }
  2287. }
  2288. catch(e)
  2289. {
  2290. return;
  2291. }
  2292. }
  2293. function fSetDegnCmpltYN(check)
  2294. {
  2295. try{
  2296. var formprogflag = model.getValue("/root/main/forminfo/formmast/formprogflag");
  2297. var degncmpltyn = model.getValue("/root/temp/degncmpltyn");
  2298. if(formprogflag == "")
  2299. return;
  2300. if(check == "Y")
  2301. {
  2302. if(formprogflag == "-" || formprogflag == "PROF" || formprogflag == "PROG" || formprogflag == "MAIN")
  2303. {
  2304. model.setValue("/root/main/forminfo/formmast/degncmpltyn", "Y");
  2305. fDisableCtrl("btn_item"); // 아이템 선택
  2306. fDisableCtrl("button104"); // 한칸 위로
  2307. fDisableCtrl("button105"); // 한칸 아래로
  2308. fDisableCtrl("button53"); // 행삭제
  2309. fDisableCtrl("button3"); // 디자인 적용
  2310. fDisableCtrl("button43"); // 서식테스트
  2311. fDisableCtrl("grd_pltte"); // 팔레트
  2312. }
  2313. else
  2314. {
  2315. alert("디자인 서식만 적용됩니다.");
  2316. model.setValue("/root/main/forminfo/formmast/degncmpltyn", degncmpltyn); // 체크 해제
  2317. model.refresh();
  2318. }
  2319. }
  2320. else
  2321. {
  2322. if(formprogflag == "-" || formprogflag == "PROF" || formprogflag == "PROG" || formprogflag == "MAIN")
  2323. {
  2324. model.setValue("/root/main/forminfo/formmast/degncmpltyn", "N");
  2325. fEnableCtrl("btn_item"); // 아이템 선택
  2326. fEnableCtrl("button104"); // 한칸 위로
  2327. fEnableCtrl("button105"); // 한칸 아래로
  2328. fEnableCtrl("button53"); // 행삭제
  2329. fEnableCtrl("button3"); // 디자인 적용
  2330. fEnableCtrl("button43"); // 서식테스트
  2331. fEnableCtrl("grd_pltte"); // 팔레트
  2332. }
  2333. else
  2334. {
  2335. alert("디자인 서식만 적용됩니다.");
  2336. model.setValue("/root/main/forminfo/formmast/degncmpltyn", degncmpltyn); // 체크 해제
  2337. model.refresh();
  2338. }
  2339. }
  2340. }
  2341. catch(e)
  2342. {
  2343. return;
  2344. }
  2345. }
  2346. function fAccessKey(event)
  2347. {
  2348. if(event.ctrlKey == true)
  2349. {
  2350. if( event.keyCode == "49")
  2351. {
  2352. inputEnterKey("img_font-weight", "onclick");
  2353. }
  2354. }
  2355. }
  2356. function fSetHint()
  2357. {
  2358. group_hint.refresh();
  2359. group_hint.attribute("left") = "150px";
  2360. group_hint.attribute("visibility") = "visible";
  2361. model.setFocus("tar_hint");
  2362. }
  2363. //2010.01.07 , hkjoo
  2364. function fGetHelpLIst()
  2365. {
  2366. group_help.attribute("left") = "150px";
  2367. group_help.attribute("visibility") = "visible";
  2368. }
  2369. function fAddHint()
  2370. {
  2371. var pageInfo = new PAGEINFO();
  2372. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2373. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2374. var hint = "";
  2375. if(isSearchString(degnattrval, "ctrl.hint:") == true)
  2376. {
  2377. var tooltipText = getStyleValue(degnattrval, "ctrl.hint");
  2378. degnattrval = degnattrval.setReplaceWord(tooltipText, model.getValue("/root/hidden/hint"));
  2379. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2380. }
  2381. else
  2382. {
  2383. hint = "ctrl.hint:" + model.getValue("/root/hidden/hint") + ";";
  2384. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval + hint);
  2385. }
  2386. model.setValue("/root/hidden/hint", "");
  2387. model.refresh();
  2388. grd_pltte.refresh();
  2389. }
  2390. function fSelectReadOnlyItem()
  2391. {
  2392. if(grup_calc.attribute("visibility") == "hidden")
  2393. return;
  2394. var pageInfo = new PAGEINFO();
  2395. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2396. var supdegnitemno = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/supdegnitemno");
  2397. var degnitemno = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemno");
  2398. var degnitemkind = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemkind");
  2399. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  2400. var axflag = getStyleValue(itemattrval, "axflag");
  2401. var calcItem = "#" +degnitemno + "#";
  2402. if(degnitemkind == "GSU" && axflag == "X")
  2403. {
  2404. var supitemattrval = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  2405. var gridtype = getStyleValue(supitemattrval, "gridtype");
  2406. if(gridtype == "T")
  2407. calcItem = "^" + calcItem;
  2408. else
  2409. calcItem = "#" +supdegnitemno + "#|" + calcItem;
  2410. }
  2411. else if(degnitemkind == "GSU" && axflag == "Y")
  2412. calcItem = "#" +supdegnitemno + "#|" + calcItem;
  2413. var txtSelPos = tar_read.selBegin;
  2414. var curText = tar_read.currentText;
  2415. var curTextBefore = curText.substr(0, txtSelPos);
  2416. var curTextAfter = curText.substr(txtSelPos, curText.length);
  2417. model.setFocus("tar_read");
  2418. tar_read.currentText = curTextBefore + calcItem + curTextAfter;
  2419. tar_read.selBegin = txtSelPos + calcItem.length;
  2420. tar_read.dispatch("onkeyup");
  2421. }
  2422. function fSetUrlCtrl()
  2423. {
  2424. try
  2425. {
  2426. var pageInfo = new PAGEINFO();
  2427. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2428. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2429. var ctrlmode = model.getValue("/root/temp/urlmode/mode");
  2430. var srcaddr = "";
  2431. var ctrltype = "";
  2432. // 컨트롤 타입
  2433. if(isSearchString(degnattrval, "ctrl.type:") == true)
  2434. {
  2435. var oldtype = "ctrl.type:" + getStyleValue(degnattrval, "ctrl.type");
  2436. var newtype = "ctrl.type:" + model.getValue("/root/temp/urlmode/mode");
  2437. degnattrval = degnattrval.setReplaceWord(oldtype, newtype);
  2438. }
  2439. else
  2440. {
  2441. ctrltype = "ctrl.type:" + model.getValue("/root/temp/urlmode/mode") + ";";
  2442. degnattrval += ctrltype;
  2443. }
  2444. // URL 주소
  2445. if(isSearchString(degnattrval, "ctrl.addr:") == true)
  2446. {
  2447. var tmpaddr = getStyleValue(degnattrval, "ctrl.addr");
  2448. srcaddr = model.getValue("/root/temp/urlmode/srcaddr");
  2449. srcaddr = srcaddr.setReplaceWord(":", "colon");
  2450. srcaddr = srcaddr.setReplaceWord("/", "slash");
  2451. degnattrval = degnattrval.setReplaceWord(tmpaddr, srcaddr);
  2452. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2453. }
  2454. else
  2455. {
  2456. srcaddr = model.getValue("/root/temp/urlmode/srcaddr");
  2457. srcaddr = srcaddr.setReplaceWord(":", "colon");
  2458. srcaddr = srcaddr.setReplaceWord("/", "slash");
  2459. srcaddr = "ctrl.addr:" + srcaddr + ";";
  2460. degnattrval = degnattrval + srcaddr;
  2461. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2462. }
  2463. // Width, Height
  2464. if(isSearchString(degnattrval, "ctrl.popwid:") == true)
  2465. {
  2466. var oldWidth = "ctrl.popwid:" + getStyleValue(degnattrval, "ctrl.popwid");
  2467. var newWidth = "ctrl.popwid:" + model.getValue("/root/temp/urlmode/width");
  2468. degnattrval = degnattrval.setReplaceWord(oldWidth, newWidth);
  2469. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2470. }
  2471. else
  2472. {
  2473. var newWidth = model.getValue("/root/temp/urlmode/width");
  2474. var popwid = "ctrl.popwid:" + newWidth + ";";
  2475. degnattrval = degnattrval + popwid;
  2476. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2477. }
  2478. if(isSearchString(degnattrval, "ctrl.pophei:") == true)
  2479. {
  2480. var oldHeight = "ctrl.pophei:" + getStyleValue(degnattrval, "ctrl.pophei");
  2481. var newHeight = "ctrl.pophei:" + model.getValue("/root/temp/urlmode/height");
  2482. degnattrval = degnattrval.setReplaceWord(oldHeight, newHeight);
  2483. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2484. }
  2485. else
  2486. {
  2487. var newHeight = model.getValue("/root/temp/urlmode/height");
  2488. var pophei = "ctrl.pophei:" + newHeight + ";";
  2489. degnattrval = degnattrval + pophei;
  2490. //model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2491. }
  2492. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2493. grup_url.attribute("visibility") = "hidden";
  2494. model.setValue("/root/temp/urlmode/mode", "1");
  2495. model.setValue("/root/temp/urlmode/scraddr", "");
  2496. model.refresh();
  2497. grup_url.refresh();
  2498. }
  2499. catch(e)
  2500. {
  2501. }
  2502. }
  2503. function fViewSetUrl()
  2504. {
  2505. try
  2506. {
  2507. var pageInfo = new PAGEINFO();
  2508. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2509. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2510. var ctrlmode = model.getValue("/root/temp/urlmode/mode");
  2511. var ctrltype = getStyleValue(degnattrval, "ctrl.type");
  2512. var ctrladdr = getStyleValue(degnattrval, "ctrl.addr");
  2513. ctrladdr = ctrladdr.setReplaceWord("colon", ":");
  2514. ctrladdr = ctrladdr.setReplaceWord("slash", "/");
  2515. model.setValue("/root/temp/urlmode/mode", ctrltype);
  2516. model.setValue("/root/temp/urlmode/srcaddr", ctrladdr);
  2517. var popWid = getStyleValue(degnattrval, "ctrl.popwid");
  2518. var popHei = getStyleValue(degnattrval, "ctrl.pophei");
  2519. var popUser = getStyleValue(degnattrval, "ctrl.popuser");
  2520. var popMaxsize = getStyleValue(degnattrval, "ctrl.popmax");
  2521. if(popWid != "")
  2522. model.setValue("/root/temp/urlmode/width", popWid);
  2523. else
  2524. model.setValue("/root/temp/urlmode/width", model.getValue("/root/temp/urlmode/width"));
  2525. if(popHei != "")
  2526. model.setValue("/root/temp/urlmode/height", popHei);
  2527. else
  2528. model.setValue("/root/temp/urlmode/height", model.getValue("/root/temp/urlmode/height"));
  2529. if(grup_url.attribute("visibility") == "hidden")
  2530. {
  2531. grup_url.attribute("visibility") = "visible";
  2532. if(popUser == "true")
  2533. {
  2534. caption34.attribute("visibility") = "visible";
  2535. caption35.attribute("visibility") = "visible";
  2536. input4.attribute("visibility") = "visible";
  2537. input10.attribute("visibility") = "visible";
  2538. cmb_url.select(5); // 해상도 직접입력 선택
  2539. }
  2540. else
  2541. {
  2542. caption34.attribute("visibility") = "hidden";
  2543. caption35.attribute("visibility") = "hidden";
  2544. input4.attribute("visibility") = "hidden";
  2545. input10.attribute("visibility") = "hidden";
  2546. if(popMaxsize == "true")
  2547. {
  2548. cmb_url.select(0); // 최대 해상도 기본 선택
  2549. }
  2550. else
  2551. {
  2552. switch(popWid)
  2553. {
  2554. case "1680":
  2555. cmb_url.select(1); // 1680 x 1050 해상도 선택
  2556. break;
  2557. case "1280":
  2558. cmb_url.select(2); // 1280 x 1024 해상도 선택
  2559. break;
  2560. case "1024":
  2561. cmb_url.select(3); // 1024 x 768 해상도 선택
  2562. break;
  2563. case "800":
  2564. cmb_url.select(4); // 800 x 600 해상도 선택
  2565. break;
  2566. default:
  2567. cmb_url.select(0); // 최대 해상도 기본 선택
  2568. break;
  2569. }
  2570. }
  2571. }
  2572. cmb_url.refresh();
  2573. //cmb_url.dispatch("xforms-value-changed");
  2574. }
  2575. grup_url.attribute("left") = "300px";
  2576. grup_url.refresh();
  2577. }
  2578. catch(e)
  2579. {
  2580. }
  2581. }
  2582. function fChangeDegnitemkind()
  2583. {
  2584. var pageInfo = new PAGEINFO();
  2585. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2586. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2587. var degnitemkind = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnitemkind");
  2588. if(degnitemkind != "URL")
  2589. {
  2590. if(isSearchString(degnattrval, "ctrl.type:") == true)
  2591. {
  2592. var ctrltype = getStyleValue(degnattrval, "ctrl.type");
  2593. ctrltype = "ctrl.type:" + ctrltype + ";";
  2594. degnattrval = degnattrval.setReplaceWord(ctrltype, "");
  2595. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2596. }
  2597. if(isSearchString(degnattrval, "ctrl.addr:") == true)
  2598. {
  2599. var ctrladdr = getStyleValue(degnattrval, "ctrl.addr");
  2600. ctrladdr = "ctrl.addr:" + ctrladdr + ";";
  2601. degnattrval = degnattrval.setReplaceWord(ctrladdr, "");
  2602. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2603. }
  2604. // 2010.01.13, hkjoo
  2605. // 도움말로 아이템 설정 시 출력시 보이지 않게 디폴트로 설
  2606. if(degnitemkind == "HLP")
  2607. {
  2608. degnattrval = "ctrl._printable:false";
  2609. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2610. }
  2611. }
  2612. }
  2613. function fChgUrlSize()
  2614. {
  2615. try
  2616. {
  2617. var pageInfo = new PAGEINFO();
  2618. var maxsize = "";
  2619. var userdef = "";
  2620. var urlsize = model.getValue("/root/temp/urlmode/cmbsize");
  2621. if(urlsize == "max") // 사용자가 최대 해상도 선택함.
  2622. {
  2623. maxsize = "ctrl.popmax:true;";
  2624. userdef = "ctrl.popuser:false;";
  2625. caption34.attribute("visibility") = "hidden";
  2626. caption35.attribute("visibility") = "hidden";
  2627. input4.attribute("visibility") = "hidden";
  2628. input10.attribute("visibility") = "hidden";
  2629. //input4.disabled = "true";
  2630. //input10.disabled = "true";
  2631. }
  2632. else if(urlsize == "user")
  2633. {
  2634. caption34.attribute("visibility") = "visible";
  2635. caption35.attribute("visibility") = "visible";
  2636. input4.attribute("visibility") = "visible";
  2637. input10.attribute("visibility") = "visible";
  2638. input4.disabled = "false";
  2639. input10.disabled = "false";
  2640. maxsize = "ctrl.popmax:false;";
  2641. userdef = "ctrl.popuser:true;";
  2642. }
  2643. else
  2644. {
  2645. var sizearr = model.getValue("/root/temp/urlmode/cmbsize");
  2646. var sizearr = sizearr.split("|");
  2647. if(sizearr.length > 1)
  2648. {
  2649. if(sizearr[0] != "")
  2650. model.setValue("/root/temp/urlmode/width", sizearr[0]);
  2651. if(sizearr[1] != "")
  2652. model.setValue("/root/temp/urlmode/height", sizearr[1]);
  2653. }
  2654. maxsize = "ctrl.popmax:false;";
  2655. userdef = "ctrl.popuser:false;";
  2656. caption34.attribute("visibility") = "hidden";
  2657. caption35.attribute("visibility") = "hidden";
  2658. input4.attribute("visibility") = "hidden";
  2659. input10.attribute("visibility") = "hidden";
  2660. //input4.disabled = "true";
  2661. //input10.disabled = "true";
  2662. }
  2663. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2664. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2665. if(isSearchString(degnattrval, "ctrl.popmax:") == true)
  2666. {
  2667. var oldpopmax = "ctrl.popmax:" + getStyleValue(degnattrval, "ctrl.popmax");
  2668. var Newpopmax = "ctrl.popmax:" + getStyleValue(maxsize, "ctrl.popmax");
  2669. degnattrval = degnattrval.setReplaceWord(oldpopmax, Newpopmax);
  2670. }
  2671. else
  2672. {
  2673. degnattrval += maxsize;
  2674. }
  2675. if(isSearchString(degnattrval, "ctrl.popuser:") == true)
  2676. {
  2677. var oldpopuser = "ctrl.popuser:" + getStyleValue(degnattrval, "ctrl.popuser");
  2678. var Newpopuser = "ctrl.popuser:" + getStyleValue(userdef, "ctrl.popuser");
  2679. degnattrval = degnattrval.setReplaceWord(oldpopuser, Newpopuser);
  2680. }
  2681. else
  2682. {
  2683. degnattrval += userdef;
  2684. }
  2685. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2686. model.refresh();
  2687. grup_url.refresh();
  2688. }
  2689. catch(e)
  2690. {
  2691. }
  2692. }
  2693. /////////////////////////////////////////////////////
  2694. /*
  2695. TASK번호: 33248 요청번호: 4535
  2696. 밸류리스트의 콘트롤 크기를 조정하여도 크기조정되지 않음
  2697. TASK번호: 33259 요청번호: 4546
  2698. 밸류리스트의 서브아이템의 간격을 조정할 수 있게…
  2699. */
  2700. /////////////////////////////////////////////////////
  2701. function fViewSetValueCtrl()
  2702. {
  2703. try
  2704. {
  2705. var pageInfo = new PAGEINFO();
  2706. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2707. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2708. // 이미 설정한 밸류서브 설정값을 가져옴.
  2709. // 밸류리스트 라벨 보이기/숨기기 설정
  2710. if(isSearchString(degnattrval, "ctrl.sublabel") == true)
  2711. {
  2712. var labelvisible = getStyleValue(degnattrval, "ctrl.sublabel");
  2713. if(labelvisible == "on")
  2714. {
  2715. model.setValue("/root/temp/vallistdetail/labelvisible", "on");
  2716. }
  2717. else
  2718. {
  2719. model.setValue("/root/temp/vallistdetail/labelvisible", "off");
  2720. }
  2721. }
  2722. else
  2723. { // 기본값
  2724. model.setValue("/root/temp/vallistdetail/labelvisible", "on");
  2725. }
  2726. // 가로 간격 설정 처리
  2727. if(isSearchString(degnattrval, "ctrl.cellusermode") == true)
  2728. {
  2729. var cellspacing = getStyleValue(degnattrval, "ctrl.subcellspacing");
  2730. if(getStyleValue(degnattrval, "ctrl.cellusermode") == "on") // 직접입력 처리
  2731. {
  2732. model.setValue("/root/temp/vallistdetail/cellspacing", "user");
  2733. model.setValue("/root/temp/vallistdetail/inputcellsp", cellspacing);
  2734. input8.attribute("visibility") = "visible";
  2735. input8.disabled = "false";
  2736. }
  2737. else
  2738. {
  2739. var cellspacing = getStyleValue(degnattrval, "ctrl.subcellspacing");
  2740. model.setValue("/root/temp/vallistdetail/cellspacing", cellspacing);
  2741. }
  2742. }
  2743. else
  2744. {
  2745. if(isSearchString(degnattrval, "ctrl.subcellspacing") == true)
  2746. {
  2747. var cellspacing = getStyleValue(degnattrval, "ctrl.subcellspacing");
  2748. model.setValue("/root/temp/vallistdetail/cellspacing", cellspacing);
  2749. }
  2750. else
  2751. {
  2752. model.setValue("/root/temp/vallistdetail/cellspacing", 10); // 기본값 설정
  2753. }
  2754. }
  2755. // 세로 간격 설정 처리
  2756. if(isSearchString(degnattrval, "ctrl.vcellusermode") == true)
  2757. {
  2758. var vcellspacing = getStyleValue(degnattrval, "ctrl.subvcellspacing");
  2759. if(getStyleValue(degnattrval, "ctrl.vcellusermode") == "on") // 직접입력 처리
  2760. {
  2761. model.setValue("/root/temp/vallistdetail/vcellspacing", "user");
  2762. model.setValue("/root/temp/vallistdetail/inputvcellsp", vcellspacing);
  2763. input7.attribute("visibility") = "visible";
  2764. input7.disabled = "false";
  2765. }
  2766. else
  2767. {
  2768. var vcellspacing = getStyleValue(degnattrval, "ctrl.subvcellspacing");
  2769. model.setValue("/root/temp/vallistdetail/vcellspacing", vcellspacing);
  2770. }
  2771. }
  2772. else
  2773. {
  2774. if(isSearchString(degnattrval, "ctrl.subvcellspacing") == true)
  2775. {
  2776. var vcellspacing = getStyleValue(degnattrval, "ctrl.subvcellspacing");
  2777. model.setValue("/root/temp/vallistdetail/vcellspacing", vcellspacing);
  2778. }
  2779. else
  2780. {
  2781. model.setValue("/root/temp/vallistdetail/vcellspacing", 0); // 기본값 설정
  2782. }
  2783. }
  2784. // 밸류리스트 정렬(cols값 설정)
  2785. var nodeset = grd_pltte.attribute("nodeset");
  2786. var selRow = grd_pltte.row;
  2787. model.setValue("/root/hidden/arrange/cols", getStyleValue(model.getValue(nodeset + "[" + selRow + "]/degnattrval"), "cols"));
  2788. grup_cell.attribute("left") = "300px";
  2789. grup_cell.attribute("top") = "325px";
  2790. grup_cell.attribute("visibility") = "visible";
  2791. grup_cell.refresh();
  2792. }
  2793. catch(e)
  2794. {
  2795. }
  2796. }
  2797. function fChgValueSize()
  2798. {
  2799. try
  2800. {
  2801. var pageInfo = new PAGEINFO();
  2802. var valsub = model.getValue("/root/temp/vallistdetail/cellspacing");
  2803. var valsubv = model.getValue("/root/temp/vallistdetail/vcellspacing");
  2804. // 가로 아이템 간격 처리 cellspacing
  2805. if(valsub == "user") // 사용자가 직접 입력을 선택함.
  2806. {
  2807. input8.attribute("visibility") = "visible";
  2808. input8.disabled = "false";
  2809. }
  2810. else
  2811. {
  2812. input8.attribute("visibility") = "hidden";
  2813. input8.disabled = "true";
  2814. }
  2815. // 세로 아이템 간격 처리 vcellspacing
  2816. if(valsubv == "user") // 사용자가 직접 입력을 선택함.
  2817. {
  2818. input7.attribute("visibility") = "visible";
  2819. input7.disabled = "false";
  2820. }
  2821. else
  2822. {
  2823. input7.attribute("visibility") = "hidden";
  2824. input7.disabled = "true";
  2825. }
  2826. model.refresh();
  2827. grup_cell.refresh();
  2828. }
  2829. catch(e)
  2830. {
  2831. }
  2832. }
  2833. function fSetValueCtrl()
  2834. {
  2835. try
  2836. {
  2837. var pageInfo = new PAGEINFO();
  2838. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  2839. var degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2840. var labelvisible = model.getValue("/root/temp/vallistdetail/labelvisible"); // on: 보이기 off: 숨기기
  2841. // 밸류리스트 서브아이템 간격 처리
  2842. ////////////////////////////////////////////////////
  2843. // 밸류리스트 서브아이템 라벨 보이기/숨기기 처리
  2844. if(isSearchString(degnattrval, "ctrl.sublabel") == true)
  2845. {
  2846. var oldlabelon = "ctrl.sublabel:" + getStyleValue(degnattrval, "ctrl.sublabel");
  2847. var newlabelon = "ctrl.sublabel:" + labelvisible;
  2848. degnattrval = degnattrval.setReplaceWord(oldlabelon, newlabelon);
  2849. }
  2850. else
  2851. {
  2852. ctrltype = "ctrl.sublabel:" + labelvisible + ";";
  2853. degnattrval += ctrltype;
  2854. }
  2855. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2856. degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2857. ////////////////////////////////////////////////////
  2858. ////////////////////////////////////////////////////
  2859. // 아이템 가로간격 적용 처리
  2860. var valsub = model.getValue("/root/temp/vallistdetail/cellspacing");
  2861. var subcellspacing = "";
  2862. if(valsub == "user") // 사용자가 직접 선택
  2863. {
  2864. subcellspacing = model.getValue("/root/temp/vallistdetail/inputcellsp");
  2865. model.makeValue("/root/temp/vallistdetail/cellusermode", "true");
  2866. if(isSearchString(degnattrval, "ctrl.cellusermode") == true)
  2867. {
  2868. var oldmode = "ctrl.cellusermode:" + getStyleValue(degnattrval, "ctrl.cellusermode");
  2869. var newmode = "ctrl.cellusermode:on";
  2870. degnattrval = degnattrval.setReplaceWord(oldmode, newmode);
  2871. }
  2872. else
  2873. {
  2874. ctrltype = "ctrl.cellusermode:on;";
  2875. degnattrval += ctrltype;
  2876. }
  2877. }
  2878. else
  2879. {
  2880. subcellspacing = valsub;
  2881. model.makeValue("/root/temp/vallistdetail/cellusermode", "false");
  2882. if(isSearchString(degnattrval, "ctrl.cellusermode") == true)
  2883. {
  2884. var oldmode = "ctrl.cellusermode:" + getStyleValue(degnattrval, "ctrl.cellusermode");
  2885. var newmode = "ctrl.cellusermode:off";
  2886. degnattrval = degnattrval.setReplaceWord(oldmode, newmode);
  2887. }
  2888. else
  2889. {
  2890. ctrltype = "ctrl.cellusermode:off;";
  2891. degnattrval += ctrltype;
  2892. }
  2893. }
  2894. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2895. degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2896. // 아이템 간격값을 degnitemattrval 에 설정함.
  2897. if(isSearchString(degnattrval, "ctrl.subcellspacing") == true)
  2898. {
  2899. var oldspacing = "ctrl.subcellspacing:" + getStyleValue(degnattrval, "ctrl.subcellspacing");
  2900. var newspacing = "ctrl.subcellspacing:" + subcellspacing;
  2901. degnattrval = degnattrval.setReplaceWord(oldspacing, newspacing);
  2902. }
  2903. else
  2904. {
  2905. ctrltype = "ctrl.subcellspacing:" + subcellspacing + ";";
  2906. degnattrval += ctrltype;
  2907. }
  2908. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2909. ////////////////////////////////////////////////////
  2910. ////////////////////////////////////////////////////
  2911. // 아이템 세로간격 적용 처리
  2912. var valsubv = model.getValue("/root/temp/vallistdetail/vcellspacing");
  2913. var subvcellspacing = "";
  2914. if(valsubv == "user") // 사용자가 직접 선택
  2915. {
  2916. subvcellspacing = model.getValue("/root/temp/vallistdetail/inputvcellsp");
  2917. model.makeValue("/root/temp/vallistdetail/vcellusermode", "true");
  2918. if(isSearchString(degnattrval, "ctrl.vcellusermode") == true)
  2919. {
  2920. var oldmode = "ctrl.vcellusermode:" + getStyleValue(degnattrval, "ctrl.vcellusermode");
  2921. var newmode = "ctrl.vcellusermode:on";
  2922. degnattrval = degnattrval.setReplaceWord(oldmode, newmode);
  2923. }
  2924. else
  2925. {
  2926. ctrltype = "ctrl.vcellusermode:on;";
  2927. degnattrval += ctrltype;
  2928. }
  2929. }
  2930. else
  2931. {
  2932. subvcellspacing = valsubv;
  2933. model.makeValue("/root/temp/vallistdetail/vcellusermode", "false");
  2934. if(isSearchString(degnattrval, "ctrl.vcellusermode") == true)
  2935. {
  2936. var oldmode = "ctrl.vcellusermode:" + getStyleValue(degnattrval, "ctrl.vcellusermode");
  2937. var newmode = "ctrl.vcellusermode:off";
  2938. degnattrval = degnattrval.setReplaceWord(oldmode, newmode);
  2939. }
  2940. else
  2941. {
  2942. ctrltype = "ctrl.vcellusermode:off;";
  2943. degnattrval += ctrltype;
  2944. }
  2945. }
  2946. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2947. degnattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval");
  2948. // 세로 아이템 간격값을 degnitemattrval 에 설정함.
  2949. if(isSearchString(degnattrval, "ctrl.subvcellspacing") == true)
  2950. {
  2951. var oldvspacing = "ctrl.subvcellspacing:" + getStyleValue(degnattrval, "ctrl.subvcellspacing");
  2952. var newvspacing = "ctrl.subvcellspacing:" + subvcellspacing;
  2953. degnattrval = degnattrval.setReplaceWord(oldvspacing, newvspacing);
  2954. }
  2955. else
  2956. {
  2957. ctrltype = "ctrl.subvcellspacing:" + subvcellspacing + ";";
  2958. degnattrval += ctrltype;
  2959. }
  2960. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2961. ////////////////////////////////////////////////////
  2962. ////////////////////////////////////////////////////
  2963. // 밸류리스트 정렬(cols값 적용)
  2964. degnattrval = setStyleValue(degnattrval, "cols", model.getValue("/root/hidden/arrange/cols"));
  2965. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/degnattrval", degnattrval);
  2966. ////////////////////////////////////////////////////
  2967. model.setValue("/root/temp/vallistdetail/labelvisible", "");
  2968. model.setValue("/root/temp/vallistdetail/cellspacing", "");
  2969. model.setValue("/root/temp/vallistdetail/inputcellsp", "");
  2970. model.makeValue("/root/temp/vallistdetail/cellusermode", "false");
  2971. model.setValue("/root/temp/vallistdetail/vcellspacing", "");
  2972. model.setValue("/root/temp/vallistdetail/inputvcellsp", "");
  2973. model.makeValue("/root/temp/vallistdetail/vcellusermode", "false");
  2974. model.refresh();
  2975. grup_cell.refresh();
  2976. }
  2977. catch(e)
  2978. {
  2979. }
  2980. }
  2981. function fCanvasPrint()
  2982. {
  2983. try
  2984. {
  2985. var imgprint = model.getValue("/root/temp/printoption/imgprint");
  2986. var paperprint = model.getValue("/root/temp/printoption/paperprint");
  2987. var savefolder = model.getValue("/root/temp/printoption/savefolder");
  2988. // 캔버스 사이즈 넓히기
  2989. canvas.window.width += 100;
  2990. canvas.window.height +=100;
  2991. if(imgprint == "Y")
  2992. {
  2993. var formcd = model.getValue("/root/main/forminfo/formmast/formcd");
  2994. var formnm = model.getValue("/root/main/forminfo/formmast/formnm");
  2995. var formextnnm = model.getValue("/root/main/forminfo/formmast/formextnnm");
  2996. var imgpath = "";
  2997. if(formextnnm != "" && formextnnm != "-")
  2998. {
  2999. //imgpath = "c:\\" + formcd + "-" + formnm + "-" + formextnnm + ".jpg";
  3000. imgpath = savefolder + "\\" + formcd + "-" + formnm + "-" + formextnnm + ".jpg";
  3001. }
  3002. else
  3003. {
  3004. //imgpath = "c:\\" + formcd + "-" + formnm + ".jpg";
  3005. imgpath = savefolder + "\\" + formcd + "-" + formnm + ".jpg";
  3006. }
  3007. canvas.window.imageprint(imgpath); // 이미지로 출력
  3008. }
  3009. if(paperprint == "Y")
  3010. {
  3011. canvas.window.print(); // 프린트 출력
  3012. }
  3013. }
  3014. catch(e)
  3015. {
  3016. }
  3017. }
  3018. function fSelectForm()
  3019. {
  3020. if(!isDataCell())
  3021. return;
  3022. iRow = grd_prtformlist.row;
  3023. if(iRow < 1){
  3024. return;
  3025. }
  3026. var formcd = model.getValue("/root/print/formlist[" + iRow + "]/formcd");
  3027. model.makeValue("/root/main/forminfo/formmast/formnm", "/" + formcd);
  3028. ipt_formnm.refresh();
  3029. setParameter("SPMRF1300_formnm", ipt_formnm.currentText);
  3030. btn_formlist.dispatch("onclick");
  3031. }
  3032. /**
  3033. * @desc : EMR부서콤보 조회
  3034. * @
  3035. * @param : ref - reference path
  3036. * rsltref - result reference path
  3037. * orddeptflag- 진료과구분
  3038. * @return :
  3039. * @author : 오지훈
  3040. * @---------------------------------------------------
  3041. */
  3042. function mmbfGetDeptCodeComboList(ref, rsltref, orddeptflag, stnddd){
  3043. var mmb_rsltref = "/root/hidden/mmb/orddept";
  3044. model.removeNode(mmb_rsltref);
  3045. model.makeNode(mmb_rsltref);
  3046. model.removeNode(ref);
  3047. model.makeValue(ref + "/orddeptflag", orddeptflag);
  3048. if(stnddd != ""){
  3049. model.makeValue(ref + "/stnddd", stnddd);
  3050. }
  3051. if(submit("TRMMB04101", "false", ref, mmb_rsltref)==true){
  3052. model.copyNode(rsltref, mmb_rsltref);
  3053. model.removeNode(mmb_rsltref);
  3054. }
  3055. model.refresh();
  3056. }
  3057. /**
  3058. * @desc : 서식 리스트 조회
  3059. * @
  3060. * @param : ref - reference path
  3061. * rsltref - result reference path
  3062. * ocrtype- ocrtype
  3063. * @return :
  3064. * @author : 주희경 (2010.01.18)
  3065. * @---------------------------------------------------
  3066. */
  3067. function mrffGetHelpComboList(ref, resultref, ocrtype)
  3068. {
  3069. model.makeValue(ref + "/formtypecls", ocrtype);
  3070. submit("TRMRF05303", "false", ref, resultref);
  3071. cmb_helplist.refresh();
  3072. }
  3073. /**
  3074. * @desc : help아이템의 help 링크 설정
  3075. * @
  3076. * @param : formcd
  3077. * @return :
  3078. * @author : 주희경 (2010.01.18)
  3079. * @---------------------------------------------------
  3080. */
  3081. function fSetHelpType( formcd )
  3082. {
  3083. var pageInfo = new PAGEINFO();
  3084. var idx = grd_pltte.row - grd_pltte.fixedRows + 1;
  3085. var itemattrval = model.getValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval");
  3086. itemattrval = setStyleValue(itemattrval, "formcd", formcd);
  3087. model.setValue(pageInfo.formdegnRef + "[" + idx + "]/itemattrval", itemattrval);
  3088. grd_pltte.refresh();
  3089. }
  3090. /**
  3091. * @desc : EMR부서별 다건의 서식 자동 출력 관련 폼데이터 조회
  3092. * @
  3093. * @param : formcd
  3094. * @return :
  3095. * @author : hkjoo
  3096. * @---------------------------------------------------
  3097. */
  3098. function fSrchForm( formcd )
  3099. {
  3100. model.setValue("/root/hidden/condition/formflag", "formcd");
  3101. model.setValue("/root/hidden/condition/formnm", formcd);
  3102. var sTmp = "";
  3103. var iTmp = 0;
  3104. ///////////////////////////////////
  3105. // form코드 입력시 자릿수 채워준다
  3106. var iCodeLength = formcd.length;
  3107. if(iCodeLength ==0){
  3108. return;
  3109. }else if(iCodeLength > 10){
  3110. return;
  3111. }
  3112. var temp = 10 - iCodeLength
  3113. for(var i = 1; i <= temp; i++){
  3114. sTmp += "0";
  3115. }
  3116. sTmp = sTmp + formcd;
  3117. model.setValue("/root/hidden/condition/formnm",sTmp);
  3118. //
  3119. //////////////////////////////////////
  3120. submit("TRMRF01301");
  3121. }
  3122. /**
  3123. * @desc : EMR부서별 다건의 서식 자동 출력 관련 폼아이템데이터 조회
  3124. * @
  3125. * @param : formcd
  3126. * @return :
  3127. * @author : hkjoo
  3128. * @---------------------------------------------------
  3129. */
  3130. function fAppFormToPltte( formcd )
  3131. {
  3132. model.makeValue("/root/send/req/formcd", formcd);
  3133. model.makeValue("/root/send/req/formdegnseq", "");
  3134. model.makeValue("/root/send/req/extnunitformlistyn", "N");
  3135. model.makeValue("/root/send/req/cashedformdegnseq", "");
  3136. model.makeValue("/root/send/req/sysformrecdt", "");
  3137. model.makeValue("/root/send/req/mode", "D");
  3138. submit("TRMRF02001");
  3139. copyNode(model, model, "/root/main/forminfo", "/root/temp/forminfo");
  3140. model.removenode("/root/temp/forminfo");
  3141. }
  3142. //2010.04.08, 주희경
  3143. //공유 해제 저장만 따로 분리
  3144. function fSetReadonly()
  3145. {
  3146. //공유해제로 저장 하기 전 현재 서식이 최신 서식인지 degnseq를 체크한다, 2010.04.08, 주희경
  3147. //현재 공유 해제 상태인지도 체크
  3148. if ( fChkDegnSeq() ) //최신 degnseq를 가지고 있고 공유해제 상태가 아닐때
  3149. {
  3150. var readonlyyn = model.getValue("/root/main/forminfo/readonlylist/readonlyyn");
  3151. var result = 0;
  3152. if ( readonlyyn == "N" )
  3153. {
  3154. result = window.alert("저장하지 않고 공유해제 취소 시에는 저장 정보가 날라갑니다. 계속하시겠습니까?", "정보 소멸 경고", 4 | 32 | 256);
  3155. if(result == 7) {
  3156. model.setValue("/root/main/forminfo/readonlylist/readonlyyn", "Y");
  3157. chk_readonlyyn.refresh();
  3158. return;
  3159. }
  3160. readonlyyn = "N";
  3161. }
  3162. else if ( readonlyyn == "Y" )
  3163. {
  3164. result = window.alert("공유해제 하시겠습니까?", "공유 해제 알림", 4 | 32 | 256);
  3165. }
  3166. if(result == 7) //no
  3167. {
  3168. model.setValue("/root/main/forminfo/readonlylist/readonlyyn", "N");
  3169. chk_readonlyyn.refresh();
  3170. }
  3171. else if ( result == 6 ) //yes
  3172. {
  3173. //공유해제 저장
  3174. var formcd = model.getValue("/root/main/forminfo/formmast/formcd");
  3175. model.makeValue("/root/send/req/formcd",formcd);
  3176. model.makeValue("/root/send/req/readonlyyn",readonlyyn);
  3177. submit("TXMRF02003");
  3178. }
  3179. }
  3180. }