123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782 |
- <?xml version="1.0" encoding="EUC-KR"?>
- <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
- <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
- <xhtml:head>
- <xhtml:title>CPG 색인관리</xhtml:title>
- <model id="model1">
- <instance id="instance1">
- <root xmlns="">
- <main>
- <formdata>
- <item>
- <status/>
- <indxno/>
- <indxnm/>
- <supindxno/>
- <indxrefseq/>
- <depth/>
- <indxseq/>
- <cpgno/>
- <cpghistseq/>
- <image/>
- <cpgflagcd/>
- </item>
- <cpinfo>
- <appdd/>
- <cpgno/>
- <cpghistseq/>
- <purpose/>
- </cpinfo>
- </formdata>
- <indxlist>
- <itemlist>
- <item>
- <status/>
- <indxno/>
- <indxnm/>
- <supindxno/>
- <indxrefseq/>
- <depth/>
- <indxseq/>
- <cpgno/>
- <cpghistseq/>
- <image/>
- <cpgflagcd/>
- </item>
- </itemlist>
- <popupmenu>
- <tree>
- <supmenu>
- <name>새폴더</name>
- <func>fFolderAdd</func>
- </supmenu>
- <supmenu>
- <name>-</name>
- <func/>
- </supmenu>
- <supmenu>
- <name>폴더붙여넣기</name>
- <func>fPasteFolder</func>
- </supmenu>
- <!--
- <supmenu>
- <name>색인 추가</name>
- <func>fIndxAdd</func>
- </supmenu>
- -->
- <submenu>
- <name>새폴더</name>
- <func>fFolderAdd</func>
- </submenu>
- <submenu>
- <name>이름바꾸기</name>
- <func>fFolderSet</func>
- </submenu>
- <submenu>
- <name>삭제</name>
- <func>fFolderDel</func>
- </submenu>
- <submenu>
- <name>-</name>
- <func/>
- </submenu>
- <submenu>
- <name>폴더복사</name>
- <func>fCopyFolder</func>
- </submenu>
- <!--
- <submenu>
- <name>색인 추가</name>
- <func>fIndxAdd</func>
- </submenu>
- -->
- <indxmenu>
- <name>미등록변경</name>
- <func>fIndxSet</func>
- </indxmenu>
- <indxmenu>
- <name>종료변경</name>
- <func>fToEndIndxSet</func>
- </indxmenu>
- <indxmenu>
- <name>-</name>
- <func/>
- </indxmenu>
- <indxmenu>
- <name>삭제</name>
- <func>fIndxDel</func>
- </indxmenu>
- <tmpindxmenu>
- <name>등록변경</name>
- <func>fTmpIndxSet</func>
- </tmpindxmenu>
- <tmpindxmenu>
- <name>종료변경</name>
- <func>fToEndIndxSet</func>
- </tmpindxmenu>
- <tmpindxmenu>
- <name>-</name>
- <func/>
- </tmpindxmenu>
- <tmpindxmenu>
- <name>삭제</name>
- <func>fIndxDel</func>
- </tmpindxmenu>
- <endindxmenu>
- <name>종료취소</name>
- <func>fFromEndIndxSet</func>
- </endindxmenu>
- <endindxmenu>
- <name>-</name>
- <func/>
- </endindxmenu>
- <endindxmenu>
- <name>삭제</name>
- <func>fIndxDel</func>
- </endindxmenu>
- </tree>
- </popupmenu>
- </indxlist>
- <indexinfo>
- <item/>
- </indexinfo>
- <srcindxinfo>
- <itemlist/>
- </srcindxinfo>
- </main>
- <hidden/>
- <send/>
- <init/>
- <temp>
- <copysset>
- <!--
- <copy>
- <item/>
- </copy>
- -->
- <copyfolderinfo>
- <item/>
- </copyfolderinfo>
- </copysset>
- <supindx>
- <supindxno/>
- </supindx>
- <reqdata>
- <cpgno/>
- <cpghistseq/>
- <cpgflagcd/>
- <cpgnm/>
- <selectindxcd/>
- <selectindxnm/>
- </reqdata>
- <selecedkind>
- <kind/>
- </selecedkind>
- <savedfolder>
- <item>
- <indxno/>
- <indxseq/>
- <supindxno/>
- <indxrefseq/>
- <indxnm/>
- </item>
- </savedfolder>
- <openeruid/>
- <indxdelyn>N</indxdelyn>
- </temp>
- </root>
- </instance>
- <script type="javascript" ev:event="xforms-ready">
- <![CDATA[
- //fInitialize();
- ]]>
- </script>
- <submission id="TRMMP01501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/srcindxinfo/itemlist"/>
- <submission id="TXMMP01501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/temp/savedfolder"/>
- <submission id="TXMMP01502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/srcindxinfo/itemlist"/>
- <submission id="TXMQP00601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp/masterinfo"/>
- </model>
- <script type="javascript" src="../../../com/commonweb/js/common.js"/>
- <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
- <script type="javascript">
- <![CDATA[
- var folderImg = "../../../com/commonweb/images/icon_folder_close.gif";
- var fileImg = "../../../com/commonweb/images/icon_list.gif";
- var selectIndxCd = model.getValue("/root/temp/reqdata/selectindxcd");
- var flagcd = "";
- var itemRef = "/root/main/indxlist/itemlist/item";
- var iFocusIndx;
- var preItem;
- var preindx;
- var sIndxNo = "";
- var tIndxNo = "";
- var appCpYN = "N";
-
- //초기화 및 색인을 조회한다.
- function fInitialize() {
- model.removeNodeset("/root/temp/setdata/item");
- model.removeNodeset("/root/temp/poollist/pool/item");
- treeview1.refresh();
-
- model.removeNodeset("/root/temp/reqdata");
- copyNodeListType("/root/temp", "/root/temp/reqdata", "after", model, opener.model);
- selectIndxCd = model.getValue("/root/temp/reqdata/selectindxcd");
- flagcd = model.getValue("/root/temp/reqdata/cpgflagcd");
-
- if( instance1.selectSingleNode("/root/temp/reqdata/reqdata") != null ){
-
- if( !isNull("/root/temp/reqdata/reqdata/cpgno") ){
- model.resetInstanceNode("/root/send/reqdata");
- model.copyNode("/root/send/reqdata", "/root/temp/reqdata/reqdata");
- model.setValue("/root/temp/reqdata/selectindxcd", selectIndxCd);
-
- submit("TXMMP01501", false);
- }
- }
-
- fGetIndxList("A");
-
- if( instance1.selectSingleNode("/root/temp/reqdata/selectindxcd") ){
- model.setValue("/root/temp/reqdata/selectindxcd", selectIndxCd);
- model.refresh();
- }
- }
-
- //CP/CPG 색인을 조회한다.
- function fGetIndxList(flag) {
- //opener 에서 받아온 cpgflagcd 를 input 으로 한다.
- //model.resetInstanceNode("/root/send/reqdata");
- model.removeNodeset("/root/send/reqdata");
- model.makeNode("/root/send/reqdata");
-
- model.resetInstanceNode("/root/main/indxlist/itemlist");
- model.copyNode("/root/send/reqdata", "/root/temp/reqdata");
-
- model.makeValue("/root/send/reqdata/authflag", opener.model.getValue("/root/main/search_cond/authflag") );
-
- if( opener.model.getValue("/root/main/search_cond/authflag") != "M" && !isNull(opener.model.getValue("/root/main/search_cond/cpgorddeptcd")) ){
- model.makeValue("/root/send/reqdata/cpgorddeptcd", opener.model.getValue("/root/main/search_cond/cpgorddeptcd"));
- model.makeValue("/root/send/reqdata/cpgorddeptnm", opener.cmb_cpgorddeptcd.label);
- }else{
- model.makeValue("/root/send/reqdata/cpgorddeptcd", "");
- }
-
- /*if(flag == "F"){
- model.makeValue("/root/send/reqdata/cpgflagcd", opener.model.getValue("/root/main/search_cond/cpgflagcd"));
- }else if(flag == "A" || flag == "ALL" || isNull(flag) ){
- model.makeValue("/root/send/reqdata/cpgflagcd", "ALL");
- //model.makeValue("/root/send/reqdata/authdept", opener.window.javascript.dutPlceCd );
- }*/
- model.makeValue("/root/send/reqdata/cpgflagcd", opener.model.getValue("/root/main/search_cond/cpgflagcd")); //flag에 상관없이 조건에 맞는 리스트를 조회하도록 2010.04.07
-
- model.makeValue("/root/send/reqdata/mode", "A" ); //all index list
-
- //[요청번호: 11937] 권한 설정을 병원별로 달리 설정하여 부여하도록 변경함에 따라 미등록CP도 함께 조회 (2010.03.26 JJE)
- if(opener.window.javaScript.checkAuth("X") ){
- //model.makeValue("/root/send/reqdata/tmpyn", opener.model.getValue("/root/main/search_cond/tmpyn") );
- //model.makeValue("/root/send/reqdata/delyn", opener.model.getValue("/root/main/search_cond/delyn") );
- model.makeValue("/root/send/reqdata/tmpyn", "Y" );
- model.makeValue("/root/send/reqdata/delyn", "Y" );
- }
-
- if( submit("TRMMP01501") ){
- // 조회 결과를 /root/main/indxlist/itemlist 로 복사
- model.copyNode("/root/main/indxlist/itemlist", "/root/main/srcindxinfo/itemlist");
- treeview1.rebuild();
- fImageMapping();
- model.setValue("/root/temp/reqdata/cpgflagcd", flagcd);
-
- if( opener.model.getValue("/root/main/search_cond/authflag") == "M" ){
- //2008.12.13 색인 삭제 후 삭제된 색인의 진료과 폴더로 focus 이동
- if( model.getValue("/root/temp/indxdelyn") == "Y" ){
- var selSupIndxNo = model.getValue("/root/main/indexinfo/item/supfolderno");
- }else{
- var selSupIndxNo = "1";
- }
-
- //관리자 모드일 경우, 모든 폴더를 닫고, 미등록 폴더만 펼친다
- var treeNodeList = instance1.selectNodes("/root/main/indxlist/itemlist/item");
- for( var i=treeNodeList.length; i>0; i--){
- if( model.getValue("/root/main/indxlist/itemlist/item[" + i + "]/indxno") == selSupIndxNo ){
- treeview1.expand((i-1), true);
- return;
- }
- }
- }else{
- //조회 모드일 경우, 해당과 폴더만 펼친다
- treeview1.expandDepth = 1;
-
- //사용자(진료의)가 마스터 권한을 갖을 때, 미등록, 종료 폴더는 닫힌 상태에서 초기화 (2010.03.30 JJE)
- if( opener.window.javascript.checkAuth("X") == true ){
- var tmp_IndxNo = fSrchItemIndxNo("1");
- var del_IndxNo = fSrchItemIndxNo("2");
- if( tmp_IndxNo > 0 ) treeview1.expand(tmp_IndxNo, false);
- if( del_IndxNo > 0 ) treeview1.expand(del_IndxNo, false);
- }
- }
- }
-
- model.setValue("/root/temp/indxdelyn", "N");
- }
-
- //선택한 폴더의 하위 CP/CPG 색인을 조회한다.
- function fGetSubIndxList(indx){
- model.resetInstanceNode("/root/send/reqdata");
- model.resetInstanceNode("/root/main/indxlist/itemlist");
- model.copyNode("/root/send/reqdata", "/root/temp/reqdata");
-
- model.makeValue("/root/send/reqdata/cpgno", indx);
- model.makeValue("/root/send/reqdata/cpgflagcd", opener.model.getValue("/root/main/search_cond/cpgflagcd"));
- model.makeValue("/root/send/reqdata/mode", "S" ); //sub Index list
-
- if( submit("TRMMP01501") ){
- treeview1.rebuild();
- fImageMapping();
- }
- }
-
- //폴더를 추가하는 메뉴그룹을 연다. ( '확인' 이벤트를 실행하면 DB에 저장한다.)
- function fFolderAdd() {
- if(parseInt(event.clientY) > 590 ){
- group2.attribute("top") = "590px";
- } else{
- group2.attribute("top") = event.clientY;
- }
-
- group2.attribute("visibility") ="visible";
- //추가되는 색인의 조회순서는 Default로 선택한 아이템의 가장 마지막 차일드 아이템 조회순서(indxrefseq) + 1 이다.
- var prtIndx = iFocusIndx;
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset");
- var srcLastChildItemIndex = getLastChildItemIndex( prtIndx , treeItemNodeSet );
- var lastNodeSeq = model.getValue(itemRef + "[" + (srcLastChildItemIndex+1) + "]/indxrefseq");
-
- model.setValue("/root/main/formdata/item/indxrefseq", (parseInt(lastNodeSeq) + 1) ); //마지막 노드의 조회순서+1
-
- model.setValue("/root/main/formdata/item/supindxno", model.getValue(itemRef + "[" + (prtIndx + 1) + "]/indxno"));
- model.setValue("/root/main/formdata/item/indxnm", "");
- model.setValue("/root/main/formdata/item/image", folderImg);
- iFocusIndx = prtIndx; //전역변수 iFocusIndx에 포커스인덱스를 넣는다.
- cap_menu.attribute("text") = "폴더명";
- btn_ok.attribute("visibility") = "visible";
- btn_modify.attribute("visibility") = "hidden";
- btn_copyfolder.attribute("visibility") = "hidden";
- input1.refresh();
- input1.disabled = false;
- model.setFocus("input1");
- model.setValue("/root/temp/selecedkind/kind", "F");
- }
-
- //색인 추가하는 메뉴그룹을 연다.
- function fIndxAdd() {
- if(parseInt(event.clientY) > 590 ){
- group2.attribute("top") = "590px";
- } else{
- group2.attribute("top") = event.clientY;
- }
-
- group2.attribute("visibility") = "visible";
-
- //추가되는 색인의 조회순서는 Default로 선택한 아이템의 가장 마지막 차일드 아이템 조회순서(indxrefseq) + 1 이다.
- var prtIndx = iFocusIndx;
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset");
- var srcLastChildItemIndex = getLastChildItemIndex( prtIndx , treeItemNodeSet );
- var lastNodeSeq = model.getValue(itemRef + "[" + (srcLastChildItemIndex+1) + "]/indxrefseq");
- model.setValue("/root/main/formdata/item/indxrefseq", (parseInt(lastNodeSeq) + 1) ); //마지막 노드의 조회순서+1
- model.setValue("/root/main/formdata/item/supindxno", model.getValue(itemRef + "[" + (prtIndx + 1) + "]/indxno"));
- model.setValue("/root/main/formdata/item/indxnm", model.getValue("/root/temp/reqdata/cpgnm"));
- model.setValue("/root/main/formdata/item/cpgflagcd", model.getValue("/root/temp/reqdata/cpgflagcd"));
- model.setValue("/root/main/formdata/item/image", fileImg);
-
- //cpg 검색 그리드에서 cpg를 선택했다면, 그 cpgno를 셋팅
- if(opener.model.getValue("/root/main/search_cond/no") != ""){
- model.setValue("/root/temp/reqdata/cpgno", opener.model.getValue("/root/temp/selected/cpgno"));
- model.setValue("/root/main/formdata/item/cpghistseq", opener.window.javascript.fModifyCpgHistSeq(opener.model.getValue("/root/temp/selected/cpghistseq"))); //임시->9999
- model.setValue("/root/main/formdata/item/indxnm", opener.model.getValue("/root/temp/selected/cpgnm"));
-
- model.setValue("/root/main/formdata/cpinfo/cpgno", model.getValue("/root/temp/reqdata/cpgno"));
- model.setValue("/root/main/formdata/cpinfo/cpghistseq", model.getValue("/root/main/formdata/item/cpghistseq"));
- }
-
- if( !isNull(model.getValue("/root/temp/reqdata/cpgno")) ){
- model.setValue("/root/main/formdata/item/cpgno", model.getValue("/root/temp/reqdata/cpgno"));
- cap_menu.attribute("text") = "색인명";
- btn_ok.attribute("visibility") = "visible";
- btn_modify.attribute("visibility") = "hidden";
- btn_copyfolder.attribute("visibility") = "hidden";
- input1.refresh();
- input1.disabled = true;
- model.setValue("/root/temp/selecedkind/kind", "i");
- }else{
- messageBox("CP를 ", "C002");
- group2.attribute("visibility") = "hidden";
- return;
- }
- }
-
- //폴더를 수정하는 동시에, DB에 저장한다.
- function fFolderSet(){
-
- if( model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/supindxno") == "0" ){
- messageBox("최상위 폴더명은 수정", "E001");
- return;
- }
-
- if(parseInt(event.clientY) > 590 ){
- group2.attribute("top") = "590px";
- } else{
- group2.attribute("top") = event.clientY;
- }
-
- group2.attribute("visibility") = "visible";
- model.setValue("/root/main/formdata/item/indxnm", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/indxnm"));
- input1.refresh();
- cap_menu.attribute("text") = "폴더명";
- btn_ok.attribute("visibility") = "hidden";
- btn_modify.attribute("visibility") = "visible";
- btn_copyfolder.attribute("visibility") = "hidden";
- input1.disabled = false;
- model.setFocus("input1");
- model.setValue("/root/temp/selecedkind/kind", "F");
- }
-
- //물어보는 팝업을 재구성
- function fRefreshMsgBox( purpose ){
- model.setValue("/root/main/formdata/cpinfo/purpose", purpose);
-
- switch ( purpose ){
- case "2" :
- cap_question.attribute("text") = "선택하신 CP의 등록을 취소하시겠습니까?"; //등록->미등록
- cap_appdd.visible = false;
- ipt_appdd.visible = false;
- break;
- case "3" :
- cap_question.attribute("text") = "선택하신 CP의 적용일이 존재하지 않습니다.\n적용일을 등록하시겠습니까?"; //미등록->등록
- cap_appdd.visible = true;
- ipt_appdd.visible = true;
- break;
- case "4" :
- cap_question.attribute("text") = "선택하신 CP의 종료를 취소하시겠습니까?"; //종료->정상
- cap_appdd.visible = false;
- ipt_appdd.visible = false;
- break;
- case "5" :
- cap_question.attribute("text") = "선택하신 CP를 종료하시겠습니까?"; //정상->종료
- cap_appdd.visible = false;
- ipt_appdd.visible = false;
- break;
- }
-
- cap_question.refresh();
- cap_appdd.refresh();
- ipt_appdd.refresh();
- group1.visible = true;
- }
-
- //등록 -> 미등록 변경
- function fIndxSet(){
- /*
- //COPY SET을 뒤져서 해당 노드가 있다면 COPY SET 인스턴스 데이터 바로 수정, 없다면 Y일때는 'U'라는 플래그로 등록, 'N'이라면 트리에서만 수정
- //상태가 'I / U' 이면 COPY SET의 해당 인스턴스 데이터를 수정, 상태가 ' Y'이면 'U'라는 status로 COPY 셋에 등록
- if(parseInt(event.clientY) > 590 ){
- group2.attribute("top") = "590px";
- } else{
- group2.attribute("top") = event.clientY;
- }
- group2.attribute("left") = 100;
- group2.attribute("height") = 55;
- model.setValue("/root/main/formdata/item/indxnm", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/indxnm"));
- input1.refresh();
- cap_menu.attribute("text") = "색인명";
- btn_ok.attribute("visibility") = "hidden";
- btn_modify.attribute("visibility") = "visible";
- input1.disabled = false;
- model.setFocus("input1");
- model.setValue("/root/temp/selecedkind/kind", "i");
- */
- model.makeValue("/root/temp/skiptopcheck", "Y");
- fRefreshMsgBox("2");
- group1.visible = true;
-
- }
-
- //미등록 -> 등록 변경
- function fTmpIndxSet(){
- model.makeValue("/root/temp/skiptopcheck", "Y");
- fRefreshMsgBox("3");
- group1.visible = true;
- }
-
- //종료 -> 종료취소
- function fFromEndIndxSet(){
- model.makeValue("/root/temp/skiptopcheck", "Y");
- fRefreshMsgBox("4");
- group1.visible = true;
- }
-
- //일반 -> 종료
- function fToEndIndxSet(){
- model.makeValue("/root/temp/skiptopcheck", "Y");
- fRefreshMsgBox("5");
- group1.visible = true;
-
- }
-
- //트리 조회 후, 바로 아이템을 체크한다
- function fItemCheck( chkIndx ){
- var indxCnt = treeview1.length;
- var iStatus = "";
- if( chkIndx == null || chkIndx == "" ) {
- //road 시 전체조회 후
- for(var i=1; i<=indxCnt; i++){
- iStatus = model.getValue(itemRef + "[" + i + "]/status");
- if(iStatus == "Y" || iStatus == "i"){
- var indx = parseInt( i ) - 1;
- item = treeview1.item(indx);
- item.checked = true;
- }
- //말단 아이템이 아니라면 폴더 이미지를 설정한다.
- if( model.getValue(itemRef + "[" + i + "]/cpgno") == "0" ){
- model.setValue(itemRef + "[" + i + "]/image", folderImg);
- }
- //depth가 2이상인 폴더 존재시, 상위색인번호가 일치하지 않기 때문에, 최상위폴더 번호로 통일
- /*
- if( model.getValue(itemRef + "[" + i + "]/supindxno") == "0" && model.getValue(itemRef + "[" + i + "]/indxrefseq") == "0" ){
- model.makeValue(itemRef + "[" + i + "]/supfolderno", model.getValue(itemRef + "[" + i + "]/supindxno") );
- }else{
- var supno = model.getValue(itemRef + "[" + i + "]/supindxno");
- model.makeValue(itemRef + "[" + i + "]/supfolderno", model.getValue(itemRef + "[" + i + "]/supfolderno") );
- }
- */
- }
- treeview1.rebuild();
- } else {
- //수동 체크할 경우
- item = treeview1.item( chkIndx );
- item.checked = true;
- }
- }
-
- //아이템에 이미지를 매핑시킨다.
- function fImageMapping() {
- var indxCnt = treeview1.length;
- for(var i = 1; i <= indxCnt; i++){
- //말단 아이템이 아니라면 폴더 이미지를 설정한다.
- if( isNull(model.getValue(itemRef + "[" + i + "]/cpgno")) || model.getValue(itemRef + "[" + i + "]/cpgno") == "0"){
- model.setValue(itemRef + "[" + i + "]/image", folderImg);
- } else {
- model.setValue(itemRef + "[" + i + "]/image", fileImg);
- }
-
- //depth가 2이상인 폴더 존재시, 상위색인번호가 일치하지 않기 때문에, 최상위폴더 번호로 통일
- if( model.getValue(itemRef + "[" + i + "]/supindxno") == "0" && model.getValue(itemRef + "[" + i + "]/cpgno") == "0" ){
- model.makeValue(itemRef + "[" + i + "]/supfolderno", model.getValue(itemRef + "[" + i + "]/indxno") );
- }else{
- //var supno = model.getValue(itemRef + "[" + i + "]/supindxno");
- model.makeValue(itemRef + "[" + i + "]/supfolderno", model.getValue(itemRef + "[" + (i-1) + "]/supfolderno") );
- }
- }
- treeview1.rebuild();
- }
-
- //아이템 이동 시, 체크 상태까지 함께 바꾼다.
- function fMoveCheck( from, to ) {
- var iStatus;
- for(var i=from; i<=to; i++){
- var indx = parseInt( i ) + 1;
- //item = treeview1.item(i);
- iStatus = model.getValue(itemRef + "[" + indx + "]/status");
- if(iStatus == "Y" || iStatus == "i"){
- item = treeview1.item(i);
- item.checked = true;
- } else {
- item = treeview1.item(i);
- item.checked = false;
- }
- if(iStatus == "d"){
- treeview1.item( i ).attribute("color") = "#999999";
- } else {
- treeview1.item( i ).attribute("color") = "#000000";
- }
- }
- }
-
- //두개의 노드셋을 비교한다. (같으면 true, 다르면 false 리턴)
- function fCompareNodes(originalNode, copyNode){
- var ins = document.models( 0 ).instances( 0 );
- var original = ins.selectSingleNode(originalNode).xml;
- var copy = ins.selectSingleNode(copyNode).xml;
- if(original == null || copy == null){
- return false;
- }else if (original == copy){
- return true;
- }else{
- return false;
- }
- }
-
- //색인을 삭제한다.
- function fIndxDel() {
- var focusIndex = iFocusIndx;
- var iRow = parseInt(focusIndex) + 1; //선택한 인스턴스의 인덱스
- var selNo = model.getValue(itemRef + "["+ iRow + "]/indxno");
- var status = model.getValue(itemRef + "["+ iRow + "]/status");
- model.makeValue("/root/temp/skiptopcheck", "Y");
-
- if(status == "i"){
- //DB에 존재하지 않는 신규 인덱스라면, 아이템 바로 삭제
- model.removenode(itemRef + "[" + iRow + "]");
- treeview1.refresh();
- } else {
- model.setValue(itemRef + "["+ iRow + "]/status", "d");
- //treeview1.item( iRow - 1 ).attribute("color") = "#999999";
- //treeview1.refresh();
-
- //바로 데이터 삭제
- var flag = opener.model.getValue("/root/main/search_cond/cpgflagcd");
- model.setValue("/root/temp/indxdelyn", "Y");
- fSaveCpgIndxList();
- fGetIndxList(flag);
- }
- }
-
- //폴더를 삭제한다.
- function fFolderDel() {
- var focusIndex = iFocusIndx;
- var iRow = parseInt(focusIndex) + 1; //선택한 인스턴스의 인덱스
- //바로 데이터를 삭제하는 서브밋을 실행한다.
- if( fSaveFolderIndx( iRow , "d" ) == false ){
- return;
- }
-
- //직접 노드를 삭제
- model.removenode(itemRef + "[" + iRow + "]");
- treeview1.refresh();
- }
-
- //현재 아이템 인덱스의 부모 아이템 인덱스를 반환 한다
- function getParentItemIndex(itemIndex, treeItemNodeSet) {
- var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- var parentDepthValue = curDepthValue - 1;
-
- do {
- itemIndex--;
- curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- } while(curDepthValue != parentDepthValue)
-
- return itemIndex;
- }
-
- //현재 아이템 인덱스의 자식 아이템중 마지막 아이템 인덱스를 반환 한다
- function getLastChildItemIndex(itemIndex, treeItemNodeSet) {
-
- var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- var childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
- while(curDepthValue < childDepthValue) {
- itemIndex++;
- childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
- }
- return itemIndex;
- }
-
- //폴더 색인을 추가/수정/삭제한 경우 바로 저장한다
- function fSaveFolderIndx( indx, status ){
- var curIndxNo = model.getValue(itemRef + "[" + indx + "]/indxno");
- var iSupIndxNo = model.getValue(itemRef + "[" + indx + "]/supindxno");
-
- if( status == "d" ){
- //var curIndxNo = indx+1;
- //하위 CP를 모두 종료CP로 업데이트 하기로 함. 삭제 확인 msg 뜨움. (2008.10.07)
- // ===========> 아직 CP 및 CP색인 update 처리 미개발 (10/10 개발 예정)
- if( instance1.selectSingleNode(itemRef + "[supindxno='"+curIndxNo+"']") != null ){
- if( messageBox ("폴더를 삭제하면 하위 항목이 모두 삭제됩니다.\n\n정말로 폴더를", "Q001") == 7 ){
- group1.visible = false;
- tIndxNo = iFocusIndx;
- return false;
- }
- if( instance1.selectSingleNode(itemRef + "[supindxno='"+curIndxNo+"' and cpgno='0']") != null ){
- messageBox ("하위 폴더가 존재합니다.\n\n하위 폴더를 먼저 삭제", "I008");
- group1.visible = false;
- tIndxNo = iFocusIndx;
- return false;
- }
- }
- }
-
- model.removeNodeset("/root/send");
- //model.resetInstanceNode("/root/temp/savedfolder/item");
- model.removeNodeset("/root/temp/savedfolder/item"); //조회해온 데이터 받아올 인스턴스
- model.makeNode("/root/temp/savedfolder/item");
- model.makeNode("/root/send/reqdata");
- model.copyNode("/root/send/reqdata", itemRef + "[" + parseInt(indx) +"]");
-
- model.makeValue("/root/send/reqdata/status", status );
- if( submit("TXMMP01501", false) ){
- if( status == "d" ){
- //삭제시에는 tree 전체 재조회
- fGetIndxList("A");
-
- //focus 진료과 폴더로 지정
- var treeNodeList = instance1.selectNodes("/root/main/indxlist/itemlist/item");
- for( var i=treeNodeList.length; i>0; i--){
- if( model.getValue("/root/main/indxlist/itemlist/item[" + i + "]/indxno") == iSupIndxNo ){
- treeview1.expand((i-1), true);
- return false; //fSaveFolderIndx()를 호출한 func에 false return 시, 다시 rebuild 하는 것을 막음.
- }
- }
-
- }else{
- if( instance1.selectSingleNode("/root/temp/savedfolder/item/indxno") != null ){
- model.setValue(itemRef + "[" + parseInt(indx) +"]/indxno", model.getValue("/root/temp/savedfolder/item/indxno"));
- model.setValue(itemRef + "[" + parseInt(indx) +"]/indxnm", model.getValue("/root/temp/savedfolder/item/indxnm"));
- if( status == "u" || status == "i" ){
- model.setValue(itemRef + "[" + parseInt(indx) +"]/status", "");
- }
- treeview1.rebuild();
- }
- }
- }
- }
-
- //Drop 이벤트 시 처리
- function fOnDropEvnt() {
- if( opener.model.getValue("/root/main/search_cond/authflag") == "S" ){
- return false;
- }
-
- // 드래그 시점의 아이템
- var srcIndex = treeview1.selectedIndex;
- var org_srcIndex = srcIndex;
- var org_srcKind = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/image");
- var org_srcDepth = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/depth");
- var org_srcIndxNo = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/indxno"); //색인 no
- var org_srcSupIndxNo = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno"); //상위 indx no
- var org_srcSupFolderNo = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno"); //최상위 폴더 no
- var srcValue = treeview1.item(srcIndex).value;
- sIndxNo = srcIndex;
- if( model.getValue(itemRef + "[" + (srcIndex + 1) + "]/cpgflagcd") == "01" )
- var org_cpgFlag = "CP";
- else if( model.getValue(itemRef + "[" + (srcIndex + 1) + "]/cpgflagcd") == "02" )
- var org_cpgFlag = "CPG";
- else var org_cpgFlag = "폴더";
-
- model.setValue("/root/main/formdata/cpinfo/cpgno", model.getValue(itemRef + "[" + (srcIndex + 1) + "]/cpgno"));
- model.setValue("/root/main/formdata/cpinfo/cpghistseq", model.getValue(itemRef + "[" + (srcIndex + 1) + "]/cpghistseq"));
- model.setValue("/root/main/formdata/cpinfo/purpose", "6"); //이동
-
- // 드롭 시점의 아이템
- var trgIndex = treeview1.mouseRow;
- var org_trgIndex = trgIndex;
- tIndxNo = trgIndex;
- var trgValue = treeview1.item(trgIndex).text;
- var org_trgIndxNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/indxno"); //색인 no
- var org_trgSupIndxNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supindxno"); //상위 indx no
- var org_trgSupFolderNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supfolderno"); //최상위 폴더 no
- var node = instance1.selectSingleNode(itemRef + "[supindxno = '1']");
-
- if(org_srcIndex == org_trgIndex){
- //더블클릭 시, 약간의 이동이 있어 드롭 이벤트를 실행했지만, 같은 index 라면, 더블클릭으로 간주한다
- treeview1.dispatch("ondblclick");
- return false;
- }
-
- if( org_srcDepth == "1"){
- messageBox("최상위 폴더는 하위로 이동할 수", "I004");
- preItem = treeview1.item(trgIndex);
- preItem.attribute("background-color") = "#ffffff";
- return false;
- }
-
- //purpose 처리
- if( org_srcSupFolderNo == "1" ){ //미등록->등록
- /*
- messageBox("임시 파일은 이동할 수", "I004");
- preItem = treeview1.item(trgIndex);
- preItem.attribute("background-color") = "#ffffff";
- return false;
- */
- if( org_srcSupIndxNo == org_trgIndxNo || org_srcSupIndxNo == org_trgSupFolderNo ){
- //model.setValue("/root/main/formdata/cpinfo/purpose", "3");
- //group1.visible = true;
-
- fTmpIndxSet();
- return false;
- }else{
- messageBox("미등록 파일은 다른과로 이동할 수", "I004");
- return false;
- }
-
- }else if( org_trgIndxNo == "1" || org_trgSupFolderNo == "1" ){ //등록->미등록
- fIndxSet();
- /*
- messageBox("미등록 폴더로 이동할 수", "I004");
- preItem = treeview1.item(trgIndex);
- preItem.attribute("background-color") = "#ffffff";
- */
- return false;
-
- }else if( org_srcSupFolderNo == "2" ){ //종료->종료취소
- if( org_srcSupIndxNo == org_trgIndxNo || org_srcSupIndxNo == org_trgSupFolderNo ){
- fFromEndIndxSet();
- return false;
- }else{
- messageBox("종료 파일은 다른과로 이동할 수", "I004");
- return false;
- }
-
- }else if( org_trgIndxNo == "2" || org_trgSupFolderNo == "2" ){ //일반->종료
- fToEndIndxSet();
- return false;
-
- }
-
- if( org_srcSupFolderNo != org_trgSupFolderNo ){
- if( messageBox("선택한 " + org_cpgFlag + "의 진료과 변경을", "Q004") != 6 ){
- return false;
- }
- }else{
- if( messageBox("선택한 " + org_cpgFlag + "의 순서 변경을", "Q004") != 6 ){
- return false;
- }
- }
-
- var num = 0;
- if(org_srcKind == folderImg) {
- var flag = "";
- var nextIndx = srcIndex + 2;
- var org_nextSrcDepth = model.getValue(itemRef + "[" + nextIndx + "]/depth");
- var nextValue;
- var moveItemArray = new Array();
-
- while( flag == "" ){
- if( parseInt(org_srcDepth) < parseInt(org_nextSrcDepth) ){
- nextValue = treeview1.item(nextIndx-1).value;
- moveItemArray[num] = new Array();
- moveItemArray[num][0] = nextIndx-1;
- moveItemArray[num][1] = nextValue;
- num = num + 1;
- nextIndx = nextIndx + 1;
- org_nextSrcDepth = model.getValue(itemRef + "[" + nextIndx + "]/depth");
- } else{
- flag = "end";
- }
- }
- }
-
- var val = fMoveItem(srcIndex, srcValue, trgIndex, trgValue);
- var no_1, no_2;
- //return;
- /* 2008.06.16 DBMS변경->sql변경과 함께, fMoveItem() 변경으로 인해 사용 안함.
- //이동하려는 원본이 폴더인 경우, 이동된 후, 순서를 뒤바꿔 주어야함(3,2,1 순으로 복사되므로, 1,2,3 순으로 재조정 해야함)
- if(srcIndex != trgIndex){
- for(var i=0; i<num-1; i++){
- no_1 = 1;
- no_2 = 1;
- //src(child[])를 다시 찾는다.
- while(moveItemArray[i][1] != model.getValue(itemRef + "[" + no_1 + "]/indxno")){
- no_1++;
- }
- //trg를 다시 찾는다.
- while(org_srcIndxNo != model.getValue(itemRef + "[" + no_2 + "]/indxno")){
- no_2++;
- }
- srcIndex = no_1 - 1;
- srcValue = treeview1.item(srcIndex).text;
- trgIndex = no_2 - 1;
- trgValue = treeview1.item(trgIndex).text;
- fMoveItem(srcIndex, srcValue, trgIndex, trValue);
- if(org_srcIndex < org_trgIndex){
- no_3 = 1;
- while(org_trgIndxNo != model.getValue(itemRef + "[" + no_3 + "]/indxno")){
- no_3++;
- }
- no_3--;
- fChangedRefSeq( parseInt(no_3) );
- }
- }
- }
- */
-
- //드롭 후 변경 내용을 바로 저장한다
- var flag = opener.model.getValue("/root/main/search_cond/cpgflagcd");
- fSaveCpgIndxList();
- fGetIndxList(flag);
- }
-
- //드래그&드롭 시 타겟 인덱스의 PARENTS에 속한 이에템들의 조회순서를 정렬한다.
- function fChangedRefSeq( trgIndx ) {
- /* //2008.06.16 트리 sroting 및 이동에 의한 로직 변경
- var supFolderNo = instance1.selectSingleNode(itemRef+"[indxno = '" + trgIndx + "']/indxno").text;
- var treeItemNodeSet = instance1.selectNodes(itemRef+"[supfolderno = '" + treeItemNodeSet + "']"); // itemRef+ = root/main/indxlist/itemlist/item
- var srcLastChildItemIndex = getLastChildItemIndex(trgIndx, treeItemNodeSet);
- var from = trgIndx + 1; //차일드 아이템 중 첫번째
- var to = srcLastChildItemIndex; //차일드 아이템 중 마지막
- var iStatus = "";
- var newRefSeq = 0;
- for(var i = 0; i< treeItemNodeSet.length; i++) {
- iStatus = model.getValue(itemRef + "["+ ( i + 1 ) + "]/status");
- if( iStatus == "N" || iStatus == "") {
- model.setValue(itemRef + "["+ ( i + 1 ) + "]/status", "u");
- }
- newRefSeq = newRefSeq + 1;
- model.setValue(itemRef + "["+ ( i + 1 ) + "]/indxrefseq", newRefSeq);
- }
- */
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset");
-
- //아래폴더 첫번째 색인->바로위폴더 타겟으로 이동시 전체 순번 매겨지는 문제
- var trgLastChildItemIndex = getLastChildItemIndex(trgIndx, treeItemNodeSet); //getLastChildItemIndex 의심
- var from = trgIndx + 1; //차일드 아이템 중 첫번째
- var to = trgLastChildItemIndex; //차일드 아이템 중 마지막
- //alert( "시작 노드= " + model.getValue(itemRef+"[" + (trgIndx+1) + "]/indxnm") );
- //alert( "마지막 노드= " + model.getValue(itemRef+"[" + (to+1) + "]/indxnm") );
- var iStatus = "";
- var newRefSeq = 0;
- var supIndxNo = instance1.selectSingleNode(itemRef+"[" + from + "]/supindxno").text;
- var iNo = instance1.selectSingleNode(itemRef+"[" + from + "]/indxnm").text;
- if( supIndxNo == "0" ){
- var supIndxRefSeq = 0;
- }else{
- var supIndxRefSeq = parseInt( instance1.selectSingleNode(itemRef+"[" + from + "]/indxrefseq").text );
- }
-
- for(var i = from; i<= to; i++) {
- iStatus = model.getValue(itemRef + "["+ ( i + 1 ) + "]/status");
- if( iStatus == "N" || iStatus == "") {
- model.setValue(itemRef + "["+ ( i + 1 ) + "]/status", "u");
- }
- supIndxRefSeq = supIndxRefSeq + 1;
- model.setValue(itemRef + "["+ ( i + 1 ) + "]/indxrefseq", supIndxRefSeq);
- }
- }
-
- // 드래그 & 드롭 시 아이템의 순서를 바꾼다.
- function fMoveItem(srcIndex, srcValue, trgIndex, trgValue){
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset"); //전체 색인 범위
- var newSupIndxNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supindxno"); //타겟의 상위색인번호
- var newSupFolderNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supfolderno"); //타겟의 최상위색인번호
- var newIndxNo = model.getValue(itemRef + "[" + (trgIndex + 1) + "]/indxno"); //타겟의 색인번호
- var org_srcSupIndxNo = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno"); //원본의 상위색인번호
- var org_srcSupFolderNo = model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno"); //원본의 최상위색인번호
- //소스와 타겟 아이템의 상위인덱스번호를 교환한다.
- var trgNodeDepth = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgIndex + 1 ) + "]/depth") //타겟의 depth
- var subIndxCnt = 0;
- var fYN = "N";
-
- /*-----------------------srcParentIndex, trgParentIndex, srcLastChildItemIndex, trgLastChildItemIndex 구하기 ----------------------*/
-
- //1. 선택한 원본의 부모 폴더 색인
- var srcParentIndex = getParentItemIndex(srcIndex, treeItemNodeSet);
-
- //2. 타겟의 부모 폴더 색인
- if( model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supindxno") == "0" ){
- var trgParentIndex = trgIndex; //타겟이 최상위 폴더일 경우, 엄마 노드를 찾을 필요가 없음
-
- }else if( model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno") != model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supindxno")
- && model.getValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno") == model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supfolderno") ){
- //trgParentIndex = getParentItemIndex(trgParentIndex, treeItemNodeSet); //depth만큼 돌린다...
- var cmp_IndxNo = parseInt(model.getValue(itemRef + "[" + (trgIndex + 1) + "]/supfolderno"));
-
- cnt = fSrchItemIndxNo( cmp_IndxNo );
- //alert( model.getValue(itemRef + "[" + (cnt + 1) + "]/supfolderno") );
- var trgParentIndex = cnt; //타겟이 중간 단계의 폴더일 경우, 상위폴더를 찾으면 안되고, 최상위를 찾아야 함
-
- }else{
- var trgParentIndex = getParentItemIndex(trgIndex, treeItemNodeSet);
- }
-
- if( model.getValue(itemRef + "[" + (srcIndex + 1) + "]/image") == folderImg ){
- fYN = "Y";
- }else{
- fYN = "N";
- }
-
- var srcLastChildItemIndex = getLastChildItemIndex(srcIndex, treeItemNodeSet); // 드래그 아이템이 속한 아이템셋의 마지막 엔덱스
- var trgLastChildItemIndex = getLastChildItemIndex(trgIndex, treeItemNodeSet); // 드롭 아이템이 속한 아이템셋의 마지막 인덱스
-
- /*------------------------------------------------------------------------------------------------------------------------------*/
-
- var srcNodeList = instance1.selectNodes(treeItemNodeSet + "[position() >= " + (srcIndex + 1)+ " and position() <=" + (srcLastChildItemIndex + 1) + "]");
- var srcNode, trgNode, newNode;
- var itemtParentNode = instance1.selectSingleNode(treeItemNodeSet).parentNode;
- var cloneSrcNode;
-
- //소스아이템이 타겟아이템보다 작으면, 소스아이템을 타겟+1에 위치
- if(srcIndex < trgIndex) {
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgIndex + 1 ) + "]");
-
- if(model.getValue(itemRef + "[" + (trgIndex + 1) + "]/image") == fileImg){
- // target 이 파일이면,
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno", newSupIndxNo);
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno", newSupFolderNo);
- var val = trgNodeDepth.value;
- preItem.attribute("background-color") = "#ffffff";
-
- }else{
- // target 이 폴더면,
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno", newIndxNo);
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno", newSupFolderNo);
- trgLastChildItemIndex = parseInt(trgLastChildItemIndex);
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgLastChildItemIndex + 1 ) + "]");
- var val = parseInt(trgNodeDepth.value) + 1; //target의 depth+1
- var curItem = treeview1.item(treeview1.mouseRow);
- curItem.attribute("background-color") = "#ffffff";
- var subIndxNodeList = instance1.selectNodes(itemRef + "[supindxno = '" + srcValue + "']");
- subIndxCnt = subIndxNodeList.length;
- }
-
- // 아이템을 타겟 위치에 복제, 소스 아이템은 삭제한다.
- while(srcNode = srcNodeList.nextNode()) {
- cloneSrcNode = srcNode.cloneNode(true);
- newNode = itemtParentNode.insertAfter(cloneSrcNode, trgNode); //insertAfter
- trgNode = newNode;
- trgNode.childNodes(5).nodeValue = val;
- itemtParentNode.removeChild(srcNode);
- }
- treeview1.refresh();
-
- if( fYN == "Y" ){
- var subIndxNodeList = instance1.selectNodes(itemRef + "[supindxno = '" + srcValue + "']");
- subIndxCnt = subIndxNodeList.length; //원본 폴더의 색인 갯수
- trgIndex = trgIndex - subIndxCnt ; //타겟 위치 - 원본폴더의 색인 갯수(원본 갯수만큼 indx 위치가 줄어든다)
- if(newSupFolderNo != org_srcSupFolderNo ) {
- trgIndex++ ;
- trgParentIndex= trgParentIndex - subIndxCnt - 1; //타겟 부모 indx - 원본폴더의 색인 갯수
- }
- }else{
- if(newSupFolderNo != org_srcSupFolderNo ) {
- trgParentIndex--;
- }
- }
-
- //타겟이 포함된 폴더 전체 조회순서 재조정
- if(model.getValue(itemRef + "[" + (trgIndex-1) + "]/image") != fileImg){
- trgIndex--; //fChangedRefSeq()에서 trgIndex++ 후 사용하므로 trgIndex=현위치-1로 셋팅
- }
-
- fChangedRefSeq( trgParentIndex );
-
- return val;
- }
-
- //소스인덱스가 타겟인덱스보다 크면, 소스아이템을 타겟-1에 위치
- else if(srcIndex > trgIndex) {
- if(model.getValue(itemRef + "[" + (trgIndex + 1) + "]/image") == fileImg){
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno", newSupIndxNo);
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno", newSupFolderNo);
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgIndex + 1 ) + "]");
- var val = trgNodeDepth.value;
- preItem.attribute("background-color") = "#ffffff";
- }else{
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supindxno", newIndxNo);
- model.setValue(itemRef + "[" + (srcIndex + 1) + "]/supfolderno", newSupFolderNo);
- trgLastChildItemIndex = parseInt(trgLastChildItemIndex);
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgLastChildItemIndex + 2 ) + "]");
- var val = parseInt(trgNodeDepth.value) + 1;
- var curItem = treeview1.item(treeview1.mouseRow);
- curItem.attribute("background-color") = "#ffffff";
- }
-
- var count = 0;
- while(srcNode = srcNodeList.nextNode()) {
-
- cloneSrcNode = srcNode.cloneNode(true);
-
- count++;
- if(count == 1){ //이동된 원본의 수가 1개일 때에만, 2개이상일때에는 순서가 역순으로 copy된다
- newNode = itemtParentNode.insertBefore(cloneSrcNode, trgNode); //insertBefore
- }else{
- newNode = itemtParentNode.insertAfter(cloneSrcNode, trgNode);
- }
-
- trgNode = newNode;
- trgNode.childNodes(5).nodeValue = val;
- itemtParentNode.removeChild(srcNode);
- }
- treeview1.refresh();
- /*************************************************************************
- // 2008.06.16 변경
- if(model.getValue(itemRef + "[" + (trgIndex+1) + "]/image") == fileImg ){
- fChangedRefSeq( parseInt(trgIndex) );
- }else{
- fChangedRefSeq( trgParentIndex ); //fChangedRefSeq( parseInt(trgIndex) );
- }
- *************************************************************************/
-
-
- fChangedRefSeq( trgParentIndex ); //fChangedRefSeq( parseInt(trgIndex) );
- return val;
-
- } else {
- return true;
- }
- }
-
- /**
- * @group :
- * @ver : 2007.07
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : item의 값(indxno)으로 아이템의 tree index 위치를 찾아낸다
- * @param : itemVal : 찾으려는 값
- * @return : cnt : 위치
- * @---------------------------------------------------
- */
- function fSrchItemIndxNo( itemVal ){
- var stopYN = "N";
- var cnt = 0;
-
- if( isNull(itemVal) ) return 0;
-
- while( stopYN == "N" && cnt < treeview1.length ){
- if( treeview1.item(cnt).value == itemVal ){
- stopYN = "Y";
- }else{
- cnt++;
- }
- }
- return cnt;
- }
-
- /**
- * @group :
- * @ver : 2007.07
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : status 값이 I 이거나 U 인 것들을 - 상태로 변환한다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fChangeStatus(){
- var nodeList = instance1.selectNodes(itemRef + "[m = 'i' or m = 'u']");
- for(var i= 0; i<nodeList.length; i++){
- var node = nodeList.item(i);
- var statusNode = node.selectSingleNode("m");
- model.setValue(statusNode, "");
- }
- }
-
- /**
- * @group :
- * @ver : 2007.07
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : CP/CPG의 변경 이력을 조회한다. (사용안함)
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetHistList(){
- opener.model.removeNodeset("/root/main/search_cond");
- opener.model.makeNode("/root/main/search_cond");
- opener.model.makeValue("/root/main/search_cond/no", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/cpgno"));
- opener.model.makeValue("/root/main/search_cond/seq", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/cpghistseq"));
- opener.model.makeValue("/root/main/search_cond/cpgflagcd", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/cpgflagcd"));
- opener.model.makeValue("/root/main/search_cond/getflag", "H");
- opener.window.javascript.fGetCpgHist();
- }
-
- /**
- * @group :
- * @ver : 2008.06
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 폴더를 복사한다
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fCopyFolder(){
- model.resetInstanceNode("/root/temp/copysset/copyfolderinfo/item");
- model.copyNode("/root/temp/copysset/copyfolderinfo/item" , itemRef + "[" + (iFocusIndx + 1) + "]");
- }
-
- /**
- * @group :
- * @ver : 2008.06
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 폴더를 붙여넣는다
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fPasteFolder(){
- if( instance1.selectSingleNode("/root/temp/copysset/copyfolderinfo/item/indxno") == null ){
- messageBox("복사하려는 원본 폴더를", "C002");
- return;
- }
-
- if(parseInt(event.clientY) > 590 ){
- group2.attribute("top") = "590px";
- } else{
- group2.attribute("top") = event.clientY;
- }
-
- //group2.attribute("left") = 100;
- group2.attribute("visibility") = "visible";
- cap_menu.attribute("text") = "폴더명";
-
- btn_copyfolder.attribute("visibility") = "visible";
- btn_modify.attribute("visibility") = "hidden";
- btn_ok.attribute("visibility") = "hidden";
-
- /*
- if( isNull(sIndxNo) ){
- sIndxNo = iFocusIndx; //sIndxNo = treeview1.focusIndex;
- }
-
- var selIndxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxno");
- var selSupindxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supindxno");
-
- var srcNodeList = instance1.selectNodes(itemRef + "[supindxno='"+ selIndxno +"']");
- for( var i=0; i<srcNodeList.length; i++ ){
- var node = srcNodeList.item(i);
- var
- }
- */
- }
-
- /**
- * @group :
- * @ver : 2007.07
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : CP/CPG의 변경 이력을 조회한다.
- * @param :
- * @return : true/false
- * @---------------------------------------------------
- */
- function fSaveCpgIndxList( getData ){
- var amountIndxCnt = treeview1.length;
- var iStatus; //트리의 i번째 인덱스의 상태값
- var getindxlistRowCnt = 0; //데스티네이션 인덱스의 컬럼 포인트
- var saveIndxlist = "";
- var saveIndxHeader;
-
- //model.removeNodeset("/root/send/indxlist");
- //model.removeNodeset("/root/send/masterinfo");
- model.removeNodeset("/root/send"); //getData의 정보가 담긴 인스턴스, 아래에서 사용하므로 삭제 안됨
- model.makeNode("/root/send/indxlist");
- model.makeNode("/root/send/masterinfo");
-
- //색인 노드셋을 리퀘스트데이터에 함께 보낸다.
- if( isNull(getData) ){
- model.removeNodeset("/root/main/indexinfo");
- //ivw_indxmngt 의 색인트리에서 변경 데이터만 copy 해온다.
- for(var i = 1; i <= amountIndxCnt; i++){
- iStatus = model.getValue("/root/main/indxlist/itemlist/item[" + i + "]/status");
- if(iStatus == "i" || iStatus == "u" || iStatus == "d") {
- getindxlistRowCnt = getindxlistRowCnt + 1;
- model.makeNode("/root/main/indexinfo/item[" + getindxlistRowCnt + "]");
- copyNodesetType("/root/main/indexinfo/item[" + getindxlistRowCnt + "]", "/root/main/indxlist/itemlist/item[" + i + "]", "replace", model, model);
-
- model.makeValue("/root/temp/reqdata/cpgno", model.getValue("/root/main/formdata/cpinfo/cpgno"));
- model.makeValue("/root/temp/reqdata/cpghistseq", model.getValue("/root/main/formdata/cpinfo/cpghistseq"));
-
- var nodelist = instance1.selectNodes( "/root/main/indexinfo/item[" + getindxlistRowCnt + "]" );
- saveIndxlist = saveIndxlist + "▩" + getNodeListCSV(nodelist).split("▩")[1];
- saveIndxHeader = getNodeListCSV(nodelist).split("▩")[0];
- }
- }
- amountRows = grd_getindxlist.rows;
-
- }else{
-
- var src_supindxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supindxno");
- var trg_supindxno = model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/supindxno");
-
- //임시 폴더에 보이는 cp를 동일부서가 아닌 타부서로 이동할 경우, 색인을 save as(release 를 증가)
- model.makeValue("/root/send/masterinfo/appdd", model.getValue("/root/main/formdata/cpinfo/appdd"));
- model.makeValue("/root/send/masterinfo/cpgno", model.getValue("/root/main/formdata/cpinfo/cpgno"));
- model.makeValue("/root/send/masterinfo/cpghistseq", model.getValue("/root/main/formdata/cpinfo/cpghistseq"));
- model.makeValue("/root/send/masterinfo/nm", ""); //필요없는 값...
-
- saveIndxlist = getData;
- amountRows = 1;
- }
- model.makeValue("/root/send/saveinfo/purpose", model.getValue("/root/main/formdata/cpinfo/purpose")); //2008.06.19 추가
-
- var header = "m▦indxno▦indxnm▦supindxno▦indxrefseq▦depth▦indxseq▦cpgno▦cpghistseq▦image▦cpgflagcd";
-
- if(amountRows > 0 ) {
- model.setValue("/root/send/indxlist", header + saveIndxlist + "▩");
- model.makeValue("/root/send/masterinfo/status", "");
- if( !(isNull(getData)) ){
- model.makeValue("/root/send/masterinfo/status", "u");
- }
- //2줄 주석
- //model.makeValue("/root/send/masterinfo/cpgno", model.getValue("/root/temp/reqdata/cpgno"));
- //model.makeValue("/root/send/masterinfo/cpghistseq", model.getValue("/root/temp/reqdata/cpghistseq"));
- model.makeNode("/root/temp/masterinfo");
-
- if( submit("TXMQP00601", false) ){
- return true;
- } else {
- return false;
- }
- }
- }
- ]]>
- </script>
- </xhtml:head>
- <xhtml:body guideline="2,590;" style="margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
- <treeview id="treeview1" ref="/root/temp/reqdata/selectindxcd" dragmode="true" dropmode="true" expanddepth="0" hasimages="true" itemsettype="depth" style="left:0px; top:0px; width:345px; height:673px; ">
- <itemset nodeset="/root/main/indxlist/itemlist/item">
- <label ref="indxnm"/>
- <value ref="indxno"/>
- <depth ref="depth"/>
- <image ref="image"/>
- <selectedimage/>
- <expandedimage/>
- </itemset>
- <script type="javascript" ev:event="onmousedown">
- <![CDATA[
- if(treeview1.isCell(event.target)) {
- var indx = treeview1.focusIndex;
- var row = treeview1.mouseRow;
- if(indx == -1 || indx != row ){
- treeview1.select(row);
- indx = row;
- }
- iFocusIndx = indx;
-
- //TRMMP01501 실행해서 선택한 색인 하위 데이터를 조회
- //fGetSubIndxList(indx);
-
- //if( opener.model.getValue("/root/main/search_cond/authflag") == "M" ){
- if(opener.window.javaScript.checkAuth("X") ){
- if(event.button == 3){
- //DB에 저장되어 있는 인덱스의 삭제는 체크버튼으로 control한다. 트리상에서 추가된 아이템은 바로 삭제 가능하다.
- if(model.getValue(itemRef + "[" + (indx + 1) + "]/image") == fileImg) {
- model.resetInstanceNode("/root/main/formdata/item");
- if(model.getValue(itemRef + "[" + (indx + 1) + "]/supfolderno") == "1") { // 미등록 색인은 등록변경만 가능하도록! tmpindxmenu
- setPopupMenu("treeview1", false, "/root/main/indxlist/popupmenu/tree/tmpindxmenu", "name", "func", false);
- }else if(model.getValue(itemRef + "[" + (indx + 1) + "]/supfolderno") == "2") { // 미등록 색인은 등록변경만 가능하도록! tmpindxmenu
- setPopupMenu("treeview1", false, "/root/main/indxlist/popupmenu/tree/endindxmenu", "name", "func", false);
- }else{
- setPopupMenu("treeview1", false, "/root/main/indxlist/popupmenu/tree/indxmenu", "name", "func", false);
- }
-
- } else {
- var selIndxNo = model.getValue(itemRef + "[" + (indx + 1) + "]/indxno");
- if( selIndxNo == "1" || selIndxNo == "2" ) {
- return;
- }
- if( model.getValue(itemRef + "[" + (indx + 1) + "]/supindxno") == "0" ) {
- setPopupMenu("treeview1", false, "/root/main/indxlist/popupmenu/tree/supmenu", "name", "func", false);
-
- } else {
- setPopupMenu("treeview1", false, "/root/main/indxlist/popupmenu/tree/submenu", "name", "func", false);
- }
- }
- var itemNode = instance1.selectSingleNode(itemRef + "[" + (indx + 1) + "]");
- var itemNodeDepth = itemNode.depth.text;
- model.resetInstanceNode("/root/main/formdata/item");
-
- model.setValue("/root/main/formdata/item/depth", parseInt(itemNodeDepth) + 1);
- }
- }
- }else{
- window.setPopupMenu(false);
- }
- ]]>
- </script>
- <script type="javascript" ev:event="DOMFocusOut">
- <![CDATA[
- window.setPopupMenu(false);
- ]]>
- </script>
- <!--
- <script type="javascript" ev:event="onchecked">
- <![CDATA[
- var focusIndex = treeview1.focusIndex;
- var iRow = parseInt(focusIndex) + 1; //선택한 인스턴스의 인덱스
- treeview1.select( focusIndex );
- if( ! (treeview1.selectedindex ==-1 ) ){
- if(model.getValue(itemRef + "[" + iRow + "]/image") == fileImg) {
- fCopyIndx( iRow, "chk" );
- } else {
- return;
- }
- }
- ]]>
- </script>
- <script type="javascript" ev:event="onunchecked">
- <![CDATA[
- var focusIndex = treeview1.focusIndex;
- var iRow = parseInt(focusIndex) + 1; //선택한 인스턴스의 인덱스
- treeview1.select( focusIndex );
- if( ! (treeview1.selectedindex ==-1 ) ){
- if(model.getValue("/root/main/indxlist/itemlist/item[" + iRow + "]/image") == fileImg) {
- fCopyIndx( iRow, "unchk" );
- } else {
- return;
- }
- }
- ]]>
- </script>
- -->
- <script type="javascript" ev:event="ondragstart">
- <![CDATA[
- //if( opener.model.getValue("/root/main/search_cond/authflag") == "M" ){
- if(opener.window.javaScript.checkAuth("X") ){
- preItem = treeview1.item(treeview1.mouseRow);
- preindx = treeview1.mouseRow;
- preItem.attribute("background-color") = "#ffffff";
- }
- ]]>
- </script>
- <script type="javascript" ev:event="ondragover">
- <![CDATA[
- //드래그 시, 마우스가 위치한 아이템의 배경 색을 변경해준다.
- curItem = treeview1.item(treeview1.mouseRow);
- var curindx = treeview1.mouseRow;
- if(preindx < curindx){
- preItem.attribute("background-color") = "#ffffff";
- curItem.attribute("background-color") = "#ece1ec";
- preItem = treeview1.item(treeview1.mouseRow);
- } else if(preindx > curindx){
- preItem.attribute("background-color") = "#ffffff";
- curItem.attribute("background-color") = "#ece1ec";
- preItem = treeview1.item(treeview1.mouseRow);
- }
- ]]>
- </script>
- <script type="javascript" ev:event="ondrop">
- <![CDATA[
- //if( opener.model.getValue("/root/main/search_cond/authflag") == "M" ){
- if(opener.window.javaScript.checkAuth("X") ){
- if( !fOnDropEvnt() ){
- //실패 시, 포커스 칼러는 처음 선택했던 색인만 색상 지정
- curItem = treeview1.item(treeview1.mouseRow);
- curItem.attribute("background-color") = "#ffffff";
- }
- }
- ]]>
- </script>
- <script type="javascript" ev:event="ondblclick">
- <![CDATA[
- treeview1.expand(treeview1.focusIndex, false);
-
- // opener 의 uid 로 비교..
- if(model.getValue("/root/temp/openeruid") != ""){
- var i = treeview1.focusIndex + 1;
- if(model.getValue(itemRef + "[" + i + "]/image") == fileImg){
- opener.model.setValue("/root/main/search_cond/getflag", "C"); //CP직접 선택
- opener.model.setValue("/root/main/search_cond/no", model.getValue(itemRef + "[" + i + "]/cpgno"));
- opener.model.setValue("/root/main/search_cond/seq", model.getValue(itemRef + "[" + i + "]/cpghistseq"));
- }else{
- opener.model.setValue("/root/main/search_cond/getflag", "F"); //진료과 폴더 선택
- opener.model.setValue("/root/main/search_cond/no", model.getValue(itemRef + "[" + i + "]/indxno"));
- opener.model.setValue("/root/main/search_cond/seq", model.getValue(itemRef + "[" + i + "]/indxseq"));
- }
-
- // indxno 혹은 supindxno가 1 이면, tmpyn = 'Y'로 셋팅하여 reqdata에 포함
- if( model.getValue(itemRef + "[" + (treeview1.focusIndex + 1) + "]/indxno") == "1" || model.getValue(itemRef + "[" + (treeview1.focusIndex + 1) + "]/supfolderno") == "1"){
- opener.model.makeValue("/root/main/search_cond/tmpyn", "Y");
- }else{
- opener.model.makeValue("/root/main/search_cond/tmpyn", "N");
- }
- // indxno 혹은 supindxno가 2 이면, delyn = 'Y'로 셋팅하여 reqdata에 포함
- if( model.getValue(itemRef + "[" + (treeview1.focusIndex + 1) + "]/indxno") == "2" || model.getValue(itemRef + "[" + (treeview1.focusIndex + 1) + "]/supfolderno") == "2"){
- opener.model.makeValue("/root/main/search_cond/delyn", "Y");
- }else{
- opener.model.makeValue("/root/main/search_cond/delyn", "N");
- }
-
- //opener.model.setValue("/root/main/search_cond/cpgnm", model.getValue(itemRef + "[" + i + "]/indxnm"));
- model.setValue("/root/temp/reqdata/cpgflagcd", model.getValue(itemRef + "[" + i + "]/cpgflagcd"));
- opener.window.javascript.fGetCPGInfo();
-
- opener.model.setValue("/root/main/search_cond/delyn", "N");
- } else {
- return;
- }
- ]]>
- </script>
- </treeview>
- <group id="group2" visibility="hidden" style="left:95px; top:20px; width:221px; height:55px; background-color:#ffffff; border-color:#000000; ">
- <input id="input1" ref="/root/main/formdata/item/indxnm" class="input_default" style="left:67px; top:5px; width:147px; height:14px; border-style:solid; ">
- <script type="javascript" ev:event="onkeyup">
- <![CDATA[
- /*if(btn_modify.attribute("visibility") = "visible" ){
- inputEnterKey("btn_modify", "DOMActivate");
- // } else if(btn_ok.attribute("visibility") = "visible" 1){
- inputEnterKey("btn_ok", "DOMActivate");
- }*/
- ]]>
- </script>
- </input>
- <input id="input2" ref="/root/main/formdata/item/indxrefseq" class="input_default" visibility="hidden" style="left:67px; top:27px; width:57; height:19px; border-style:solid; "/>
- <input id="input3" ref="/root/main/formdata/item/supindxno" class="input_default" visibility="hidden" style="left:9px; top:27px; width:55px; height:19px; border-style:solid; "/>
- <button id="btn_ok" class="btn2_letter2" style="left:127px; top:28px; width:42px; height:19px; ">
- <caption>확인</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //확인버튼1 : 색인저장, 폴더명 수정...
- var iRow = iFocusIndx;
- model.setValue("/root/main/formdata/item/status", "i");
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset");
- var srcLastChildItemIndex = getLastChildItemIndex( iFocusIndx , treeItemNodeSet );
- var roc = parseInt(srcLastChildItemIndex) + 1;
- //새로운 아이템을 추가한다
- var pDesNode = instance1.selectSingleNode("/root/main/indxlist/itemlist");
- var desNode = instance1.selectSingleNode(itemRef + "[" + parseInt(roc) +"]");
- var srcNode = instance1.selectSingleNode("/root/main/formdata/item");
- var cSrcNode = srcNode.cloneNode(true);
- pDesNode.insertAfter(cSrcNode, desNode);
-
- group2.attribute("visibility") = "hidden";
- treeview1.rebuild();
-
- if(model.getValue("/root/temp/selecedkind/kind") == "F"){
- //만일 추가한 아이템이 폴더라면 IndxNo를 얻어오기 위해 저장을 선행한다.
- fSaveFolderIndx( parseInt(roc)+1, "i" );
- treeview1.select( parseInt(roc) );
- var falg = opener.model.getValue("/root/main/search_cond/cpgflagcd");
- fGetIndxList(falg);
- } else {
- //추가한 아이템이 인덱스일 경우는 상태만 바꿔놓고 나중에 일괄 저장한다.
- //새로 생성된 아이템을 선택하고 체크한다.
- treeview1.select( parseInt(roc) );
-
- //드롭 후 변경 내용을 바로 저장한다
- var flag = opener.model.getValue("/root/main/search_cond/cpgflagcd");
- fSaveCpgIndxList();
- fGetIndxList(flag);
- }
- ]]>
- </script>
- </button>
- <button id="btn_modify" class="btn2_letter2" style="left:127px; top:28px; width:42px; height:19px; ">
- <caption>확인</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //확인버튼2 : 폴더 추가.
- var iRow = iFocusIndx;
- model.setValue(itemRef + "[" + (iRow+1) + "]/indxnm", model.getValue("/root/main/formdata/item/indxnm"));
- group2.attribute("visibility") = "hidden";
- //treeview1.rebuild();
-
- fSaveFolderIndx ( parseInt(iRow)+1, "u" );
- ]]>
- </script>
- </button>
- <button id="btn_copyfolder" class="btn2_letter2" style="left:127px; top:28px; width:42px; height:19px; ">
- <caption>확인</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //확인버튼3 : 폴더 복사/붙여넣기 시, copy 폴더명 입력 후 저장
- if( isNull(sIndxNo) ){
- sIndxNo = iFocusIndx;
- }
-
- if( messageBox("선택한 폴더를 붙여넣기", "Q004") != "6" ){
- group2.visible = false;
- return false;
- }
- if( instance1.selectSingleNode("/root/temp/copysset/copyfolderinfo/item/indxno") == null ){
- group2.visible = false;
- messageBox("복사한 폴더가", "E001");
- return;
- }
- if( model.getValue("/root/main/formdata/item/indxnm") == "" ){
- messageBox("새로운 폴더명을", "C001");
- return;
- }
- // /root/main/indxlist/itemlist/item <- /root/temp/copysset/copyfolderinfo/item
- var selIndxno = model.getValue("/root/temp/copysset/copyfolderinfo/item/indxno");
- var selSupindxno = model.getValue("/root/temp/copysset/copyfolderinfo/item/supindxno");
- var trgindxno = model.getValue(itemRef + "[" + (sIndxNo + 1) +"]/indxno");
- model.removeNodeset("/root/send");
- model.makeNode("/root/send/masterinfo");
- model.makeNode("/root/send/reqdata");
- model.makeNode("/root/send/itemlist");
-
- //색인 정보 구성
- model.resetInstanceNode("/root/temp/savedfolder/item");
-
- model.makeValue("/root/send/reqdata/srcindx/srcindxno" , selIndxno);
- model.makeValue("/root/send/reqdata/srcindx/srcsupindxno" , selSupindxno);
- model.makeValue("/root/send/reqdata/srcindx/trgindxno" , trgindxno);
- model.makeValue("/root/send/reqdata/srcindx/trgsupindxno" , model.getValue(itemRef + "[" + (sIndxNo + 1) +"]/supindxno"));
- model.makeValue("/root/send/reqdata/srcindx/trgindxnm" , model.getValue("/root/main/formdata/item/indxnm")); //입력한폴더명
-
- var treeItemNodeSet = treeview1.itemset.attribute("nodeset"); //전체 색인 범위
- var trgLastChildItemIndex = getLastChildItemIndex(sIndxNo, treeItemNodeSet); // 드롭 아이템이 속한 아이템셋의 마지막 인덱스
- model.makeValue("/root/send/reqdata/srcindx/lastindxrefseq" , model.getValue(itemRef + "[" + (trgLastChildItemIndex + 1) +"]/indxrefseq")); //마지막 색인순번
-
- if( submit( "TXMMP01502", false ) ){
- group2.visible = false;
- var flag = opener.model.getValue("/root/main/search_cond/cpgflagcd");
- fGetIndxList(flag);
-
- //trgindxno와 동일한 색인번호를 갖는 indx를 펼친다
- var cnt = fSrchItemIndxNo( trgindxno );
- treeview1.expand(cnt, true);
-
- //복사 원본폴더 정보 노드 리셋
- model.removeNodeset("/root/temp/copysset/copyfolderinfo/item");
- model.makeNode("/root/temp/copysset/copyfolderinfo/item");
- }
- ]]>
- </script>
- </button>
- <caption id="cap_menu" class="cell_1" style="left:5px; top:5px; width:60px; height:20px; font-weight:bold; vertical-align:middle; ">색인명</caption>
- <button id="btn_cancle" class="btn2_letter2" style="left:172px; top:28px; width:42px; height:19px; ">
- <caption>취소</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- group2.attribute("visibility") = "hidden";
- ]]>
- </script>
- </button>
- <shape id="roundrect2" class="roundrect_btnset" appearance="roundrect" style="left:1px; top:0px; width:219px; height:53px; "/>
- </group>
- <datagrid id="grd_getindxlist" nodeset="/root/main/indexinfo/item" visibility="hidden" caption="indxNO^indxSeq^indxNM^supIndxNO^indxRefSeq^cpgNo^cpgHistSeq^depth^status" colsep="^" colwidth="45, 51, 50, 66, 73, 49, 72, 41, 39" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:590px; width:345px; height:77px; ">
- <col ref="indxno"/>
- <col ref="indxseq"/>
- <col ref="indxnm"/>
- <col ref="supindxno"/>
- <col ref="indxrefseq"/>
- <col ref="cpgno"/>
- <col ref="cpghistseq"/>
- <col ref="depth"/>
- <col ref="status"/>
- </datagrid>
- <group id="group1" visibility="hidden" style="left:60px; top:175px; width:269px; height:70px; background-color:#ffffff; border-color:#000000; border-style:none; ">
- <shape id="roundrect1" class="roundrect_btnset" appearance="roundrect" style="left:2px; top:1px; width:265px; height:68px; "/>
- <input id="input5" ref="/root/main/formdata/cpinfo/cpghistseq" class="input_default" visibility="hidden" style="left:80px; top:45px; width:17px; height:19px; border-style:solid; "/>
- <input id="input6" ref="/root/main/formdata/cpinfo/cpgno" class="input_default" visibility="hidden" style="left:70px; top:45px; width:15px; height:19px; border-style:solid; "/>
- <img id="img1" src="../../../com/commonweb/images/icon_n.gif" style="left:7px; top:15px; width:10px; height:13px; background-stretch:stretch; "/>
- <input id="input7" ref="/root/main/formdata/cpinfo/purpose" class="input_default" visibility="hidden" style="left:60px; top:45px; width:17px; height:19px; border-style:solid; "/>
- <caption id="cap_question" style="left:20px; top:10px; width:246px; height:28px; ">
- <![CDATA[선택하신 CP의 적용일이 존재하지 않습니다.
- 적용일을 등록하시겠습니까?]]>
- </caption>
- <input id="ipt_appdd" ref="/root/main/formdata/cpinfo/appdd" class="input_default" inputtype="date" style="left:70px; top:44px; width:97px; height:19px; border-style:solid; ">
- <script type="javascript" ev:event="onkeyup">
- <![CDATA[
- /*if(btn_modify.attribute("visibility") = "visible" ){
- inputEnterKey("btn_modify", "DOMActivate");
- } else if(btn_ok.attribute("visibility") = "visible" ){
- inputEnterKey("btn_ok", "DOMActivate");
- }*/
- ]]>
- </script>
- </input>
- <button id="btn_msgcncl" class="btn2_letter2" style="left:219px; top:43px; width:42px; height:19px; ">
- <caption>취소</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- group1.visible = false;
- tIndxNo = iFocusIndx; //sIndxNo = treeview1.focusIndex;
-
- if( tIndxNo != null ){
- var curItem = treeview1.item(tIndxNo);
- curItem.attribute("background-color") = "#ffffff";
- }
- /*
- var org_srcKind = model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/image");
- if(org_srcKind == folderImg) {}
- fMoveItem( tIndxNo, "", sIndxNo , "");
- */
- ]]>
- </script>
- </button>
- <button id="btn_msgcnfm" class="btn2_letter2" style="left:174px; top:43px; width:42px; height:19px; ">
- <caption>확인</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //if( isNull(sIndxNo) ){
- sIndxNo = iFocusIndx; //sIndxNo = treeview1.focusIndex;
- //}
- //if( isNull(tIndxNo) ){
- var srchVal = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supindxno");
- tIndxNo = fSrchItemIndxNo( srchVal );
- //}
- var appDD = model.getValue("/root/main/formdata/cpinfo/appdd");
- if( ipt_appdd.visible == true && isNull(appDD) ){
- messageBox("적용일을 ", "C001");
- return;
- }else if( ipt_appdd.visible == true && (getStringLength(appDD) < 8 || getStringLength(appDD) > 8 ) ){
- messageBox("적용일은 8자리", "I009");
- return;
- }else {
- var m = "";
- var indxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxno");
- var indxnm = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxnm");
- var indxrefseq = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxrefseq");
- var indxseq = parseInt( model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxseq") ) + 1;
- var no = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/cpgno");
- var ver = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/cpghistseq");
- var flag = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/cpgflagcd");
- var src_supindxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supindxno");
- var src_supflderno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supfolderno");
-
- var supindxno = model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/supindxno");
- var supfolderno = model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/supfolderno");
- //최상위이면, supindxno는 자신의 indxno
- if( model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/image") == folderImg && model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/supindxno") == "0" ){
- trg_supindxno = model.getValue(itemRef + "[" + (tIndxNo + 1) + "]/indxno");
- supindxno = trg_supindxno;
- }
-
- // 선택한 CP의 진료과와 타겟의 진료과가 다르면, 등록변경 안됨 (2008.06.18 변경됨... 원래 처리 : 색인도 새로 생성)
- // 삭제 종료 미등록 변경은 상위노드의 인덱스 번호와 상관없이 진행될 수 있도록 flag 추가 (2008. 09.18)
- var skipcheck = model.getValue("/root/temp/skiptopcheck");
- if (skipcheck != "Y" ) {
- if(src_supindxno != supindxno){
- //m = "i"; //색인을 save as한다.
- messageBox("다른 진료과로 옮길 수", "E001");
- return;
- }
- }
-
- model.removenode("/root/temp/skiptopcheck");
- //var header = "m▦indxno▦indxnm▦supindxno▦indxrefseq▦depth▦indxseq▦cpgno▦cpghistseq▦image▦cpgflagcd";
- var saveIndxlist = "▩"+m+"▦"+indxno+"▦"+indxnm+"▦"+supindxno+"▦"+indxrefseq+"▦▦"+indxseq+"▦"+no+"▦"+ver+"▦▦"+flag;
- model.setValue("/root/main/formdata/cpinfo/cpgno", no);
- model.setValue("/root/main/formdata/cpinfo/cpghistseq", ver);
-
- if( fSaveCpgIndxList( saveIndxlist ) ){
- fGetIndxList("F");
- }else {
- var curItem = treeview1.item(tIndxNo);
- curItem.attribute("background-color") = "#ffffff";
- }
- group1.visible = false;
- }
- ]]>
- </script>
- </button>
- <caption id="cap_appdd" class="tit_2" style="left:8px; top:46px; width:66px; height:13px; ">적용일</caption>
- </group>
- </xhtml:body>
- </xhtml:html>
|