/** astfInsertGridData : Source 그리드에서 선택된 row를 Target 그리드로 삽입하는 함수 astfChkMatrixData : 쌍으로 이루어진 값의 배열을 체크하고 값들을 배열로 리턴한다. astfMakePopup : 팝업메뉴를 생성한다. astfAddCombo : 콤보박스에 원하는 instance node와 value를 설정한다. */ var PrnKind =1; var PrnMarginLeft =0; var PrnMarginTop =0; var PageSize = ""; /** * @ver : 2007.3.12 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : Source 그리드에서 선택된 row를 Target 그리드로 삽입하는 함수 * @param1 : src_grid (Source 그리드 컨트롤 ID) * @param2 : trgt_grid (Target 그리드 컨트롤 ID) * @param3 : row_select_val (1:Grid 선택(1 Row 복사) 2: 체크박스(multi-Rows) 3: Grid 전체(All-Rows) * @param4 : chkbox_col_nm(row_select_val의 값이 2일 경우 해당 체크박스의 ref ID명, 그 외 null("")값) * @param5 : src_grid_col_nm_matrix (두 그리드간 컬럼명이 다를 경우 서로 다른 컬럼의 쌍으로 matrix 생성 두 그리드간 컬럼명이 완전히 같을 경우 null("")값) * @param6 : dupl_val_matrix (중복(Duplication) 값을 제거해야하는 경우 중복체크할 컬럼을 쌍으로 matrix 생성 중복값을 제거하지 않아도 되는 경우에는 null("")값) * @return : int(결과 값에 따른 메시지 처리 가능 - 필요시 사용 권장) * @--------------------------------------------------- */ function astfInsertGridData(src_grid, trgt_grid, row_select_val, chkbox_col_nm, src_grid_col_nm_matrix, dupl_val_matrix) { //matrix ???? ??? ?? var grid_matrix_val = astfChkMatrixData(src_grid_col_nm_matrix) if(grid_matrix_val == "E"){ return 0; } var dupl_matrix_val = astfChkMatrixData(dupl_val_matrix); if(dupl_matrix_val == "E"){ return 1; } var chk_opener = checkOpener(); //팝업화면인지를 체크 var src_gridCols = src_grid.cols; var trgt_gridCols = trgt_grid.cols; if(row_select_val == 1){ //Source Grid를 클릭 또는 더블클릭으로 1row를 선택시 var insert_vali = true; var src_node_set = src_grid.nodeset + "[" + src_grid.row+ "]/"; if(dupl_val_matrix != ""){ var dupl_trgt_nodeset = trgt_grid.nodeset + "["; var chk = dupl_matrix_val.length; for(var j=0; j < chk; j+=2){ if(j == 0){ dupl_trgt_nodeset += dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } else { dupl_trgt_nodeset += " and " + dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } } dupl_trgt_nodeset += "]/" + dupl_matrix_val[1]; if ( chk_opener ) { if(opener.model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } else { if(model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } if(!insert_vali){ messageBox("데이터가 중복되어 처리 ", "E001"); return 2; } } if(insert_vali) { trgt_grid.addRow(); var trgt_node_set = trgt_grid.nodeset + "[" + (trgt_grid.rows-1) + "]/"; //src와 trgt grid간에 같은 컬럼명인 경우 값을 셋팅함 for(var i = src_grid.fixedcols; i < src_gridCols; i++){ var src_ref_nm = src_grid.colattribute(i,"ref"); for(var j = trgt_grid.fixedcols; j < trgt_gridCols; j++){ var trgt_ref_nm = trgt_grid.colattribute(j,"ref"); if( src_ref_nm == trgt_ref_nm){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } else { model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } } } } //src_grid_col_nm_matrix 파라미터값이 있는 경우 서로 다른 컬럼명에 값을 셋팅함 if( src_grid_col_nm_matrix != ""){ var chk = grid_matrix_val.length; for(var i=0; i < chk; i+=2){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } else { model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } } } // trgt_grid.refresh(); model.refresh(); } } else if(row_select_val == 2){ //source grid에서 체크박스로 여러 row를 선택시 if(chkbox_col_nm == ""){ //messageBox("CheckBox의 ref name 값이 잘못입력되어 ", "E008"); return 3; } var insert_vali = true; var insert_cnt = 0; //source grid의 전체 row중 check된 row만 insert 함 for(var t = src_grid.fixedrows; t < src_grid.rows; t++){ var src_node_set = src_grid.nodeset + "[" + t + "]/"; insert_vali = true; if(model.getValue(src_node_set+chkbox_col_nm) == "true"){ //check된 row일 경우 if(dupl_val_matrix != ""){ //중복 체크를 해야하는 경우 var dupl_trgt_nodeset = trgt_grid.nodeset + "["; var chk = dupl_matrix_val.length; for(var j=0; j < chk; j+=2){ if(j == 0){ dupl_trgt_nodeset += dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } else { dupl_trgt_nodeset += " and " + dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } } dupl_trgt_nodeset += "]/" + dupl_matrix_val[1]; if ( chk_opener ) { if(opener.model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } else { if(model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } } if(insert_vali){ insert_cnt++; trgt_grid.addRow(); var trgt_node_set = trgt_grid.nodeset + "[" + (trgt_grid.rows-1)+ "]/"; //src와 trgt grid간에 같은 컬럼명인 경우 값을 셋팅함 for(var i = src_grid.fixedcols; i < src_gridCols; i++){ var src_ref_nm = src_grid.colattribute(i,"ref"); for(var j = trgt_grid.fixedcols; j < trgt_gridCols; j++){ var trgt_ref_nm = trgt_grid.colattribute(j,"ref"); if( src_ref_nm == trgt_ref_nm){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } else { model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } } } } //src_grid_col_nm_matrix 파라미터값이 있는 경우 서로 다른 컬럼명에 값을 셋팅함 if( src_grid_col_nm_matrix != ""){ var chk = grid_matrix_val.length; for(var i=0; i < chk; i+=2){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } else { model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } } } //trgt_grid.refresh(); //model.refresh(); } } } model.refresh(); if(insert_cnt == 0){ //messageBox("데이터가 중복되어 처리 ", "E001"); return 2; } } else if(row_select_val == 3){ //source grid의 전체를 insert 해야할 경우 var insert_vali = true; var insert_cnt = 0; for(var t = src_grid.fixedrows; t < src_grid.rows; t++){ var src_node_set = src_grid.nodeset + "[" + t + "]/"; insert_vali = true; if(dupl_val_matrix != ""){ //중복 체크를 해야하는 경우 var dupl_trgt_nodeset = trgt_grid.nodeset + "["; var chk = dupl_matrix_val.length; for(var j=0; j < chk; j+=2){ if(j == 0){ dupl_trgt_nodeset += dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } else { dupl_trgt_nodeset += " and " + dupl_matrix_val[j+1] + "='" + model.getValue(src_node_set+dupl_matrix_val[j]) + "'"; } } dupl_trgt_nodeset += "]/" + dupl_matrix_val[1]; if ( chk_opener ) { if(opener.model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } else { if(model.getValue(dupl_trgt_nodeset) != ""){ //중복되는 컬럼이 있으면 insert 안함 insert_vali = false; //insert 안함 } } } //if(insert_vali){ insert_cnt++; trgt_grid.addRow(); var trgt_node_set = trgt_grid.nodeset + "[" + (trgt_grid.rows-1)+ "]/"; for(var i = src_grid.fixedcols; i < src_gridCols; i++){ var src_ref_nm = src_grid.colattribute(i,"ref"); for(var j = trgt_grid.fixedcols; j < trgt_gridCols; j++){ var trgt_ref_nm = trgt_grid.colattribute(j,"ref"); if( src_ref_nm == trgt_ref_nm){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } else { model.setValue(trgt_node_set+trgt_ref_nm,model.getValue(src_node_set+src_ref_nm)); } } } } //src_grid_col_nm_matrix 파라미터값이 있는 경우 서로 다른 컬럼명에 값을 셋팅함 if( src_grid_col_nm_matrix != ""){ var chk = grid_matrix_val.length; for(var i=0; i < chk; i+=2){ if ( chk_opener ) { opener.model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } else { model.setValue(trgt_node_set+grid_matrix_val[i+1],model.getValue(src_node_set+grid_matrix_val[i])); } } } //trgt_grid.refresh(); model.refresh(); //} } if(insert_cnt == 0){ //messageBox("데이터가 중복되어 처리 ", "E001"); return 2; } } if ( chk_opener ) { opener.model.refresh(); } else { model.refresh(); } return 10; } /** * @ver : 2007.3.13 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 구분자 ‘,’(쉼표)를 통해 “src_param1,tagt_param1,src_param2,tagt_param2,..."으로 쌍으로 이루어진 단일 matrix의 오류체크를 하고 matrix를 배열(array)로 변환하는 함수 * @param1 : matrix_val (구분자를 통해 source와 target의 값의 쌍으로 이루어진 String형 변수값을 받음) * @return : Array(처리 오류 발생시에는 "E"값 반환) * @--------------------------------------------------- */ function astfChkMatrixData(matrix_val) { var col_data = ""; if(matrix_val != ""){ var col_flag = ","; col_data = matrix_val.split(col_flag); //구분자를 통한 array 생성 if(col_data.length <= 1) { col_data = "E"; return col_data; //col-anme set이 오류 발생시 } var chk = col_data.length % 2; if( chk == 1 ) { col_data = "E"; return col_data; //col-anme set에 오류 발생시 } } return col_data; } /** * @ver : 2007.4.10 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 팝업메뉴를 생성하는 함수 * @param1 : ctrlD(해당 컨트롤의 ID) * @param2 : xPath(팝업메뉴에 보여질 label, func의 xPath) * @return : * @--------------------------------------------------- */ function astfMakePopup(ctrID, xPath){ var id = ctrID.elementName; if (event.button == 3){ if(id == "xforms:datagrid"){ if(ctrID.isCell(event.target) && ctrID.mouseRow >= ctrID.fixedrows){ window.setPopupMenu(true, xPath, label, func, false); }else{ window.setPopupMenu(false); } } else if(id == "xforms:calendar" || id == "xforms:select" || id == "xforms:select1" || id == "xforms:treeview"){ if(ctrID.isCell(event.target)){ window.setPopupMenu(true, xPath, "label", "func", false); }else{ window.setPopupMenu(false); } } else if(id == "xforms:multilinegrid"){ if(ctrID.mouseRow >= ctrID.fixedrows){ window.setPopupMenu(true, xPath, "label", "func", false); }else{ window.setPopupMenu(false); } } else if(id == "xforms:img"){ window.setPopupMenu(true, xPath, "label", "func", false); } else { window.setPopupMenu(false); } } } /** * @ver : 2007.7.16 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 콤보박스에 원하는 instance node와 value를 설정 * @param1 : combo의 itemset중 nodeset의 경로가 들어감(예: "/root/hidden/deptlist") * @param2 : combo의 label값과 value값 바로 상위의 노드이름(예: "dept") * @param3 : combo의 label과 value를 구분자 ','로 공백없이 쌍으로 받음(예 : "cd,nm") * @param4 : label과 value의 값의 쌍을 받음 (예 : "전체,-") * @return * @--------------------------------------------------- */ function astfAddCombo(combopath, parentnode, nodename, nodeval) { nodename = nodename.split(","); nodeval = nodeval.split(","); if(nodename.length != nodeval.length){ return; } var label = model.instances(0).createElement(nodename[0]); var val = model.instances(0).createElement(nodename[1]); var combo = model.instances(0).createElement(parentnode); label.value = "" + nodeval[0] + ""; val.value = "" + nodeval[1] + ""; combo.appendChild(label); combo.appendChild(val); chkNode = model.instances(0).selectSingleNode(combopath); if(chkNode == null){ model.makeNode(combopath); srcNode = model.instances(0).selectSingleNode(combopath); }else{ srcNode = model.instances(0).selectSingleNode(combopath); } desNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode); //cnt = model.getXPathValue("count(" + combopath + "/" + parentnode + ")"); // alert(cnt); if(desNode == null){ //messageBox("MIS 조회된 데이터가 없음===>", "E001"); return 0; }else{ srcNode.insertBefore(combo, desNode); //messageBox("MIS 조회된 데이터가 있음===>", "E001"); } model.refresh(); } /** * @ver : 2007.9.6 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 원하는 nodeset을 1...n개 만들어서 뒤에 *추가*로 복사함 * @param1 : target nodeset의 경로가 들어감(예: "/root/send/deptlist") * @param2 : source nodeset의 경로가 들어감(예: "/root/main/deptlist/deptlist["+i+"]") * @return * @--------------------------------------------------- */ function astfCopyNodeSet(trgtNodeSet, srcNodeSet) { var nodename_array = trgtNodeSet.split("/"); var nodename = ""; for( var i = 1; i< nodename_array.length -1; i++ ) { nodename += "/"+nodename_array[i]; } var srcNodeList = model.instance1.selectNodes(srcNodeSet); if( srcNodeList.length == 0 ) return; var tmpNodeSet; for( var j = srcNodeList.length - 1; j >= 0; j-- ) { tmpSrcNode = srcNodeList.item(j).cloneNode(true); tmpSrcNode.nodeName = nodename_array[i]; model.duplicate(nodename, tmpSrcNode); } } /** * @ver : 2007.9.17 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @param : 공백제거 대상이 되는 String 문자열 * @desc : 앞뒤 공백을 지움 * @return * @--------------------------------------------------- */ function astfTrim(val) { var result_val = ""; var i = 0; //왼쪽제거 var j = 0;//오른쪽제거 for(i = 0; i < val.length; i++){ var temp = val.substr(i,1); if(temp == null || temp == "" || temp == " " || temp == " " || temp == "undefined"){ } else { break; } } for(j = val.length; j > 0; j--){ var temp = val.substr(j,1); if(temp == null || temp == "" || temp == " " || temp == " " || temp == "undefined"){ } else { break; } } return ( (i > 0) || (j < val.length) ) ? val.substring(i, j-i+1) : val; } /** * @ver : 2007.9.17 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 구분자로 분리도니 특정자료를 읽음 * @param1 : pData * @param2 : pRow(▩) * @param3 : pCol(▦) * @return * @--------------------------------------------------- */ function astfMatrixData(pData, pRow, pCol) { var rowSep = "▩"; var colSep = "▦"; var arrRow = pData.split(rowSep); if(arrRow.length <= pRow) return ""; var arrCol = arrRow[pRow].split(colSep); if(arrCol.length <= pCol) return ""; return arrCol[pCol]; } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 바코드 Format 시작 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @return : * @--------------------------------------------------- */ function astfStartFormat(pX, pY, pPage) { PageSize = pPage; if ( PrnKind == 2 || PrnKind == 7 ) { // if ( PrnMarginLeft.length == 1 ){ // PrnMarginLeft = "0"+ PrnMarginLeft; // } // if ( PrnMarginTop.length == 1 ){ // PrnMarginTop = "0"+ PrnMarginTop; // } if(pPage == "S") { return "AA107000500V00H00L0101"; }else { return "AA110300820V00H00L0101"; } } else { return "^XA^SEE:UHANGUL.DAT^FS^CWQ,E:AAAAA.FNT^FS^CI26" + "^LH" + pX + "," + pY; } } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 바코드 Format 종료 * @param : pCnt = 출력매수 * @return : * @--------------------------------------------------- */ function astfEndFormat(pCnt) { var vCnt = 1; if (isNull(pCnt)) { vCnt = 1; } else { vCnt = pCnt } if ( PrnKind == 2 || PrnKind == 7 ) { return "Q"+ vCnt +"Z"; } else { return "^PQ" + vCnt + "^XZ"; } } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 바코드 Format 종료 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @return : * @--------------------------------------------------- */ function astfFiendOrigin(pX, pY) { if ( PrnKind == 2 || PrnKind == 7 ) { return "V"+pY+"H"+pX; } else { return "^FO" + pX + "," + pY; } } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 기본 Font 설정 * @param : pF = Default Font * @param : pH = Height(in dots) - Default 9 * @param : pW = Width(in dots) - Default 5 * @return : * @--------------------------------------------------- */ function astfChangeFont(pF, pH, pW) { var sBuf = ""; sBuf = "^CF" + pF; sBuf += "," + pH; sBuf += "," + pW; return sBuf; } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 박스 출력 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pW = 박스 폭 (in dots) * @param : pH = 박스 높이 (in dots) * @param : pBF = 보더 굵이 (박스를 채우려면 값을 크게 준다. 1 ~ 3200) * @return : * @--------------------------------------------------- */ function astfGraphicBox(pX, pY, pW, pH, pBF) { var sBuf = ""; if ( PrnKind == 2 || PrnKind == 7 ) { } else { sBuf = astfFiendOrigin(pX, pY); sBuf += "^GB" + pW + "," + pH + "," + pBF + "^FS"; } return sBuf; } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 알파벳, 숫자 Field정의 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pData = Field Data * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 ) * @return : * @--------------------------------------------------- */ function astfFieldDataA(pX, pY, pData, pReverse) { var sBuf = ""; sBuf = astfFiendOrigin(pX, pY); if (!isNull(pReverse)) { if (pReverse.getTrim() == "Y") { sBuf += "^FR"; } } sBuf += "^FD" + pData + "^FS"; return sBuf; } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 한글 및 특수문자 Field정의 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pW = 폰트 Width * @param : pH = 폰트 Height * @param : pData = Field Data * @return : * @--------------------------------------------------- */ function astfFieldDataH(pX, pY, pW, pH, pData) { var sBuf = ""; sBuf += astfFiendOrigin(pX, pY); sBuf += "^CFA" + "," + pW + "," + pH;; sBuf += "^FD" + pData + "^FS"; return sBuf; } /** * @group : commonweb * @ver : 2007.05.08 (CMCDEV-0001) * @by : Jin Hwa Ji [ACK Co., Ltd.] * @--------------------------------------------------- * @type : function * @access : public * @desc : 바코드 정의(Code 39) * @param : pX = 시작 가로위치 * @param : pY = 시작 세로위치 * @param : pO = 방향 * @param : pH = 바코드 Height * @param : pData = 바코드정보 * @param : pBigYN = 바코드 크기정보 * @return : * @--------------------------------------------------- */ function astfBarCode_Code39(pX, pY, pO, pH, pData, pBigYN) { var sBuf = ""; pX = parseInt(pX) + parseInt(PrnMarginLeft); pY = parseInt(pY) + parseInt(PrnMarginTop); sBuf = astfFiendOrigin(pX, pY); if ( PrnKind == 2 || PrnKind == 7 ) { //sBuf += "V"+pY+"H"+pX+"B103080" +"*" +pData +"*"; if ( PageSize == "S" ) { sBuf += "V"+pY+"H"+pX+"BG01070" + pData ; } else { sBuf += "V"+pY+"H"+pX+"BG02070" + pData ; } //sBuf += "V"+pY+"H"+pX+"BC01070" +pData.length+ pData ; //sBuf += "BT101020102V"+pY+"H"+pX+"BW01070" +"*" +pData +"*" ; } else { if(pBigYN == "S"){ sBuf += "^BY1,2.0"; } else if(pBigYN == "B"){ sBuf += "^BY2,2.0"; } else { sBuf += "^BY2,2.0"; } sBuf += "^B3" + pO + ",N," + pH + ",N,N^FD" + pData + "^FS"; } return sBuf; } /** * @group : commonweb * @ver : 2007.09.18 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 한글 및 특수문자 Field정의 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pFont = 글자크기(1-10) * @param : pData = Field Data * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 ) * @return : * @--------------------------------------------------- */ function astfPrintOutH(pX, pY, pFont, pImage, pData, pReverse) { var sBuf = ""; if ( PrnKind == 2 || PrnKind == 7 ) { sBuf= CommAX.PrtImgOut(pX,pY,pData); } else { sBuf = astfFontSize(pFont); sBuf += CommAX.PrtImgOut(pImage, pData); sBuf += astfFiendOrigin(pX, pY); sBuf += "^XG"+pImage+",2,1^FS"; } return sBuf; } /** * @group : commonweb * @ver : 2007.09.18 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 일반 영문 및 숫자 Field정의 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pFont = 글자크기(1-10) * @param : pData = Field Data * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 ) * @return : * @--------------------------------------------------- */ function astfPrintOutA(pX, pY, pFont, pData, pReverse) { var sBuf = ""; sBuf += astfFontSize(pFont); sBuf += astfFieldDataA(pX, pY, pData, pReverse); return sBuf; } /** * @group : commonweb * @ver : 2007.09.18 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 한글 및 특수문자 Field정의 * @param : pX = 시작 가로위치 (in dots) * @param : pY = 시작 세로위치 (in dots) * @param : pFont = 글자크기(1-10) * @param : pData = Field Data * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 ) * @return : * @--------------------------------------------------- */ function astfPrintOut(pX, pY, pFont, pData, pReverse) { var sBuf = ""; //alert("이전:"+pX); pX = parseInt(pX) + parseInt(PrnMarginLeft); pY = parseInt(pY) + parseInt(PrnMarginTop); //alert("PrnMarginLeft:"+PrnMarginLeft); //alert("이후:"+pX); if ( PrnKind == 2 ) { sBuf = astfFiendOrigin(pX, pY); sBuf += astfFontSize(pFont); //if (!isNull(pReverse)) { // if (pReverse.getTrim() == "Y") { // sBuf += "%2"; // } else { // sBuf += "%0"; // } // } sBuf += pData+""; } else if (PrnKind == 7){ if(pFont == 6 || pFont == 7 || pFont == 10){ sBuf += CommAX.PrtImgOut(parseInt( pY), parseInt(pX), pData,2,2,"0","K2B"); } else { sBuf += CommAX.PrtImgOut(parseInt( pY), parseInt(pX), pData,1,1,"0","K2B"); } /* if(pFont == 6 || pFont == 7){ if (pReverse.getTrim() == "Y") { sBuf += CommAX.PrtImgOut(parseInt(pX),parseInt( pY), pData,2,2, "2", "K8D" ,"M")+""; } else { sBuf += CommAX.PrtImgOut(parseInt(pX),parseInt( pY), pData,2,2, "0", "K8D" ,"M")+""; } } else { if (pReverse.getTrim() == "Y") { sBuf += CommAX.PrtImgOut(parseInt(pX),parseInt( pY), pData,1,1, "2", "K9D" ,"M")+""; } else { sBuf += CommAX.PrtImgOut(parseInt(pX),parseInt( pY), pData,1,1, "0", "K9D" ,"M")+""; } } */ } else { sBuf = astfFiendOrigin(pX, pY); sBuf += astfFontSize(pFont); if (!isNull(pReverse)) { if (pReverse.getTrim() == "Y") { sBuf += "^FR"; } } sBuf += "^FD"+pData+"^FS"; } return sBuf; } /** * @group : commonweb * @ver : 2007.09.18 * @by : 공두경 * @--------------------------------------------------- * @type : function * @access : public * @desc : 숫자 크기정의 * @param : pFont = 폰트크기(1-10) * @return : * @--------------------------------------------------- */ function astfFontSize(pFont) { var sBuf = ""; var pW = 0; var pH = 0; if ( PrnKind == 2 || PrnKind == 7 ) { if(pFont == 6 || pFont == 7 || pFont == 10){ sBuf ="L0202K8D"; } else { sBuf ="L0101K9D"; } } else { if(pFont == 1){ pH = 21; pW = 10; } else if(pFont == 2){ pH = 26; pW = 19; } else if(pFont == 3){ pH = 31; pW = 23; } else if(pFont == 4){ pH = 36; pW = 28; } else if(pFont == 5){ pH = 41; pW = 33; } else if(pFont == 6){ pH = 46; pW = 38; } else if(pFont == 7){ pH = 50; pW = 43; } else if(pFont == 8){ pH = 55; pW = 48; } else if(pFont == 9){ pH = 60; pW = 53; } else if(pFont == 10){ pH = 70; pW = 62; } else if(pFont == 11){ pH = 25; pW = 13; } else if(pFont == 21){ pH = 25; pW = 19; } else if(pFont == 24){ pH = 26; pW = 16; } else if(pFont == 27){ pH = 31; pW = 26; } else if(pFont == 28){ pH = 30; pW = 19; }else if(pFont == 29){ pH = 31; pW = 20; }else if(pFont == 31){ pH = 33; pW = 23; } else if(pFont == 32){ pH = 35; pW = 24; } else if(pFont == 33){ pH = 35; pW = 25; } else if(pFont == 34){ pH = 35; pW = 26; } else if(pFont == 35){ pH = 35; pW = 28; } sBuf = "^AQN,"+pH+","+pW; } return sBuf; } /** * @group : commonweb * @ver : 2008.07.14 * @by : 나윤상 * @--------------------------------------------------- * @type : function * @access : public * @desc : 노드셋 내의 Not Null 컬럼 체크 * @param : pNodeSet = 대상 노드셋 * pCol = 검증대상 컬럼 * pMsg = 출력될 메시지 * @return : * @--------------------------------------------------- */ function astfNullValidation(pNodeSet, pCol, pMsg) { var cntnull = model.getXPathValue("count(" + pNodeSet + " [normalize-space(string(" + pCol + ")) = ''])"); if(cntnull > 0) { messageBox(pMsg , "C001"); return false; } return true; } /** * @group : commonweb * @ver : 2008.07.21 * @by : 나윤상 * @--------------------------------------------------- * @type : function * @access : public * @desc : srcNodeSet의 모든 노드셋을 refNodeSet으로 복사한다.(노드셋 리네임 복사) * @param : srcNodeSet = 원본 노드셋 * refNodeSet = 복사해서 넣을 노드셋 * @return : * @--------------------------------------------------- */ function astfCopyRenameNodeSet(refNodeSet, srcNodeSet) { var refNodeCnt = instance1.selectNodes(refNodeSet).length; for(var i = 1; i <= instance1.selectNodes(srcNodeSet).length; i++) { var makeNodeCnt = parseInt(refNodeCnt) + parseInt(i); model.makeNode(refNodeSet + "[" + makeNodeCnt + "]"); model.copyNode(refNodeSet + "[" + makeNodeCnt + "]", srcNodeSet + "[" + i + "]"); } }