excelSet.jsp 19 KB

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<%@ page import="weaver.hrm.*" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.systeminfo.SystemEnv" %>
<%@ page import="weaver.workflow.exceldesign.FormTemplateManager" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="ExcelLayoutManager" class="weaver.workflow.exceldesign.ExcelLayoutManager" scope="page"/>
<jsp:useBean id="ExcelFormula" class="weaver.workflow.exceldesign.ExcelFormula" scope="page"/>
<jsp:useBean id="WorkflowComInfo" class="weaver.workflow.workflow.WorkflowComInfo" scope="page"/>
<%
User user = HrmUserVarify.getUser (request , response) ;
int wfid = Util.getIntValue(request.getParameter("wfid"), 0);
int formid = Util.getIntValue(request.getParameter("formid"), 0);
int nodeid = Util.getIntValue(request.getParameter("nodeid"), 0);
boolean isFormLayout = FormTemplateManager.isFormVirtualNode(nodeid);
int isbill = Util.getIntValue(request.getParameter("isbill"), -1);
int layouttype = Util.getIntValue(request.getParameter("layouttype"), -1);
int modeid = Util.getIntValue(request.getParameter("modeid"), 0);
int nodetype = Util.getIntValue(request.getParameter("nodetype"), 0);
int nodeEditFormLayout = 0;		//标示是否是从节点编辑表单模板,保存完需另存为节点独立模板
if(!isFormLayout && FormTemplateManager.judgeLayoutBelForm(modeid))
	nodeEditFormLayout = 1;
//获取模板信息
ExcelLayoutManager.setRequest(request);
ExcelLayoutManager.setUser(user);
HashMap<String,String> ret_map = ExcelLayoutManager.doGetExcelLayout();
String layoutname = Util.null2String(ret_map.get("layoutname"));
String otherslayoutname = Util.null2String(ret_map.get("otherslayoutname"));
String datajson = Util.null2String(ret_map.get("datajson"));
String pluginjson = Util.null2String(ret_map.get("pluginjson"));
String signInputJson = Util.null2String(ret_map.get("signInputJson"));
//自定义属性写&#13;串引起模板解析报错
datajson = datajson.replaceAll("&#13;", "#title_br_replacestr#");
pluginjson = pluginjson.replaceAll("&#13;", "#title_br_replacestr#");

String scripts = Util.null2String(ret_map.get("scripts"));
int isactive = Util.getIntValue(ret_map.get("isactive"), 0);
//新版公式数据从workflow_formula_htmllayout表中读取
String datajsonFormula = ExcelFormula.getFormulasFormDB(request, user);
//获取字段、节点、SQL属性等信息
Hashtable rhs = ExcelLayoutManager.getFieldAttr4LEF();
ArrayList fieldidList = (ArrayList)rhs.get("fieldidList");
Hashtable fieldLabel_hs = (Hashtable)rhs.get("fieldLabel_hs");
Hashtable fieldAttr_hs = (Hashtable)rhs.get("fieldAttr_hs");
Hashtable fieldOnlyShow_hs = (Hashtable)rhs.get("fieldOnlyShow_hs");
Hashtable detailFieldid_hs = (Hashtable)rhs.get("detailFieldid_hs");
ArrayList detailGroupList = (ArrayList)rhs.get("detailGroupList");
Hashtable fieldSQL_hs = (Hashtable)rhs.get("fieldSQL_hs");

StringBuffer fieldAttr_sb = new StringBuffer();		//字段属性拼隐藏域串,主表和明细表字段放一起
StringBuffer fieldSQL_sb = new StringBuffer();		//字段SQL属性拼隐藏域
StringBuffer detailGroupAttr_sb = new StringBuffer();//明细表属性
String detailnum="";

