123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467 |
- <?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>Hard-Code 내역</xhtml:title>
- <model id="model1">
- <instance id="instance1">
- <root xmlns="">
- <main>
- <info>
- <specinfo>
- <speclist>
- <hardcdno/>
- <hardcdnm/>
- </speclist>
- </specinfo>
- <specdetlinfo>
- <specdetllist>
- <trgtcd/>
- <valifromdd/>
- <valitodd/>
- <hardcdno/>
- <cdseqno/>
- <trgtcdnm/>
- </specdetllist>
- </specdetlinfo>
- </info>
- <cond>
- <hardcdno/>
- <hardcdnm/>
- <status/>
- </cond>
- </main>
- <send>
- <reqdata/>
- <savedata/>
- </send>
- <hidden>
- </hidden>
- <init/>
- </root>
- </instance>
- <script type="javascript" ev:event="xforms-ready">
- <![CDATA[
- //그리드 초기화
- model.removeNodeset("/root/main/info/specinfo/speclist");
- model.removeNodeset("/root/main/info/specdetlinfo/specdetllist");
- model.refresh();
-
- //hard-code내역을 조회
- submit("TRMMB08204");
-
- //hard-code내역에 해당하는 첫번째 행의 상세내역을 조회
- model.copyNode("/root/send/reqdata","/root/main/info/specinfo/speclist");
- submit("TRMMB08205");
-
-
- //하드코드 내역을 불러온것의 첫번째 값을 읽어옴
- var hardcdno = model.getValue("/root/main/info/specinfo/speclist/hardcdno");
- var hardcdnm = model.getValue("/root/main/info/specinfo/speclist/hardcdnm");
-
- //단지 첫번째 값을 보여주므로 input박스 비활성화
- ipt_hardcdno.disabled = 'true';
- ipt_hardcdnm.disabled = 'true';
- //받아온 첫번째 하드코드,하드코드명을 input박스에 뿌려줌
- ipt_hardcdno.value = hardcdno;
- ipt_hardcdnm.value = hardcdnm;
- ]]>
- </script>
- <submission id="TRMMB08204" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/main/info/specinfo"/>
- <submission id="TRMMB08205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/info/specdetlinfo"/>
- <submission id="TXMMB08201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/info"/>
- <submission id="TXMMB08202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/main/info"/>
- </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"/>
- </xhtml:head>
- <xhtml:body guideline="1,1192;1,-2;1,670;1,934;2,782;" style="margin-left:8; margin-right:8; ">
- <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:140px; height:13px; ">Hard-Code 내역</caption>
- <caption id="caption3" class="tit_2" style="left:0px; top:79px; width:175px; height:13px; text-align:left; ">Hard-Code 내역 리스트</caption>
- <line id="line2" class="line_1" style="x1:0px; y1:95px; x2:671px; y2:95px; "/>
- <datagrid id="grd_hardcodespec" nodeset="/root/main/info/specinfo/speclist" caption="코드^코드명" colsep="^" colwidth="100, 500" extendlastcol="noscroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:100px; width:671px; height:682px; ">
- <col ref="hardcdno" style="text-align:center; "/>
- <col ref="hardcdnm"/>
- <script type="javascript" ev:event="onclick">
- <![CDATA[
- //그리드 row선택시 row외 다른곳 선택시 error메세지
- if( grd_hardcodespec.isCell(event.target) && grd_hardcodespec.row >= grd_hardcodespec.fixedRows ) {
- ///수정를 원하는 로우를 얻어온다.
- var gridrow = grd_hardcodespec.row;
- //코드값을 가지고 가기위해
- model.copyNode("/root/send/reqdata","/root/main/info/specinfo/speclist[" + gridrow + "]");
- //상세내역을 알기 위해 하드코드 값을 가지고 상세내역 조회
- submit("TRMMB08205");
- model.setValue("/root/send/reqdata",'');
- }
- ]]>
- </script>
- <script type="javascript" ev:event="onclick">
- <![CDATA[
- //그리드 row선택시 row외 다른곳 선택시 error메세지
- if( grd_hardcodespec.isCell(event.target) && grd_hardcodespec.row >= grd_hardcodespec.fixedRows ) {
- ///수정를 원하는 로우를 얻어온다.
- var gridrow = grd_hardcodespec.row;
- //수정을 원하던 상세내역을 알고 싶은 경우든 모두 클릭을 하면 내역 등록에 나타나게 한다.
- var hardcdno = model.getValue("/root/main/info/specinfo/speclist[" + gridrow + "]/hardcdno");
- var hardcdnm = model.getValue("/root/main/info/specinfo/speclist[" + gridrow + "]/hardcdnm");
- model.setValue("/root/main/cond/hardcdno",hardcdno);
- model.setValue("/root/main/cond/hardcdnm",hardcdnm);
- model.refresh();
- //수정능하게 input박스를 활성화
- ipt_hardcdno.disabled = 'false';
- ipt_hardcdnm.disabled = 'false';
- }
- ]]>
- </script>
- </datagrid>
- <caption id="caption4" class="tit_2" style="left:675px; top:24px; width:220px; height:13px; text-align:left; ">Hard-Code 상세 내역 리스트</caption>
- <line id="line1" class="line_1" style="x1:675px; y1:40px; x2:1192px; y2:40px; "/>
- <datagrid id="grd_hardcodespecdetl" nodeset="/root/main/info/specdetlinfo/specdetllist" caption="코드^코드명^Hard-Code코드^코드일련번호^시작일자^종료일자" colsep="^" colwidth="100, 200, 0, 0, 90, 90" extendlastcol="noscroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:675px; top:45px; width:517px; height:737px; ">
- <col ref="trgtcd" type="input" style="text-align:center; "/>
- <col ref="trgtcdnm" type="input"/>
- <col ref="hardcdno"/>
- <col ref="cdseqno"/>
- <col ref="valifromdd" type="inputdate" format="yyyy-mm-dd"/>
- <col ref="valitodd" type="inputdate" format="yyyy-mm-dd"/>
- <script type="javascript" ev:event="ondblclick">
- <![CDATA[
- //그리드 row선택시 row외 다른곳 선택시 error메세지
- if( grd_hardcodespecdetl.isCell(event.target) && grd_hardcodespecdetl.row >= grd_hardcodespecdetl.fixedRows ) {
- //내역 그리드의 선택한 코드번호를 받아온다.
- var gridrow = grd_hardcodespec.row;
- //내역 리스트에서 선택한 하드코드값을 받아옴
- var hardcdno = model.getValue("/root/main/cond/hardcdno");
- //내역 리스트를 선택하지 않은 경우
- if(hardcdno == ''){
- //화면 open시 첫번째 코드를 받아오므로 첫번째 하드코드값을 가진다.
- var hardcdno = model.getValue("/root/main/info/specdetlinfo/specdetllist/hardcdno");
- }
- //상세내역 그리드의 신규로 생성한 로우에 코드를 저장한다
- var row = grd_hardcodespecdetl.row;
- //받아온 하드코드값을 상세내역 리스트하드코드 값으로 넣는다.
- model.setValue("/root/main/info/specdetlinfo/specdetllist[" + row + "]/hardcdno",hardcdno);
- //상태값을 만든다.
- model.makeNode("/root/main/info/specdetlinfo/specdetllist[" + row + "]/status");
- model.setValue("/root/main/info/specdetlinfo/specdetllist[" + row + "]/status", '-');
- //조회나 저장을 위해 로우 값을 가진다.
- model.copyNode("/root/send/reqdata","/root/main/info/specdetlinfo/specdetllist[" + row + "]");
- //그리드 row선택시 row외 다른곳 선택시 error메세지
- }
- ]]>
- </script>
- </datagrid>
- <button id="button7" class="btn2_letter2" style="left:1059px; top:18px; width:42px; height:19px; ">
- <caption>신규</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //조회된 행의 개수
- var gridrows = grd_hardcodespec.rows;
- //배열변수를 선언
- var my_array = new Array();
-
- //선택된 하드코드내역의 코드값
- var hardcdno1 = model.getValue("/root/main/cond/hardcdno");
- //내역 리스트를 선택하지 않은 경우
- if(hardcdno1 == ''){
- //화면 open시 첫번째 코드를 받아오므로 첫번째 하드코드값을 가진다.
- var hardcdno1 = model.getValue("/root/main/info/specdetlinfo/specdetllist/hardcdno");
- }
- //DB에 저장된 하드코드와 지금 입력되어진 하드코드가 있는지 비교
- if(hardcdno1 == ''){
- messageBox("Hard-Code 내역을","C002");
- }else{
- for(var i=1 ; i<= gridrows; i++){
- my_array[i] = 0;
- var hardcdno2 = model.getValue("/root/main/info/specinfo/speclist[" + i + "]/hardcdno");
- //하드코드 내역에 존재하는 것과 지금 지정된 하드코드와 같은 것이 있으면 DB에 저장된 것이므로 상세내역을 저장 가능
- if(hardcdno1 == hardcdno2){
- my_array[i] = my_array[i] + 1;
- }
- }
- var count = 0;
- //현재 입력된 하드코드가 없으면 값은 '0'일 것이다.
- for(var i=1 ; i<= gridrows; i++){
- count = count + my_array[i];
- }
- //DB에 저장되지 않는 경우는 메세지를 띄우고 있는경우는 행을 추가한다.
- if(count == 0){
- messageBox("저장된 Hard-Code 내역의 상세내역만 등록","C001");
- }else{
-
- //신규입력을 원할 경우 row를 생성하여 준다
- grd_hardcodespecdetl.addRow(false);
- //행의 마지막에 입력을 위해 마지막값을 받아옴
- var detlrows = grd_hardcodespecdetl.rows - grd_hardcodespecdetl.fixedRows;
- //유효시작일자에 현재일자
- model.setValue("/root/main/info/specdetlinfo/specdetllist[" + detlrows + "]/valifromdd",getCurrentDate());
- //유효종료일자에 '99991231'
- model.setValue("/root/main/info/specdetlinfo/specdetllist[" + detlrows + "]/valitodd", "99991231");
- //현재선택된 하드 코드
- model.setValue("/root/main/info/specdetlinfo/specdetllist[" + detlrows + "]/hardcdno",hardcdno1);
- model.refresh();
- }
- }
- ]]>
- </script>
- </button>
- <button id="button8" class="btn2_letter2" style="left:1104px; top:18px; width:42px; height:19px; ">
- <caption>삭제</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //멀티로 삭제를 원하는 로우를 얻어온다.
- var selectedRows = grd_hardcodespecdetl.selectedRows;
- //선택한 삭제로우행을 받아오기 위해 배열지정
- var row = new Array();
- //멀티로 선택한 로우행값을 받아옴
- for (i= selectedRows-1; i >= 0; i--){
- row[i] = grd_hardcodespecdetl.selectedrow(i);
- }
-
- //선택한 로우가 없는 경우 메세지
- if(selectedRows == 0){
- messageBox("삭제할 Hard-Code 상세 내역을 ", "C002");
- }else{
- xPath = "/root/main/info/specdetlinfo/specdetllist";
-
- var savedata ="m▦hardcdno▦trgtcd▦trgtcdnm▦valifromdd▦valitodd▦cdseqno▩";
- //멀티로 선택한 개수로 루프를 돔
- for (i= selectedRows-1; i >= 0; i--){
- savedata += 'd' + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/hardcdno") + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/trgtcd" ) + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/trgtcdnm" ) + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/valifromdd" ) + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/valitodd" ) + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/cdseqno" ) + "▩";
- }
- //멀티로 원한 데이타를 가지고 삭제하러 간다
- model.setValue("/root/send/reqdata","");
- model.setValue("/root/send/savedata",savedata);
- submit("TXMMB08202");
- }
- model.refresh();
- ]]>
- </script>
- </button>
- <button id="button9" class="btn5_letter2" style="left:1150px; top:18px; width:42px; height:19px; ">
- <caption>저장</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //상세 내역의 개수를 구한다.
- var rows = grd_hardcodespecdetl.rows;
- var count = new Array();
- //대상코드가 같은 것을 신규로 등록하는 것을 방지하기 위해 비교한다.
- for(var i=1; i < rows; i++){
- count[i] = 0;
- var trgtcd1 = model.getValue("/root/main/info/specdetlinfo/specdetllist[" + i + "]/trgtcd");
- // 키값을 안가지고 있는 경우를 확인
- var hardcdno = model.getValue("/root/main/info/specdetlinfo/specdetllist[" + i + "]/hardcdno");
- if(hardcdno == ''){
- messageBox("Hard-Code 내역을","C002");
- }else{
- //대상코드를 입력하지 않은 경우 그 로우를 제거하고 메세지
- if(trgtcd1 == ''){
- grd_hardcodespecdetl.deleterow(i);
- messageBox(trgtcd1 + " 대상코드가","I004");
- rows = rows - 1;
- break;
- }else{
- //중복 data 확인
- for(var j= i+1 ; j <= rows; j++){
- var trgtcd2 = model.getValue("/root/main/info/specdetlinfo/specdetllist[" + j + "]/trgtcd");
- //중복된 대상코드가 존재하는지 확인
- if(trgtcd1 == trgtcd2){
- count[i] = count[i] + 1;
- }
- //중복된 대상코드가 있는경우 행을 제거하고 메세지
- if(count[i] >= 1){
- grd_hardcodespecdetl.deleterow(j);
- messageBox(trgtcd2 + " 대상코드가","E006");
- count[i] = 0;
- rows = rows - 1;
- break;
- }
- }
- }
- }
- }
-
- //하드코드 상세내역을 등록, 수정
- model.setValue("/root/send/savedata",grd_hardcodespecdetl.getUpdateData());
- submit("TXMMB08202");
- ]]>
- </script>
- </button>
- <button id="button1" class="btn4_letter2" style="left:556px; top:17px; width:56px; height:22px; ">
- <caption>신규</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
-
- //관심슬립 그리드의 선택이 해제되게 하기
- grd_hardcodespec.row=0;
- grd_hardcodespec.col=0;
-
- ipt_hardcdno.value = '';
- ipt_hardcdnm.value = '';
- ipt_hardcdno.disabled = 'false';
- ipt_hardcdnm.disabled = 'false';
-
- //상태값을 등록으로 만든다.
- model.setValue("/root/main/cond/status", 'i');
-
- model.removeNodeset("/root/main/info/specdetlinfo/specdetllist");
- model.refresh();
- //신규입력을 원할 경우 row를 생성하여 준다
- //grd_hardcodespec.addRow(false);
- ]]>
- </script>
- </button>
- <button id="button2" class="btn2_letter2" style="left:629px; top:73px; width:42px; height:19px; ">
- <caption>삭제</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //멀티로 삭제를 원하는 로우를 얻어온다.
- var selectedRows = grd_hardcodespec.selectedRows;
- //선택한 로우의 하드코드,하드코드명을 받아옴
- var cdno = new Array();
- var cdnm = new Array();
- //선택한 삭제로우행을 받아오기 위해 배열지정
- var row = new Array();
- //멀티로 선택한 로우행값, 하드코드, 하드코드명을 받아옴
- for (i= selectedRows-1; i >= 0; i--){
- row[i] = grd_hardcodespec.selectedrow(i);
- cdno[i] = model.getValue("/root/main/info/specinfo/speclist[" + grd_hardcodespec.selectedrow(i)+ "] /hardcdno");
- cdnm[i] = model.getValue("/root/main/info/specinfo/speclist[" + grd_hardcodespec.selectedrow(i) + "] /hardcdnm");
- }
-
- xPath = "/root/main/info/specinfo/speclist";
- var savedata ="m▦hardcdno▦hardcdnm▩";
-
- for (i= selectedRows-1; i >= 0; i--){
- // model.setValue("/root/main/cond/hardcdno",cdno[i]);
- // model.setValue("/root/main/cond/hardcdnm",cdnm[i]);
- //삭제를 원하는 로우의 하드코드를 얻어온다.
- var hardcdno = cdno[i];
- //하드코드값이 비어있으면 메세지
- if(hardcdno == ''){
- messageBox("삭제할 Hard-Code 를 ", "C002");
- }else{
- savedata += 'd' + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/hardcdno") + "▦";
- savedata += model.getValue(xPath+"["+ row[i] +"]/hardcdnm" ) + "▩";
-
- }
- }
- model.setValue("/root/send/savedata",savedata);
- model.copyNode("/root/send/reqdata","");
- submit("TXMMB08201");
- // model.copyNode("/root/send/reqdata","");
- // model.copyNode("/root/send/savedata","");
- // model.setValue("/root/main/cond/status", '');
-
- ipt_hardcdno.disabled = 'true';
- ipt_hardcdnm.disabled = 'true';
- ipt_hardcdno.value = '';
- ipt_hardcdnm.value = '';
- ]]>
- </script>
- </button>
- <button id="button3" class="btn4_letter2" style="left:614px; top:17px; width:56px; height:22px; ">
- <caption>저장</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //현재 상태값을 받아옴
- var status = model.getValue("/root/main/cond/status");
- //신규나 삭제 상태가 아닌 경우는 수정 상태로 만듬
- if((status != 'i') && (status != 'd')){
- model.setValue("/root/main/cond/status", 'u');
- }
- //하드코드내역의 선택된 로우
- var gridrow = grd_hardcodespec.row;
- //하드코드내역의 총 로우수
- var gridrows = grd_hardcodespec.rows;
- //하드코드 내역의 선택된 로우의 하드코드
- var hardcdno1 = model.getValue("/root/main/cond/hardcdno");
- var count = 0;
- var status = model.getValue("/root/main/cond/status");
- //코드가 중복인지 확인
- if(status != 'u'){
- for(var i=1; i <= gridrows; i++){
- var hardcdno2 = model.getValue("/root/main/info/specinfo/speclist[" + i + "]/hardcdno");
- //중복되어 같은 것이 있는지 확인
- if(hardcdno1 == hardcdno2){
- messageBox(hardcdno2 + " Hard-Code가","E006");
- ipt_hardcdno.value = '';
- count = 1;
- break;
- }
- }
- }else{
- //선택된 로우의 해당 하드코드값을 받아옴
- var hardcdno2 = model.getValue("/root/main/info/specinfo/speclist[" + gridrow + "]/hardcdno");
- //선택된 로우와 등록에 존재하는 하드코드가 서로 다른 경우 신규로 등록하는 경우
- if(hardcdno1 != hardcdno2){
- for(var i=1; i <= gridrows; i++){
- var hardcdno2 = model.getValue("/root/main/info/specinfo/speclist[" + i + "]/hardcdno");
- //신규로 하드코드 등록시 같은 하드 코드가 있는지 비교
- if(hardcdno1 == hardcdno2){
- messageBox(hardcdno2 + " Hard-Code가","E006");
- ipt_hardcdno.value = '';
- count = 1;
- break;
- }
- }
- }
- }
-
- //중복된 하드 코드가 없는경우
- if(count == 0){
- //model.removenode("/root/send/reqdata");
- //updata된 정보를 가지고 가기 위해
- // model.makeNode("/root/send/reqdata/cdno");
- // model.makeNode("/root/send/reqdata/cdnm");
- // var cdno = model.getValue("/root/main/info/specinfo/speclist[" + gridrow + "]/hardcdno");
- // var cdnm = model.getValue("/root/main/info/specinfo/speclist[" + gridrow + "]/hardcdnm");
- // model.setValue("/root/send/reqdata/cdno",cdno);
- // model.setValue("/root/send/reqdata/cdnm",cdnm);
- var status = model.getValue("/root/main/cond/status");
-
- if(status == 'u'){
- xPath = "/root/main/info/specinfo/speclist";
- var savedata ="m▦hardcdno▦hardcdnm▩";
- savedata += 'u' + "▦";
- savedata += model.getValue(xPath+"["+ gridrow +"]/hardcdno") + "▦";
- savedata += model.getValue(xPath+"["+ gridrow +"]/hardcdnm" ) + "▩";
- model.setValue("/root/send/savedata",savedata);
- }else{
- model.copyNode("/root/send/savedata","");
- }
- model.copyNode("/root/send/reqdata","/root/main/cond");
- //하드코드내역을 저장
- submit("TXMMB08201");
- //model.copyNode("/root/send/reqdata","");
- }
- model.setValue("/root/main/cond/status", '-');
- //저장후 입력한 것을 지우고 입력창을 비활성화한다
- ipt_hardcdno.disabled = 'true';
- ipt_hardcdnm.disabled = 'true';
- ipt_hardcdno.value = '';
- ipt_hardcdnm.value = '';
- ]]>
- </script>
- </button>
- <caption id="caption2" class="cell_1" style="left:0px; top:45px; width:101px; height:23px; vertical-align:middle; ">Hard-Code</caption>
- <input id="ipt_hardcdno" ref="/root/main/cond/hardcdno" class="input_search" imemode="disabled" style="left:104px; top:46px; width:92px; height:19px; "/>
- <caption id="caption5" class="cell_1" style="left:200px; top:45px; width:101px; height:23px; vertical-align:middle; ">Hard-Code 명</caption>
- <input id="ipt_hardcdnm" ref="/root/main/cond/hardcdnm" class="input_search" imemode="disabled" style="left:304px; top:46px; width:366px; height:19px; "/>
- <line id="line3" class="line_1" style="x1:0px; y1:40px; x2:671px; y2:40px; "/>
- <caption id="caption6" class="tit_2" style="left:0px; top:24px; width:175px; height:13px; text-align:left; ">Hard-Code 내역 등록</caption>
- <line id="line4" class="line_3" style="x1:0px; y1:68px; x2:671px; y2:68px; "/>
- </xhtml:body>
- </xhtml:html>
|