knuGit Moumi
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1182 lines
64 KiB

<% /**
* **********************************************************@@ Program
* Name : report_regist.jsp Description : Author : 모우미정보통신
* Create Date : 2010-11-26 History : Modify Date : 2015-03-03 History : Modify Date : 2017-12-12 History :
* 제출자료/접수자료/자료입력
* @@***********************************************************
*/
%>
<%@ page contentType="text/html; charset=UTF-8"
import="kr.co.kihyun.beans.entity.TotTable.TotTableType"
import="java.net.URLEncoder"
import="kr.co.kihyun.beans.user.HttpSSOLogin"
import="java.net.*"
import="kr.co.kihyun.util.MUtil"
import="kr.co.kihyun.lang.MString"
import="kr.co.kihyun.lang.Encoder"
import="kr.co.kihyun.lang.MInteger"
import="kr.co.kihyun.lang.MLong"
import="kr.co.kihyun.text.html.ServletUtil"
import="kr.co.kihyun.moumi.MoumiConfig"
import="kr.co.kihyun.beans.user.*"
import="kr.co.kihyun.moumi.report.MReport"
import="kr.co.kihyun.moumi.doc.table.MTable"
import="kr.co.kihyun.moumi.doc.table.item.MItem"
import="kr.co.kihyun.beans.totsys.report.ReportRegistManager"
import="kr.co.kihyun.beans.totsys.report.ReportDataSet"
import="kr.co.kihyun.beans.totsys.report.ReportUpdate"
import="kr.co.kihyun.text.html.TagFilter"
import="kr.co.kihyun.beans.totsys.doc.table.item.ItemList"
import="kr.co.kihyun.beans.totsys.menu.MenuBean"
import="kr.co.kihyun.lang.MLong"
import="javax.jdo.PersistenceManager"
import="javax.jdo.Transaction"
import="kr.co.kihyun.beans.entity.util.*"
import="kr.co.kihyun.prop.QueryStringList"
import="kr.co.kihyun.db.CommonDBManager"
import="java.sql.ResultSet"
import="kr.co.kihyun.beans.entity.*"%>
<%@page import="kr.co.kihyun.util.Base64_2"%>
<%@page import="java.util.Map.Entry"%>
<%@page import="java.util.List"%>
<%@page import="kr.co.kihyun.beans.entity.TotDoc"%>
<%@page import="kr.co.kihyun.beans.entity.TotReport"%>
<%@page import="kr.co.kihyun.beans.entity.TotReportProcess"%>
<%@ include file="/totsys/common/inc/sec/secure.inc.jsp"%>
<%
PersistenceManager pm = new MPersistenceManager(PMF.get().getPersistenceManager());
Transaction tx = pm.currentTransaction();
try {
Long reportID = MLong.parseLong(request.getParameter("reportID"));
/* 미결함 확인 */
/****
boolean isMigulham = false;
if(reportID == null){
out.println("현재 접속자 수가 많아 서비스가 원할하지 않습니다. 잠시후 이용하여 주시기 바랍니다.");
return;
}
String sql = QueryStringList.CheckPrssStatusSql;
CommonDBManager cdb = new CommonDBManager();
ResultSet rs = cdb.execQuery(sql, reportID);
if(rs.next()){
isMigulham = true;
}
rs.close();
cdb.execClose();
****/
/* 미결함 확인 */
tx.begin();
TotReport totReport = null;
totReport = pm.getObjectById(TotReport.class, reportID);
Long docId = totReport.getTotDoc().getId();
int appro = MInteger.parseInt(request.getParameter("appro"),2);
String secuYn = totReport.getSecuYn();
String usID = HttpSSOLogin.getLoginID(request);
String dtID = HttpSSOLogin.getDeptID(request);
String dpName = HttpSSOLogin.getDeptName(request);
MDept mDept = pm.getObjectById(MDept.class, dtID);
String comment = Encoder.toKR(MString.checkNull(request.getParameter("comment")));
int rowCount = MInteger.parseInt(request.getParameter("rowCount"), 1);
int repoState = MInteger.parseInt(request.getParameter("repoState"), 0);
String copyForm = URLDecoder.decode(MString.checkNull(request.getParameter("copyForm")), "UTF-8");
String tables = MString.checkNull(Encoder.toJava(request.getParameter("tables")));
String tableRows = MString.checkNull(Encoder.toJava(request.getParameter("tableRows")));
String totperInfo = MString.checkNull(request.getParameter("totperInfo"));
Long downDocId = MLong.parseLong(request.getParameter("downDocID"));
String tmpMagam = MString.checkNull(Encoder.toJava(request.getParameter("tmpMagam")));
String strPage = clearXSS(request.getParameter("strPage"), "");
String findOption = clearXSS(request.getParameter("findOption"), null);
String findWord = clearXSS(Encoder.toJava(request.getParameter("findWord")), null);
String modifyMode = clearXSS(request.getParameter("modifyMode"), "");
//tottable 없을경우 더미 인서트
if(totReport.getTotDoc().getTotTables().size()==0){
TotTable totTable = new TotTable(totReport.getTotDoc());
totTable.setType(TotTableType.DYNA);
totTable.setTypes("1");
totTable.setItemSize(3);
totTable.setForm("<table><tr><td></td></tr></table>");
pm.makePersistent(totTable);
totReport.getTotDoc().setForm("<table><tr><td></td></tr></table>");
}
ReportRegistManager reportRegistManager = new ReportRegistManager(request, totReport.getTotDoc(), rowCount, tableRows);
int tableType = reportRegistManager.getTableType();
String insertForm = reportRegistManager.getInsertForm();
String baseInsertForm = reportRegistManager.getInsertForm();
String putValScript = reportRegistManager.getPutValScript();
String changeAllScript = reportRegistManager.getChangeAllScript();
// String docName = "";
String boxName = "acceptbox";
if (tableRows.equals("") || tableRows == null) {
tableRows = totReport.getTotDoc().getTotTables().isEmpty() ? "" : totReport.getTotDoc().getTotTables().iterator().next().getTypes().replaceAll("0", "1");
}
//tableType = MTable.DYNA;
////////////////////////////////// 동적표에서만 사용 //////////////////////////////////
String addJavaScript = "";
String inDataJavaScript = "";
String hiddenData = "";
String insertInputCellName = "";
//if (tableType == MTable.DYNA) {
addJavaScript = reportRegistManager.getAddJavaScript();
inDataJavaScript = reportRegistManager.getInDataJavaScript();
hiddenData = reportRegistManager.getHiddenData();
insertInputCellName = reportRegistManager.getInsertInputCellName();
//}
//=========================================서식정합성체크 시 사용====================================
if (modifyMode.equals("addRow") || modifyMode.equals("delRow")) {
session.setAttribute("insertInputCellName", insertInputCellName);
}
String insertInputCellNameFromSession = (String) session.getAttribute("insertInputCellName");
if (insertInputCellNameFromSession == null) {
insertInputCellNameFromSession = insertInputCellName;
}
//==================================================================================================
reportRegistManager = null;
session.setAttribute("regSuccTargetURI", "/totsys/repoper/mydocbox/returnbox/report_list.jsp");
String isCopyForm = "N";
if (!copyForm.equals("")) {
isCopyForm = "Y";
ReportDataSet reportDataSet = new ReportDataSet();
insertForm = reportDataSet.setForm(insertForm, copyForm);
if (reportDataSet.getChange() == 0) {
//입력하신 서식이 등록서식과 같지 않거나 오류가 존재합니다.
%>
<script>alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.formError")%>')</script>
<%
} else {
inDataJavaScript = "";
}
}
String doctName2 = totReport.getTotDoc().getName();
String boardGroupID = Category.ID_TOT_DOC_COMMENT;
String url = clearXSS(request.getParameter("url"), "");
if (url == null) {
url = "";
}
String boardContents = "";
Board totperComment = totReport.getTotDoc().getBoard();
Long boardId = totReport.getTotDoc().getBoard().getId();
if (totperComment.getContents() != null ) {
boardContents = TagFilter.convertSpace(totperComment.getContents());
}
int appType = 0;
if (totReport.getTotDoc().getAppendType() == TotDocAppendType.FILE) {
appType = 1;
} else if (totReport.getTotDoc().getAppendType() == TotDocAppendType.SYSTEM) {
appType = 3;
}
tx.commit();
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title><%=MoumiConfig.getTitle()%></title>
<link rel="stylesheet" href="/totsys/common/css/text.css" type="text/css">
<link rel="stylesheet" href="/totsys/common/css/kecttep.css" type="text/css">
<link rel="stylesheet" href="/totsys/common/css/tabs.css" type="text/css">
<link rel="stylesheet" href="/totsys/common/css/SquareButtons.css" type="text/css">
<link rel="stylesheet" href="/totsys/common/css/contentStyle.css" type="text/css">
<link rel="stylesheet" href="/totsys/common/css/basic.css" type="text/css">
<script src="/totsys/common/js/rollover.js"></script>
<script src="/totsys/common/js/util.js"></script>
<script src="/totsys/common/js/calendar.js"></script>
<script src="/totsys/common/js/drag.js"></script>
<script src="/totsys/common/js/popup.js"></script>
<script src="/totsys/common/js/jquery-1.12.4.min.js"></script>
<script src="/totsys/common/js/jquery.custom.indicator.js"></script>
<script src="/totsys/common/js/jquery.fixFormTable.js"></script>
<script>
//====================================서식정합성체크 시 사용되는 변수=================================
var cellNames = "<%=insertInputCellNameFromSession%>";
var validDate = /^(19|20)\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[0-1])$/;
var validNum = /^[-]?\d+(?:[.]\d+)?$/;
var validCharZero = /.*\..*0$/;
// var validCharZeroSt = /^0\d/;
//==================================================================================================
/*
* 목록페이지로 이동처리하는 함수
*/
function fn_goToList() {
document.listForm.submit();
}
function fn_recogCheck() {
alert('제출자료가 접수상태가 아닙니다. \n제출진행자료 또는 전체제출자료에서 확인하시기 바랍니다.');
fn_goToList();
return;
}
function nextblur(type) {
var items = "<%=insertInputCellName%>";
var count = 0;
splitItems = items.split(",");
for (i = 0; i < splitItems.length; i++) {
if (splitItems[i] == type)
break;
count++;
}
if (splitItems.length <= count + 1)
dform[type].blur();
else
dform[splitItems[count + 1]].focus();
}
function NotDocGO() {
var bool = confirm('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notTrans")%>');
if (bool) {
NotDoc.submit();
} else
return;
}
<%= putValScript%>
function changeAll() {
<%= changeAllScript%>
}
/********** userfile list와 serverfile list를 배열로 저장 **********/
function viewFrm(num) {
name = "fileUp" + num;
eval(name + ".style.visibility = \"visible\";");
eval(name + ".style.display = \"block\";");
dform.upFile.focus();
}
function viewNote() {
var width = 600;
var height = 450;
var leftpos = (screen.width - width) / 2;
var toppos = (screen.height - height) / 2;
window.open("/totsys/common/web/note/popup_note.jsp", "", "width=" + width + ", height=" + height + ", toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left= " + leftpos + " ,top= " + toppos);
}
function deptCheck(insertType) {
if($(":input:radio[name=appro]:checked").val() == undefined || $(":input:radio[name=appro]:checked").val() == ''){
alert("자료공람 여부를 선택하여야 합니다.");
dform.appro.focus();
return;
}
if (insertType != 3 && !fn_CellValueCheck()) {
return false;
}
if (<%=tableType%> == 1 && <%=appType%> != 1)
{
var tmp = document.modifyForm.rowCount.value;
if (parseInt(tmp) < 1)
{
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.addRow")%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return false;
}
}
/* 부서코드 입력 안하게
var url = '/totsys/common/web/dept_check/popup_reportsend.jsp?deptID=<%= dtID%>&deptName=<%= dpName%>';
var target = 'deptCheck';
var width = 385;
var height = 221;
var align = 'center';
var valign = 'middle';
var scroll = 'no';
var resize = 'no';
<%if (changeAllScript.length() > 0) {%>
changeAll();changeAll();changeAll();changeAll();
<%}%>
var farwindow = null;
farwindow = getOpener(url, target, width, height, align, valign, scroll, resize);
farwindow.focus();
*/
/*
if(<%=secuYn%> == null || <%=secuYn%> == ""){
if(confirm("입력한 자료를 보안지정 하시겠습니까? ")){
secuYn = "Y";
}else{
secuYn = "N";
}
}
document.dform.secuYn.value = secuYn;
*/
dform.insertType.value = insertType;
dform.acptNum.value = document.getElementById("acptNumForUI").value;
if (insertType == 0) {
if (<%=appType%> == 1) {
//20170822 수정 by wonseok Lee
if (dform.fileCount.value <= 0) {
if (!confirm("<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notRelationDocAdd")%>"))
return;
}
}else{
if(!confirm("입력하신 자료를 저장하시겠습니까?"))
return;
}
reportShare();
dform.submit();
}else if (insertType == 3) {
check = confirm("<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notTrans")%>");
if (check == true) {
document.dform.stat.value = "1";
document.dform.target = "hiddenFrame";
document.dform.callbackFunc.value = "parent.fn_goToList()";
dform.submit();
} else {
return;
}
} else {
dform.submit();
}
}
function reportShare(){
var appro = $(":input:radio[name=appro]:checked");
dform.appro.value = appro.val();
if(<%=appType%> != 1){
modifyForm.appro.value = appro.val();
}
}
//function ShareReport() {
//dform.appro.value = document.getElementById("appro").value;
//var url = '/totsys/common/web/note/popup_report_share_check.jsp';
//var rtnValue = window.showModalDialog(url,"popup_report_share_check.jsp","dialogHeight=150px; dialogWidth=400px; center; scroll:no; status:no");
// 동의하면 다음 단계. 동의하지 않으면 종료
//if(rtnValue == 'YES') {
// 동의
// appro = 1;
//} else {
// appro = 0;
// 원래페이지로...
//}
//var appro = '<%=appro%>';
//if(appro == null ||appro == "" || appro == 0){
//if(confirm("확인을 클릭하면 입력하신 자료가 \n부서(학교)내 사용자에게 제출이 완료된 후 공유됩니다. \n\n공유하시겠습니까? ")){
// appro = 1;
//}else{
// appro = 0;
//}
//}
//document.dform.appro.value = appro;
//}
function ShowCopy() {
var appro = $(":input:radio[name=appro]:checked").val();
window.open('./popup_copy_form.jsp?appro='+appro, 'makecopy', 'width=950,height=770,scrollbars=no,resizable=no');
}
function notDoc() {
document.NotDoc.submit();
}
function responsibleChange() {
window.open('./popup_rep_transfer.jsp?reportID=<%=reportID%>&boxName=<%=boxName%>&hideUser=false', '', 'width=607, height=546,toolbar=no, directories=no, status=no, menubar=no, resizable=no');
}
function connRegist() {
subReg.submit();
}
/* 나이스 해당없음 상신 시작 */
// function sendNeisRecog() {
// var target_win = null;
// target_win = window.open("http://<%= request.getServerName().replace("ats", "gan")%>/displayXUI.jsp?mipid=cm.bcm.cfm.rt::bcm_cfmrt00_m01.xfdl&reportID=<%=reportID%>&USER_ID=<%=usID%>&DEPT_CODE=<%=dtID%>&doctName=<%=Base64_2.encode("해당없음자료_") + doctName2%>", "NEIS_POPUP", "width=835px, height=555px, top=0px, left=0px, toolbar=no, scrollbars=no, resizable=no, status=no, location=no, menubar=no, fullscreen=no");
// }
/* 나이스 해당없음 상신 끝 */
/*
* 자료입력 테이블 input element 뒤에 font, span 등의 불필요한 element 를 삭제처리. 시작
* 2014.08.21 by YoungJun Cho.
*/
var rownums=[];
$(document).ready(function() {
$.fixRegistFormTable($("form[name='dform']").find("table"), {});
//ie10,11 호환성보기 수정 - 테두리 없어지는 문제 수정
$('[name=dform] > table').attr({'border':'1','bo':'true'}).css('border','1px solid #000')
.find('td').each(function(i,o){
if($(o).closest('table').attr('bo')=='true'){
$(this).css('border','1px solid #000');
}
});
$('#formDiv span').css('line-height','2');
if('<%=appType%>'=='1'){
$('#formDiv').hide();
}
else{
//수식 배경색
$('[iseval=true]').css({'background-color':'#cbddfb'});
// // 행번호 표번호
// setTimeout(setRowNum,500);
}
});
function setRowNum(){
// 행번호 표번호
$('[name=dform]').css({'position':'relative'});
$('[name=dform] > table').css('margin-left','20px').each(function(tblidx){
rownums[tblidx]=0;
$(this).prepend('<caption style="text-align:left;font-size:12px;font-weight:bold;">'+(tblidx+1)+' 번 표</caption>');
$(this).find('tr').each(function(tridx,tr){
if($(tr).find('input').length>0||$(tr).find('select').length>0){
rownums[tblidx]++;
var pos=$(tr).position();
var top=pos.top;
var left=pos.left;
var trnum=$('<div class="trnum" style="position:absolute;height:'+$(tr).outerHeight()+'px;line-height:'+$(tr).outerHeight()+'px">'+rownums[tblidx]+'.</div>')
.appendTo('[name=dform]');
if(document.documentMode<10){
top-=5;
left+=5;
}else{
left-=trnum.width()+3;
}
trnum.css({'left':left+'px','top':top+'px'});
}
});
});
}
/* 자료입력 테이블 input element 뒤에 font, span 등의 불필요한 element 를 삭제처리. 끝 */
</script>
<%--if (tableType == MTable.DYNA) {--%>
<script>
//동적 표에서만 사용
function insertData() {
<%= inDataJavaScript%>
//SelectBox에 표복사입력 시 등록된 값을 설정
$("select").each(function() {
var selected_val = $(this).attr("selected_val");
if (selected_val != null) {
$(this).val(selected_val);
}
});
fn_CellValueCheck();
//콤보박스 초기값을 처음 값으로
$('form[name=dform] select').each(function(){
if(this.selectedIndex==-1){
this.selectedIndex=0;
}
});
}
//================================================================================================//
var $formCells = new Array();
$(document).ready(function() {
var arrCells = cellNames.split(",");
for (var i = 0; i < arrCells.length; i++) {
$formCells[i] = $('input[type="text"][name="' + arrCells[i] + '"]');
}
});
function fn_CellValueCheck() {
var v_html = "";
var arrCells = cellNames.split(",");
for(var i = 0; i < arrCells.length; i++ ) {
if ($formCells[i].attr("value") != null || $formCells[i].attr("itemType") != null){
//애트리뷰트의 값이 아닌 입력값을 가져와야함
//var val = $formCells[i].attr("value");
var val = $formCells[i].val();
// if( $.trim(val) != "") {
var v_itemType = $formCells[i].attr("itemType");
}else{
var val = "";
var v_itemType = "";
}
if(v_itemType.search("2") != -1) {
if( isNaN(val) || !validNum.test(val)) {
//if( v_html != "" ) v_html += "<br>";
//v_html += "<a href='#' id='cell_"+arrCells[i]+"' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 숫자이어야 합니다.</a>";
v_html += "<li id='cell_"+arrCells[i]+"'><a href='javascript:void(0);' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 숫자이어야 합니다.</a></li>";
}
}
else if(v_itemType.search("3") != -1) {
if( $.trim(val) != "") {
if( !validDate.test(val) ) {
//if( v_html != "" ) v_html += "<br>";
//v_html += "<a href='#' id='cell_"+arrCells[i]+"' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 날짜형식(YYYY-MM-DD)이어야 합니다.</a>";
v_html += "<li id='cell_"+arrCells[i]+"'><a href='javascript:void(0);' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 날짜형식(YYYY-MM-DD)이어야 합니다.</a></li>";
}
// }else{
}
}
else if(v_itemType.search("1") != -1) {
if( $.trim(val) != "") {
if( validCharZero.test(val) /*|| validCharZeroSt.test(val)*/) {
//if( v_html != "" ) v_html += "<br>";
//v_html += "<a href='#' id='cell_"+arrCells[i]+"' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 날짜형식(YYYY-MM-DD)이어야 합니다.</a>";
v_html += "<li id='cell_"+arrCells[i]+"'><a href='javascript:void(0);' onclick='document.dform."+arrCells[i]+".focus();document.dform."+arrCells[i]+".select(); return false;'>" + arrCells[i] + "은 데이타를 수정하여야 합니다.</a></li>";
}
// }else{
}
}
}
$('#div_error').html("");
if( v_html != "" ) {
//v_html = "*************에 러 목 록*************<br>" + v_html;
v_html = "<div class='div_error_title'>에 러 목 록</div><ul class='ul_error_list'>" + v_html + "</ul>";
$('#div_error').html(v_html);
$('#div_error').fadeIn();
return false;
}else{
return true;
}
}
function fn_checkValue(obj, valueType) {
if (valueType == '2') {
$selectedCell = $('#cell_' + obj.name);
if ($selectedCell) {
var val = obj.value;
if (!isNaN(val)) {
//$selectedCell.next().remove();
//$selectedCell.remove();
$selectedCell.animate({"margin-left": "-=100%"}, 600, function() {
// $(this).remove()
$selectedCell.remove();
});
}
}
}else if(valueType == '1'){
$selectedCell = $('#cell_' + obj.name);
if($selectedCell){
var val = obj.value;
if(!validCharZero.test(val) /*|| !validCharZeroSt.test(val)*/){
$selectedCell.animate({"margin-left": "-=100%"}, 600, function() {
$selectedCell.remove();
});
}
}
}
}
function fn_CalSetValue(obj, value) {
$selectedCell = $('#cell_' + obj.name);
if ($selectedCell) {
var val = obj.value;
if (validDate.test(val)) {
//$selectedCell.next().remove();
//$selectedCell.remove();
$selectedCell.animate({"margin-left": "-=100%"}, 600, function() {
$(this).remove()
});
}
}
}
// function fn_showDiv() {
// alert($('#div_error').html());
// }
//================================================================================================//
function lineAddNum() {
try {
var tmp = document.modifyForm.addRowNum.value;
var tr = document.modifyForm.tableRows.value;
var st = document.modifyForm.tables.value;
if (tmp == '') {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.addLine")%>');
modifyForm.addRowNum.focus();
return;
} else if (isNaN(tmp)) {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.inputNumber")%>');
document.modifyForm.addRowNum.value = '';
modifyForm.delRowNum.focus();
return;
} else if (1 > parseInt(tmp)) {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.oneMore")%>');
document.modifyForm.addRowNum.value = '';
modifyForm.delRowNum.focus();
return;
}
$.customIndicator.show(window.self); /* indicator 추가 */
var trlist = tr.split(",");
trlist[parseInt(st) - 1] = parseInt(tmp) + parseInt(trlist[parseInt(st) - 1]);
for (i = 0; i < trlist.length; i++) {
if (i == 0)
tr = trlist[i];
else
tr = tr + "," + trlist[i];
}
var num = parseInt(tmp) + parseInt('<%= (rowCount)%>');
<%= addJavaScript%>
modifyForm.rowCount.value = num;
modifyForm.modifyMode.value = 'addRow';
modifyForm.tableRows.value = tr;
modifyForm.appro.value = $(":input:radio[name=appro]:checked").val();
modifyForm.submit();
// $.post(modifyForm.action,$(modifyForm).serialize(),function(data){
// $('#formDiv').html($(data).find('#formDiv').html());
// $.customIndicator.hide(window.self);
// }).fail(function(){
// alert('행추가에 실패했습니다.');
// location.href=location.href;
// },'html');
} catch (e) {
alert(e);
}
}
function lineDel() {
var tmp = document.modifyForm.delRowNum.value;
var tr = document.modifyForm.tableRows.value;
var st = document.modifyForm.tables.value;
var trlist = tr.split(",");
if (tmp == '') {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.deleteLine")%>');
modifyForm.delRowNum.focus();
return;
} else if (isNaN(tmp)) {
//alert("A");
//숫자를 입력하세요!
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.inputNumber")%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return;
} else if (1 > parseInt(tmp)) {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.oneMore")%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return;
} else if (parseInt(tmp) > parseInt(trlist[parseInt(st) - 1])) {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.lessLine")%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return;
} else if ("<%=rowCount%>" <= 1) {
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notDeleteLine")%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return;
}
/*else if(parseInt(tmp) > <%--= rowCount--%>){
alert('<--%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.lessLine")--%>');
document.modifyForm.delRowNum.value = '';
modifyForm.delRowNum.focus();
return;
}*/
trlist[parseInt(st) - 1] = parseInt(trlist[parseInt(st) - 1]) - 1;
//테이블 모든행 삭제 안되게
if(trlist[parseInt(st) - 1]==0){
alert('표에는 1개 이상의 행이 존재해야 합니다.');
return;
}
for (i = 0; i < trlist.length; i++) {
if (i == 0)
tr = trlist[i];
else
tr = tr + "," + trlist[i];
}
<%= addJavaScript%>
modifyForm.rowCount.value = '<%= (rowCount - 1)%>';
modifyForm.modifyMode.value = 'delRow';
modifyForm.tableRows.value = tr;
modifyForm.appro.value = $(":input:radio[name=appro]:checked").val();
modifyForm.submit();
}
function checkReport() {
if (1 > dform.rowCount.value) {
alert('<%= MoumiConfig.getMessageBundle().getString("moumi.message.popup.notSubmitDoc")%>');
return;
}
openPopup('./popup_dept_check.jsp?deptID=<%= dtID%>&deptName=<%= dpName%>', '350', '290', 'no');
}
/*
* 입력한 데이타의 크기를 체크하여 기본 크기 이상인 경우 저장을 제한함
* 2015.05.18 by jskim.
*/
function inDataSizeCheck(insertType){
var inData = document.dform.inForm.value;
var inDataSize = inData.length;
var baseDataSize = 5123840;
if(inDataSize > baseDataSize){
alert("현재 입력된 data 크기가 약" + Math.round(inDataSize/1024) + "K 입니다. \n저장할 수 있는 data크기는 " + Math.round(baseDataSize/1024) + "K로 제한되어 저장할 수 없습니다"
+ "\n첨부파일로 제출하셔야 합니다.");
return;
}
deptCheck(insertType);
}
function getIframeFileList(){
var ifrm = document.getElementById('subfileList');
ifrm.src="/totsys/common/inc/board/doc/write_file_list.jsp?reportID=<%=reportID%>&docID=<%=docId%>&dtID=<%=dtID%>";
}
<!-- 현재 보이는 그대로 엑셀다운 -->
var outhtml='',clone;
function downExl(ishan){
var clone=$('[name=dform]').clone();
clone.find(' > input').remove();
clone.find(' > table td').each(function(i,td){
td=$(td);
if(td.find('input,textarea').length>0){
td.html(td.find('input,textarea').val());
}else if(td.find('option').length>0){
var sname=td.find('option:selected').parent().attr('name');
var val=$('[name=dform] select[name='+sname+'] option:selected').val();
td.html(val);
}else{
td.html(td.text());
}
});
clone.find('hr:last').remove();
outhtml=clone.html().replace(/<!--[\s\S]*?-->/g,'');
//alert(outhtml);return;
$('#downexl').remove();
var form='<form id="downexl" style="display:none;" method="post" target="downexl" action="/totsys/common/inc/documents/report/report_view_excel2.jsp">';
//컨트롤키 누르고 클릭시 utf-8 로 다운로드
try{
if(event.ctrlKey){
if(confirm("인코딩을 UTF-8로 저장하시겠습니까?")){
form+='<input type="hidden" name="enc" value="utf-8"/>';
}else{
return;
}
}
}catch(e){}
form+='<input type="hidden" name="downexl" value="true"/>';
form+='<input type="hidden" name="outhtml" value=""/>';
if(ishan)form+='<input type="hidden" name="ishan" value="true"/>';
form+='<iframe style="display:none;" name="downexl"></iframe>';
form+='</form>';
form=$(form).appendTo('body');
outhtml=encodeURIComponent(outhtml);
form.find('[name=outhtml]').val(outhtml);
form.submit();
}
</script>
<%--}--%>
</HEAD>
<body onload="insertData();<%if (!MString.isNull(boardContents)) {%>totperInfo('<%=boardId%>', '<%= boardGroupID%>');<%}%>">
<form name="listForm" method="post" action="/totsys/repoper/mydocbox/returnbox/report_list.jsp">
<input type="hidden" name="strPage" value="<%= strPage%>">
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>">
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>">
</form>
<form name="NotDoc" method="post" action="/servlet/kr.co.kihyun.beans.totsys.repoper.HttpNotUpdate">
<input type="hidden" name="reportID" value="<%= reportID%>">
</form>
<form name="subReg" action="/totsys/totper/mydocbox/regbox/sub_doc_user_regist.jsp" method="post">
<input type="hidden" name="strPage" value="<%= strPage%>">
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>">
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>">
<input type="hidden" name="reportID" value="<%= reportID%>">
<input type="hidden" name="boxName" value="acceptbox">
<input type="hidden" name="tmpMagam" value="<%=tmpMagam%>">
</form>
<form name="inputExcel" method="post" action="./report_regist.jsp">
<input type="hidden" name="strPage" value="<%= strPage%>">
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>">
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>">
<input type="hidden" name="comment" value="<%= comment%>">
<input type="hidden" name="reportID" value="<%= reportID%>">
<input type="hidden" name="rowCount" value="<%= rowCount%>"> <!--<input type="hidden" name="modifyMode" value="addRow">-->
<input type="hidden" name="repoState" value="<%= repoState%>">
<input type="hidden" name="copyForm" value="">
<input type="hidden" name="tables" value="<%= tables%>">
<input type="hidden" name="tableRows" value="<%= tableRows%>"> <%= hiddenData%>
<input type="hidden" name="appro" value="">
</form>
<div>
<table>
<!--jsp:include page="/totsys/common/inc/totper/top/top.jsp" flush="true" /-->
<jsp:include page="/totsys/common/inc/title/title.jsp" flush="true" >
<jsp:param value="<%= doctName2%>" name="desc" />
</jsp:include>
</table>
</div>
<div id="header">
<ul id="primary">
<!--<li><a
href="/totsys/repoper/mydocbox/returnbox/report_view.jsp?reportID=<%= reportID%>&boxName=acceptbox"><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.information")%></a></li>-->
<!-- ie10,11 에서 호환성 보기 문제 수정 a,span 태그에 스타일 추가 -->
<li><span class="kecttep_menu_focous" style="padding: 0px; line-height: 25px;"><%= MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.doc")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.input")%></span></li>
<!-- 2연계시 버튼 안보이게-->
<%if (MoumiConfig.is2Step() && totReport.getTotDoc().getId() < 1700000000) {%>
<% if (totReport.getTotDoc().getMasterTotReport() == null) {%>
<% if (mDept.getGrade().toString() == "") {%>
<li><a href="#" onclick="connRegist();" style="padding: 0px; line-height: 25px;"><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.subDocRegist")%></a></li>
<% }
}
}%>
<!-- totReport.getTotDoc().getMasterTotReport().getSlaveTotDoc().equals(null) == null ? false : totReport.getTotDoc().getMasterTotReport().getSlaveTotDoc() == totReport.getTotDoc() ? true : false -->
</ul>
</div>
<div id="main">
<div id="contents">
<table>
<tr class="toolbar vMiddle">
<td class="tal">
<table>
<tr>
<td class="kecttep_button_td">
<a href="#" onclick="deptCheck(3);">
<img src="/totsys/common/images/bt_no.gif" alt="<%= MoumiConfig.getMessageBundle().getString("moumi.message.button_small.not")%>" />
</a>
<a href="#" onclick="window.open('/totsys/repoper/mydocbox/returnbox/popup_rep_transfer11.jsp?reportID=<%=reportID%>&boxName=returnbox&hideUser=false&callbackFunc=fn_goToList()', '', 'width=572, height=680,toolbar=no, directories=no, status=no, menubar=no, resizable=no');">
<img src="/totsys/common/images/bt_damdang.gif" alt="담당변경" />
</a>
<%if (!MString.isNull(boardContents) /*|| !(totperComment.getAttachments().isEmpty())*/) {%>
<a href="#" onclick="totperInfo('<%=boardId%>', '<%= boardGroupID%>');">
<img src="/totsys/common/images/bt_info_modify.gif" alt="<%= MoumiConfig.getMessageBundle().getString("moumi.message.button_small.totperInfo")%>" />
</a>
<%}%>
<a href="#" onclick="fn_goToList();">
<img src="/totsys/common/images/bt_doc_list.gif" alt="<%= MoumiConfig.getMessageBundle().getString("moumi.message.doc")%><%= MoumiConfig.getMessageBundle().getString("moumi.message.button.boardList")%>" />
</a>
</td>
</tr>
</table>
</td>
</tr>
<!--1픽셀 띄우기-->
<tr>
<td style="height: 10px;"></td>
</tr>
<tr>
<!-- 내용-->
<td style="vertical-align: top;">
<table>
<%--if (tableType == MTable.DYNA) {--%>
<!-- 집계자 정보 시작 -->
<jsp:include page="/totsys/common/inc/totper/totper.jsp" flush="true">
<jsp:param name="docID" value='<%= docId%>' />
</jsp:include>
<!-- 집계자 정보 끝 -->
<tr style="height: 10px;">
<td style="width: 149px; height: 10px;"></td>
<td style="height: 10px;"></td>
<td style="width: 149px; height: 10px;"></td>
<td style="height: 10px;"></td>
</tr>
</table>
</td>
<tr>
<td>
<table>
<tr>
<td class="kecttep_title"><img alt="말머리" src="/totsys/common/images/ico_3.gif">집계 정보</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="kecttep_list_table">
<tr>
<td class="kecttep_tdmenu_middle" style="padding-left: 20px; width: 150px;">
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.executionCode")%>
</td>
<td class="kecttep_last_graytd" style="padding-left: 15px; width: 300px;">
<%= totReport.getTotDoc().getExecutionCode()%>
</td>
<td class="kecttep_tdmenu_middle" style="padding-left: 20px; width: 150px;">
자료공람 여부
</td>
<td class="kecttep_last_graytd" style="padding-left: 15px; padding-top: 4px;" >
<input id="appro" name="appro" type="radio" value=1 onclick="reportShare()" <%= appro == 2 ? "" : appro == 1 ? "checked" : "" %>> 공람(Y)&nbsp;
<input id="appro" name="appro" type="radio" value=0 onclick="reportShare()" <%= appro == 2 ? "" : appro == 0 ? "checked" : "" %>> 비공람(N)&nbsp;
</td>
</tr>
<tr>
<td class="kecttep_tdmenu" style="padding-left: 20px;">
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_report.acceptanceCode")%>
</td>
<td colspan="3" class="kecttep_last_graytd_bottom" style="padding-left: 15px;">
<%= HttpSSOLogin.getDeptName(request)%>_
<input id="acptNumForUI" name="acptNumForUI" type="text" class="inputtxt" style="width: 70px;">
<span class="ml_5">* <%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_report.acceptexplanation")%></span>
<span style="color: red;"><%="(필수입력항목은 아닙니다)"%></span>
</td>
</tr>
<tr style="height: 10px;">
<td colspan="4" style="width: 150px; height: 10px;"></td>
</tr>
<tr>
<td colspan="4">
<%-- if (totReport.getTotDoc().getAppendType() != TotDocAppendType.FILE) {--%>
<% if (appType != 1) {%>
<form name="modifyForm" method="post" action="./report_regist.jsp">
<input type="hidden" name="strPage" value="<%= strPage%>">
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>">
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>">
<input type="hidden" name="comment" value="<%= comment%>">
<input type="hidden" name="reportID" value="<%= reportID%>">
<input type="hidden" name="rowCount" value="<%= rowCount%>">
<input type="hidden" name="modifyMode" value="addRow">
<input type="hidden" name="repoState" value="<%= repoState%>">
<input type="hidden" name="tableRows" value="<%= tableRows%>">
<input type="hidden" name="appro" value="">
<table>
<%= hiddenData%>
<tr>
<td style="width: 80px; text-align: right; vertical-align: middle;">
<select name="tables">
<%
String[] tableDiv = totReport.getTotDoc().getTotTables().isEmpty() ? new String[0] : totReport.getTotDoc().getTotTables().iterator().next().getTypes().split(",");
for (int i = 0; i < tableDiv.length; i++) {
if (tableDiv[i].equals("1")) {%>
<option value="<%=i + 1%>"><%=i + 1%></option>
<%}
}%>
</select>
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.numTable")%>
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 62px; text-align: right; vertical-align: middle; background:url('/totsys/common/images/bt_line_addbg.png') 0 2px no-repeat">
<input name="addRowNum" type="text" size="3" maxlength="3" class="inputtxt" >
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 56px; vertical-align: middle;">
<img alt="행추가" onclick="lineAddNum();" style="cursor: pointer; width: 56px; height: 24px;" src="/totsys/common/images/bt_line_add_out.gif" />
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 62px; text-align: right; vertical-align: middle; background:url('/totsys/common/images/bt_line_delbg.png') 0 2px no-repeat;">
<input name="delRowNum" type="text" size="3" maxlength="3" class="inputtxt" />
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 85px; vertical-align: middle;">
<img alt="행삭제" onclick="lineDel();" style="cursor: pointer; width: 85px; height: 24px;" src="/totsys/common/images/bt_line_del_out.gif">
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 93px;">
<!--
<a href="/totsys/common/inc/documents/report/report_view_excel2.jsp?reportID=<%=reportID%>&docId=<%=docId%>" target="_parent">
<img src="/totsys/common/images/bt_excel.gif" alt="액셀다운(원본)" />
</a>
-->
<img src="/totsys/common/images/bt_excel.gif" alt="액셀다운" style="cursor: pointer;" onclick="downExl()"/>
</td>
<td style="width: 5px;">&nbsp;</td>
<!-- 한글저장 -->
<td style="width: 83px;">
<img src="/totsys/common/images/bt_hwp_save.gif" alt="한글다운" style="cursor: pointer;" onclick="downExl(true)" width="83" height="20"/>
</td>
<td style="width: 5px;">&nbsp;</td>
<td style="width: 93px;">
<a href="#" onClick='ShowCopy();'>
<img src="/totsys/common/images/bt_copytable.gif" alt="표복사입력" />
</a>
</td>
<td style="width: 5px;">&nbsp;</td>
<td>
<a href="#"
onClick="changeAll();
changeAll();
changeAll();
return inDataSizeCheck(0);"> <!--changeAll() 함수 3개 제외함-->
<img alt="자료저장" src="/totsys/common/images/bt_reportsend2.gif">
</a>
</td>
</tr>
</table>
</form>
<!-- 행추가, 행삭제 끝-->
<div class="pl_20 mt_5" style="color: red;">* 행 추가를 실행하는 경우 집계자가 작성한 서식의 입력행만큼 추가됩니다.</div>
<div class="pl_30 mb_5" style="color: red;">예)기본 입력행이 3행인 경우 제출자가 1행을 추가하면 3행이 추가됩니다.</div>
<% }%>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height: 10px;"></td>
</tr>
<%--}--%>
<tr style="vertical-align: top;">
<td style="vertical-align: top; padding-top: 10px; padding-bottom: 25px; padding-left: 10px;">
<div id="formDiv" style="overflow-x: auto;">
<form name="dform" method="post"
action="/servlet/kr.co.kihyun.beans.totsys.report.HttpReportRegister"
enctype="multipart/form-data">
<input type="hidden" name="reportID" value="<%= reportID%>">
<input type="hidden" name="rowCount" value="<%= rowCount%>">
<input type="hidden" name="inForm" value='<%= URLEncoder.encode(baseInsertForm, "UTF-8")%>'>
<input type="hidden" name="repoState" value="<%= repoState%>">
<input type="hidden" name="tableRows" value="<%= tableRows%>">
<input type="hidden" name="insertType" value="">
<input type="hidden" name="repDocID" value="<%=docId%>"><!--20170816 첨부파일 경로 저장을 위해 value 추가 by wonseok Lee-->
<!--<input type="hidden" name="recog" value="<--%=recog--%>">-->
<input type="hidden" name="usrFilenames" value="">
<input type="hidden" name="svrFilenames" value="">
<input type="hidden" name="fileCount" value="0">
<input type="hidden" name="sumFileSize" value="">
<input type="hidden" name="fileInfos" value="">
<input type="hidden" name="stat" value="">
<input type=hidden name="upFile">
<input type=hidden name="doctName" value="<%= URLEncoder.encode(doctName2, "UTF-8")%>">
<input type="hidden" name="callbackFunc" value="">
<input type="hidden" name="acptNum" value="">
<input type="hidden" name="appro" value="">
<input type="hidden" name="secuYn" value="">
<!-- 보고 폼 시작 -->
<%= MString.checkNull(insertForm)%>
</form>
</div>
<div id="div_error">
</div>
</td>
</tr>
<%-- if (TotDocAppendType.SYSTEM != totReport.getTotDoc().getAppendType()) {--%>
<% if (appType != 3) {%>
<tr>
<td style="height: 10px;"></td>
</tr>
<!--%if(totReport.getTotDoc().getAppendType().equals(TotDocAppendType.COPYONLY)){%--> <!--//appendType값을 구해와서 비교//-->
<!--%}else{%-->
<!--//파일첨부//-->
<tr>
<td>
<span class="kecttep_title tal" style="padding-left: 5px;">
<img alt="글머리" style="vertical-align: middle;" src="/totsys/common/images/ico_1.gif" />&nbsp;[<%= MoumiConfig.getMessageBundle().getString("moumi.message.tot_report.fileUp")%>]</span>
<!--span id="memonone" style="display:none;"><a href="#" class="textbutton" onclick="listView('memo','memoshow','memonone');"><%--= MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.hidden")--%></a></span-->
<!--span id="memoshow"><a href="#" class="textbutton" onclick="listView('memo','memoshow','memonone');"><%--= MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.input")--%></a></span-->
</td>
</tr>
<tr>
<td>
<div id="memo">
<table>
<tr>
<td><!--20170811 첨부파일을 가져오기 위한 iframe추가 by wonseok Lee-->
<iframe class="blind"
src=""
id="subfileList" name="subfileList" width="720" frameborder="0" scrolling="no"
marginheight="0" marginwidth="3"></iframe></td>
</tr>
<tr>
<td><!--20170814 docID, reportID, dtID추가 by wonseok Lee-->
<iframe
src="/totsys/common/inc/board/doc/write_file_upload_dir.jsp?pageFlag=2&boardGroupID=<%= boardGroupID%>&execMode=init&mode=repoper&docID=<%=docId%>&reportID=<%=reportID%>&dtID=<%=dtID%>&maxSize=1"
id="subUpload" name="subUpload" width="720" frameborder="0" scrolling="no"
marginheight="0" marginwidth="3" height="70"></iframe></td>
</tr>
</table>
</div>
</td>
</tr>
<%}%>
<tr>
<td style="padding: 10px; text-align: left;">
<table>
<tr>
<td style="width: 3px;"></td>
<%if (changeAllScript.length() > 0) {%>
<!-- 자료저장 -->
<td>
<a href="#"
onClick='changeAll();
changeAll();
changeAll();
changeAll();'>
<img alt="계산하기" src="/totsys/common/images/bt_cal.gif">
</a></td>
<td style="width: 3px;"></td>
<%}%>
<td>
<a href="#"
onClick="changeAll();
changeAll();
changeAll();
changeAll();
return inDataSizeCheck(0);">
<img alt="자료저장" src="/totsys/common/images/bt_reportsend2.gif">
</a>
</td>
<td style="width: 3px;"></td>
<%--
<td>
<a href="#" onClick='ShowCopy();'>
<img src="/totsys/common/images/bt_copyin.gif" border="0">
</a>
</td>
<td><a href="#" onClick="return deptCheck();"><img src="/totsys/common/images/bt_reportsend.gif" border="0"></a></td>
<td width="3"></td>
<td><a href="#" onClick='history.back();'><img src="/totsys/common/images/bt_cancel2.gif" border="0"></a></td>
<td><a href="#" onClick="notDoc();"><img src="/totsys/common/images/bt_notdoc.gif" border="0"></a></td>
<td width="3"></td>
--%>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
<div id="SetWin"
style="position: absolute; Visibility: hidden; width: 100px; height: 100px; background: silver; border: 1px #333333 solid; line-height: 1.4em; padding: 3px 3px"></div>
<iframe name="hiddenFrame" frameborder="0" width="0" height="0" src="" style="display: none" />
</BODY>
</HTML>
<%
} catch (Exception ex) {
ex.printStackTrace();
out.println(kr.co.kihyun.text.html.ServletUtil.getJavaScript("location='/servlet/kr.co.kihyun.beans.user.HttpSSOLogin?mode=logout';"));
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
%>