//主字段隐藏域
for(int i=0; i<fieldidList.size(); i++){
	String fieldid_tmp = (String)fieldidList.get(i);
	String fieldlabel_tmp = (String)fieldLabel_hs.get("fieldlabel"+fieldid_tmp);
	String fieldAttr_tmp = Util.null2String((String)fieldAttr_hs.get("fieldAttr"+fieldid_tmp));
	fieldAttr_sb.append("<input type=\"hidden\" id=\"fieldattr"+fieldid_tmp+"\" fieldname=\""+fieldlabel_tmp+"\" nodetype=\"-1\" name=\"fieldattr"+fieldid_tmp+"\" value=\""+fieldAttr_tmp+"\">").append("\n");
	fieldAttr_sb.append("<input type=\"hidden\" id=\"fieldonlyshow"+fieldid_tmp+"\" name=\"fieldonlyshow"+fieldid_tmp+"\" value=\""+Util.null2String(fieldOnlyShow_hs.get(fieldid_tmp))+"\" />");
	String fieldSQL_tmp = Util.null2String((String)fieldSQL_hs.get("fieldsql"+fieldid_tmp));
	String datasourceid = Util.null2String((String)fieldSQL_hs.get("datasourceid"+fieldid_tmp));
	int caltype_tmp = Util.getIntValue((String)fieldSQL_hs.get("caltype"+fieldid_tmp), 0);
	int othertype_tmp = Util.getIntValue((String)fieldSQL_hs.get("othertype"+fieldid_tmp), 0);
	int transtype_tmp = Util.getIntValue((String)fieldSQL_hs.get("transtype"+fieldid_tmp), 0);
	fieldSQL_sb.append("<input type=\"hidden\" id=\"fieldsql"+fieldid_tmp+"\" name=\"fieldsql"+fieldid_tmp+"\" value=\""+fieldSQL_tmp+"\">").append("\n");
	fieldSQL_sb.append("<input type=\"hidden\" id=\"caltype"+fieldid_tmp+"\" name=\"caltype"+fieldid_tmp+"\" value=\""+caltype_tmp+"\" >").append("\n");
	fieldSQL_sb.append("<input type=\"hidden\" id=\"othertype"+fieldid_tmp+"\" name=\"othertype"+fieldid_tmp+"\" value=\""+othertype_tmp+"\">").append("\n");
	fieldSQL_sb.append("<input type=\"hidden\" id=\"transtype"+fieldid_tmp+"\" name=\"transtype"+fieldid_tmp+"\" value=\""+transtype_tmp+"\">").append("\n");
	fieldSQL_sb.append("<input type=\"hidden\" id=\"datasourceid"+fieldid_tmp+"\" name=\"datasourceid"+fieldid_tmp+"\" value=\""+datasourceid+"\">").append("\n");
}
//明细字段隐藏域
if(detailGroupList!=null && detailGroupList.size()>0){
	detailnum="<input type=\"hidden\" id=\"detailnum\" name=\"detailnum\" value=\""+detailGroupList.size()+"\" />";
	ArrayList detailGroupAttrList = (ArrayList)rhs.get("detailGroupAttrList");
	Hashtable detailGroupTitle_hs = (Hashtable)rhs.get("detailGroupTitle_hs");
	for(int i=0; i<detailGroupList.size(); i++){
		String groupid_tmp = (String)detailGroupList.get(i);
		String detailGroupAttr = (String)detailGroupAttrList.get(i);
		ArrayList detailFieldidList = (ArrayList)detailFieldid_hs.get("group"+groupid_tmp);
		if(detailFieldidList!=null && detailFieldidList.size()>0){
			String title_tmp = (String)detailGroupTitle_hs.get("grouptitle"+groupid_tmp);
			detailGroupAttr_sb.append("<input type=\"hidden\" id=\"detailgroupattr"+i+"\" name=\"detailgroupattr"+i+"\" value=\""+detailGroupAttr+"\">").append("\n");

			for(int j=0; j<detailFieldidList.size(); j++){
				String detailFieldid_tmp = (String)detailFieldidList.get(j);
				String detailFieldlabel_tmp = (String)fieldLabel_hs.get("fieldlabel"+detailFieldid_tmp);
				String detailFieldAttr_tmp = (String)fieldAttr_hs.get("fieldAttr"+detailFieldid_tmp);
				fieldAttr_sb.append("<input type=\"hidden\" id=\"fieldattr"+detailFieldid_tmp+"\" fieldname=\""+detailFieldlabel_tmp+"\" nodetype=\""+i+"\" name=\"fieldattr"+detailFieldid_tmp+"\" value=\""+detailFieldAttr_tmp+"\">").append("\n");
				fieldAttr_sb.append("<input type=\"hidden\" id=\"fieldonlyshow"+detailFieldid_tmp+"\" name=\"fieldonlyshow"+detailFieldid_tmp+"\" value=\""+Util.null2String(fieldOnlyShow_hs.get(detailFieldid_tmp))+"\" />");
				String fieldSQL_tmp = Util.null2String((String)fieldSQL_hs.get("fieldsql"+detailFieldid_tmp));
				int caltype_tmp = Util.getIntValue((String)fieldSQL_hs.get("caltype"+detailFieldid_tmp), 0);
				int othertype_tmp = Util.getIntValue((String)fieldSQL_hs.get("othertype"+detailFieldid_tmp), 0);
				int transtype_tmp = Util.getIntValue((String)fieldSQL_hs.get("transtype"+detailFieldid_tmp), 0);
				String datasourceid = Util.null2String((String)fieldSQL_hs.get("datasourceid"+detailFieldid_tmp));
				fieldSQL_sb.append("<input type=\"hidden\" id=\"fieldsql"+detailFieldid_tmp+"\" name=\"fieldsql"+detailFieldid_tmp+"\" value=\""+fieldSQL_tmp+"\">").append("\n");
				fieldSQL_sb.append("<input type=\"hidden\" id=\"caltype"+detailFieldid_tmp+"\" name=\"caltype"+detailFieldid_tmp+"\" value=\""+caltype_tmp+"\" >").append("\n");
				fieldSQL_sb.append("<input type=\"hidden\" id=\"othertype"+detailFieldid_tmp+"\" name=\"othertype"+detailFieldid_tmp+"\" value=\""+othertype_tmp+"\">").append("\n");
				fieldSQL_sb.append("<input type=\"hidden\" id=\"transtype"+detailFieldid_tmp+"\" name=\"transtype"+detailFieldid_tmp+"\" value=\""+transtype_tmp+"\">").append("\n");
				fieldSQL_sb.append("<input type=\"hidden\" id=\"datasourceid"+detailFieldid_tmp+"\" name=\"datasourceid"+detailFieldid_tmp+"\" value=\""+datasourceid+"\">").append("\n");
			}
		}
	}
}
//节点信息隐藏域
StringBuffer wfnode_sb = new StringBuffer();
ArrayList nodeidList = (ArrayList)rhs.get("nodeidList");
ArrayList nodenameList = (ArrayList)rhs.get("nodenameList");
Map<String,String> nodenameSignMap = (Map<String, String>) rhs.get("nodenameSignMap");
if(nodeidList != null && nodenameList != null){
	for(int i=0; i<nodeidList.size(); i++){
	    String nodenameSign = Util.null2String(nodenameSignMap.get(nodeidList.get(i)));
		wfnode_sb.append("<input type=\"hidden\" name=\"wfnode"+nodeidList.get(i)+"\" id=\"wfnode"+nodeidList.get(i)+"\" value=\""+nodenameList.get(i)+"\" nodenameSign=\""+nodenameSign+"\" />").append("\n");
	}
}
%>
<HTML>
<HEAD>
<script type="text/javascript">
	var mainFields=null;		//全局变量-主表字段信息
	var detailFields=null;		//全局变量-明细表字段信息
	var fieldsClassify = null;	//全局变量-字段分类信息
	var WfNodes=null;			//全局变量-节点信息
	jQuery(document).ready(function(){
		var tableBodyHeight = $(window).height()-296;
		$(".tableBody").css("height",tableBodyHeight+"px");
		//异步初始化全局变量
		initGlobalData();
		//tableHead绑定click、初始化加载
		operTableHead();
		if(wfinfo)
			wfinfo.isactive = "<%=isactive %>";	
		
		window.setTimeout(function(){
			jQuery(".discriptionArea").closest("td").css("cssText", "padding-left:10px!important;padding-right:5px;");
			$("div[name=somethingdiv]").find("tr.groupHeadHide").find(".hideBlockDiv").click(function(e){
				var ishow = $(this).attr("_status");
				if(ishow==="0")
					$(".tableBody").css("height",($(".tableBody").height()-130)+"px");
				else
					$(".tableBody").css("height",($(".tableBody").height()+130)+"px");
			});
		},200);
	});
</script>
<TITLE></TITLE>
</HEAD>
<BODY style="margin:0px; padding:0px;">
<form id="LayoutForm" name="LayoutForm" style="height:100%;" method="post">
	<div class="moduleTitle"><%=SystemEnv.getHtmlLabelName(18151, user.getLanguage())%>:
		<input id="layoutname" name="layoutname" type<form id="LayoutForm"="text" style="width:<%=user.getLanguage()==8 ? 95 : 130%>px" value="<%=layoutname %>" onchange="checkRequired(this, 'layoutnamespan');"></input>
		<span id="layoutnamespan"><img style="<%="".equals(layoutname)?"":"display:none" %>" src="/images/BacoError_wev8.gif" align="absMiddle"></span>
	</div>
	<div class="formTitle">
		<div class="formName"><%=SystemEnv.getHtmlLabelName(700, user.getLanguage()) %>:&nbsp;<%=Util.null2String(ret_map.get("formname")) %></div>
		<div style="float:right"><img src="/workflow/exceldesign/image/editForm_wev8.png" onclick="editFormInfo();" style="cursor:pointer;margin-top:2px;" title="<%=SystemEnv.getHtmlLabelName(82022, user.getLanguage())%>"></img></div>
	</div>
	<div class="filedTab">
		<div class="tableHead" style="height:31px;">
			<div style="float:left" class="current" name="mf"><%=SystemEnv.getHtmlLabelName(18020, user.getLanguage())%></div>
			<%if(isFormLayout){ %>
				<div style="float:right;height:16px;"></div>
			<%}else{ %>
				<div style="float:right" name="wn"><%=SystemEnv.getHtmlLabelName(125734, user.getLanguage())%></div>
			<%} %>
		</div>
		<div class="nodeMarkGroup" style="padding:5px;display: none">
			<span style="margin-right: 15px;"><%=SystemEnv.getHtmlLabelName(19071, user.getLanguage())%>:</span>
			<span >
				<select name="markGroup" onchange="changeMarkGroup()">
					<option value="0"><%=SystemEnv.getHtmlLabelName(505810, user.getLanguage())%></option>
					<option value="1"><%=SystemEnv.getHtmlLabelName(505811, user.getLanguage())%></option>
				</select>
			</span>

		</div>

		<div class="tableSearch" style="padding:5px;">
			<span class="searchInputSpan">
				<input type="text" class="searchInput" name="searchVal" onkeypress="if(event.keyCode==13) {searchTable();}"/></input>
				<span>
					<img src="/images/ecology8/request/search-input_wev8.png" onclick="searchTable()"></img>
				</span>
			</span>
			<%if(isbill == 1){ %>
			<span class="addmf" title="<%=SystemEnv.getHtmlLabelName(387613,user.getLanguage())%>" >
				<img src="/images/ecology8/add_wev8.png" onclick="javascript:addFormField();"></img>
			</span>
			<%} %>
		</div>
		<div class="tableBody" style="width:100%;overflow-y:auto;">
			<table style="width:100%;">
				<colgroup>
					<col width="50%">
					<col width="50%">
				</colgroup>
				<tbody>
					<tr class="thead">
						<td class="rightBorder"></td>
						<td></td>
					</tr>
				</tbody>
			</table>
			<div id="labellist-1" class="fieldlist" style="display:none;">
			<%for(int i=0; i<fieldidList.size(); i++){
					String fieldid_tmp = (String)fieldidList.get(i);
					String fieldlabel_tmp = (String)fieldLabel_hs.get("fieldlabel"+fieldid_tmp);
					if("-6".equals(fieldid_tmp) || "-4".equals(fieldid_tmp))
						continue;
					//如果是手机版Html模板,则不显示“签字意见”选项
					if(layouttype == 2 && "签字意见".equals(fieldlabel_tmp))	continue;
			%>
				<div id="field_<%=fieldid_tmp%>" ondblclick="javascript:cool_webcontrollabel(this);"><%=fieldlabel_tmp%></div>
			<%}%>
			</div>
			<%if(detailGroupList!=null && detailGroupList.size()>0){
				for(int i=0; i<detailGroupList.size(); i++){
					String groupid_tmp = (String)detailGroupList.get(i);
					ArrayList detailFieldidList = (ArrayList)detailFieldid_hs.get("group"+groupid_tmp);
					if(detailFieldidList!=null && detailFieldidList.size()>0){
			%>
				<div id="labellist<%=i%>" class="fieldlist" style="display:none;">
			<%
					for(int j=0; j<detailFieldidList.size(); j++){
						String detailFieldid_tmp = (String)detailFieldidList.get(j);
						String detailFieldlabel_tmp = (String)fieldLabel_hs.get("fieldlabel"+detailFieldid_tmp);
						String sqltemp = "select orderid from workflow_billfield a,Workflow_billdetailtable b where a.detailtable = b.tablename and a.id = " + detailFieldid_tmp;
						if(isbill != 1){
							sqltemp = "select groupid + 1 from workflow_formfield where formid = "+formid+" and fieldid = " + detailFieldid_tmp;
						}
						int detailindex = 1;
						rs.execute(sqltemp);
						if(rs.next())
							detailindex = rs.getInt(1);
			%>
						<div id="field_<%=detailFieldid_tmp%>" ondblclick="javascript:cool_webcontrollabel(this);"><%=detailFieldlabel_tmp%>(<%=SystemEnv.getHtmlLabelName(17463,user.getLanguage())%><%=detailindex %>)</div>
			<%
					}
			%>
				</div>
			<%
					}
				}
			}
			%>
			<div name="editfieldDiv" style="display:none;position: relative;height:0px;">
				<div name="editfieldDiv1" style="position: relative;">
					<div name="editfieldCry" style="position:relative;text-align:center;background:#ffffff;padding-bottom:5px;border-top:1px solid #c9c9c9;border-bottom:1px solid #c9c9c9;">
						<input type="hidden" name="fieldid" />
						<div style="float:left;margin-top:5px;height:25px;padding-left:10px;"><img src="/images/ecology8/simplized_wev8.png" /></div>
						<div style="margin-top:5px;height:25px;"><input type="text" id="cnlabel" onblur="checkMaxLength(this)" maxlength="255" alt="<%=SystemEnv.getHtmlLabelName(20246,user.getLanguage())%>255(<%=SystemEnv.getHtmlLabelName(20247,user.getLanguage())%>)">
							<img style="display:none;" src="/images/BacoError_wev8.gif" align="absMiddle"></div>
						<div style="float:left;margin-top:5px;height:25px;padding-left:10px;"><img src="/images/ecology8/en_wev8.png" /></div>
						<div style="margin-top:5px;height:25px;"><input type="text" id="enlabel"  onblur="checkMaxLength(this)" maxlength="255" alt="<%=SystemEnv.getHtmlLabelName(20246,user.getLanguage())%>255(<%=SystemEnv.getHtmlLabelName(20247,user.getLanguage())%>)"></div>
						<div style="float:left;margin-top:5px;height:25px;padding-left:10px;"><img src="/images/ecology8/tranditional_wev8.png" /></div>
						<div style="margin-top:5px;height:25px;"><input type="text" id="twlabel" onblur="checkMaxLength(this)" maxlength="255" alt="<%=SystemEnv.getHtmlLabelName(20246,user.getLanguage())%>255(<%=SystemEnv.getHtmlLabelName(20247,user.getLanguage())%>)"></div>
						<div id="zDialog_div_bottom" style="margin-top:5px; border-top:1px solid #c9c9c9;padding-top:5px;">
					    	<input type="button" value="<%=SystemEnv.getHtmlLabelName(826,user.getLanguage())%>" id="zd_btn_cancle" onclick="saveEditFieldName()"  class="zd_btn_cancle" style="height: 25px;line-height: 25px;padding-left: 10px;padding-right: 10px;">
					    	<input type="button" value="<%=SystemEnv.getHtmlLabelName(201,user.getLanguage())%>" id="zd_btn_cancle" onclick="cancelEditFieldName()"  class="zd_btn_cancle" style="height: 25px;line-height: 25px;padding-left: 10px;padding-right: 10px;">
					  	</div>
					</div>
				</div>
			</div>
		</div>
	</div>
	<div name="somethingdiv" style="position:relative;">
		<wea:layout type="twoCol">
			<wea:group context="<%=SystemEnv.getHtmlLabelName(125776,user.getLanguage())%>" attributes="{itemAreaDisplay:none}">
				<wea:item attributes="{'colspan':'2'}">
					<div class="discriptionArea"></div>
				</wea:item>
			</wea:group>
		</wea:layout>
	</div>
	<div id="hiddenAttrDiv" style="display:none">
		<!-- 所有隐藏域 -->
		<input type="hidden" id="wfid" name="wfid" value="<%=wfid%>" />
		<input type="hidden" id="formid" name="formid" value="<%=formid%>" />
		<input type="hidden" id="nodeid" name="nodeid" value="<%=nodeid%>" />
		<input type="hidden" id="isbill" name="isbill" value="<%=isbill%>" />
		<input type="hidden" id="modeid" name="modeid" value="<%=modeid%>" />
		<input type="hidden" id="layouttype" name="layouttype" value="<%=layouttype%>" />
		<input type="hidden" id="isactive" name="isactive" value="<%=isactive %>" />
		<input type="hidden" id="nodeEditFormLayout" name="nodeEditFormLayout" value="<%=nodeEditFormLayout %>" />
		<input type="hidden" id="nodetype" value="<%=nodetype %>" />
		<input type="hidden" id="workflowname" value="<%=WorkflowComInfo.getWorkflowname(wfid+"") %>" />
		<input type="hidden" id="otherslayoutname" value="<%=otherslayoutname %>" />
		<!-- 明细表信息 -->
		<%=detailnum %>
		<%=detailGroupAttr_sb.toString()%>
		<!-- JSON代码块信息 -->
		<textarea style="display:none" name="datajson" id="datajson"><%=datajson %></textarea>
        <textarea style="display:none" name="datajsonFormula" id="datajsonFormula"><%=datajsonFormula %></textarea>
		<textarea style="display:none" name="pluginjson" id="pluginjson"><%=pluginjson %></textarea>
		<textarea style="display:none" name="scripts" id="scripts"><%=scripts %></textarea>
		<textarea style="display:none" name="signInputJson" id="signInputJson"><%=signInputJson %></textarea>
		<!-- 节点信息 -->
		<%=wfnode_sb.toString()%>
		<!-- 字段属性 -->
		<%=fieldAttr_sb.toString()%>
		<!-- SQL属性 -->
		<%=fieldSQL_sb%>
		<!-- 字段分类 -->
		<input type="hidden" id="fileFieldids" name="fileFieldids" />
		<input type="hidden" id="inputFieldids" name="inputFieldids" />
		<input type="hidden" id="especialFieldids" name="especialFieldids" />
		<input type="hidden" id="dateFields" name="dateFields" />
		<input type="hidden" id="shuziFieldids" name="shuziFieldids" />
		<input type="hidden" id="zhengshuFields" name="zhengshuFields" />
		<input type="hidden" id="locationFields" name="locationFields" />
	</div>
</form>
</BODY>
</HTML>