excelUploadFormulaList.jsp 16.7 KB

<%@ page language="java" contentType="text/html; charset=UTF-8" %> 
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<%
    String isDetail = Util.null2String(request.getParameter("isDetail"));
    String formulaKeys = Util.null2String(request.getParameter("formulaKeys"));
    String from = Util.null2String(request.getParameter("from"));
    String formulas = Util.null2String(request.getParameter("formulas"));
    formulas = formulas.replaceAll(">","&at;");
    formulas = formulas.replaceAll("'","&dy;");
%>
<HTML><HEAD>
    <script type="text/javascript">
        var isDetail = "<%=isDetail%>";
        var parentWin = null;
        var dialog = null;
        try {
            parentWin = parent.getParentWindow(window);
            dialog = parent.getDialog(window);
        } catch (e) {
        }
	    
	    function closeme() {
	    	var superdialog = window.top.getDialog(window);
	    	superdialog.closeByHand();
	    }
	    
        //编辑老版公式
        function editOldFormula(__key, detailIndex) {
            var _formulaObj = parentWin.isDetail==="on" ? parentWin.parentWin_Main.formulaObj : parentWin.formulaObj;
            var srcformulatxt = _formulaObj.getOneFormula(__key);
           paramtxt = encodeURIComponent(srcformulatxt);
           var isDetail;
           var detailIdenty;
           if (detailIndex) {
               isDetail = "on";
               detailIdenty = detailIndex;
           }
           var url = "/workflow/exceldesign/excelUploadFormula.jsp?isDetail="+isDetail+"&detailIdenty="+detailIdenty+"&paramtxt="+paramtxt+"&from=list";

           var formula_dialog = new window.top.Dialog();
           formula_dialog.currentWindow = window;
           window.top.formula_dialog = formula_dialog;
           formula_dialog.Title = '<%=SystemEnv.getHtmlLabelNames("93,18125",user.getLanguage()) %>';
           formula_dialog.Width = 630;
           formula_dialog.Height = 550;
           formula_dialog.Drag = true;     
           formula_dialog.Modal = true;    
           formula_dialog.normalDialog = false;
           formula_dialog.URL = url;
           formula_dialog.show();
           formula_dialog.callbackfunc4CloseBtn=function(){        //点击关闭按钮,应还原之前的状态
               formula_dialog.callbackfunc4CloseBtn = null;
               formula_dialog.innerWin.setFormula(false);
           }
           formula_dialog.callbackfun=function(paramobj, result){
               formula_dialog.callbackfunc4CloseBtn = null;
               sheet = parentWin.getCurrentSheet();
               var dataObj = parentWin.getCurrentDataObj();
               var formulaStr = jQuery.trim(result.formula);
               var _formulaObj = parentWin.isDetail==="on" ? parentWin.parentWin_Main.formulaObj : parentWin.formulaObj;
               var cellletter = __key.substring(__key.indexOf(".FORMULA") + 8);
               var cellIndex = parentWin.formulaOperate.getCellIndexByLetterFace(sheet, cellletter);
               var ar;
               var ac;
               if (cellIndex) {
                   var cellArray = cellIndex.split(",");
                   if (cellArray.length == 2) {
                       ar = cellArray[0];
                       ac = cellArray[1];
                   }
               }
               
               //公式清除
               _formulaObj.delOneFormula(__key);
               
               parentWin.formulaOperate.controlFormulaSignFace(sheet, ar, ac, "remove");
               if(dataObj.ecs[ar+","+ac].formula)
                   delete dataObj.ecs[ar+","+ac].formula;
               if(!formulaStr){
                   refresh(); 
                   return;
               }
               //公式保存
               try{
                   sheet.isPaintSuspended(true);
                   _formulaObj.setOneFormula(__key, formulaStr);
                   parentWin.formulaOperate.controlFormulaSignFace(sheet, ar, ac, "add");
                   sheet.isPaintSuspended(false);
                   //理论上明细点击关闭应去掉明细设置的公式,暂未实现
                   //if(isDetail === "on")
                   //  detailFormulaTempAry.push(__key);
                   parentWin.setCellProperties(ar+","+ac,"",{"formula":"y"});
               }catch(e){
                   window.top.Dialog.alert(e.message);
               }
               refresh();
           }
        }
        
        //编辑新版公式
        function editNewFormula(__key) {

        	var _formulaObj = parentWin.isDetail==="on" ? parentWin.parentWin_Main.formulaObj : parentWin.formulaObj;
        	var srcformulatxt = _formulaObj.getOneFormula(__key);
        	var formid = dialog.formid;
            var isbill = dialog.isbill;
            var wfid = dialog.wfid;
	        paramtxt = encodeURIComponent(srcformulatxt);
	        
	        var url = "/workflow/exceldesign/excelUploadFormulaNew.jsp?"+
	            "&paramtxt="+paramtxt+"&formid="+formid+"&isbill="+isbill+"&wfid="+wfid+"&from=list";
	        var formula_dialog = new window.top.Dialog();
	        formula_dialog.currentWindow = window;
	        window.top.formula_dialog = formula_dialog;
	        formula_dialog.Title = '<%=SystemEnv.getHtmlLabelNames("93,18125",user.getLanguage()) %>';
	        formula_dialog.Width = 800;
	        formula_dialog.Height = 700;
	        formula_dialog.Drag = true;
	        formula_dialog.Modal = true;
	        formula_dialog.normalDialog = false;
	        formula_dialog.URL = url;
	        formula_dialog.show();
	        formula_dialog.callbackfun=function(paramobj, result){
	            formula_dialog.callbackfunc4CloseBtn = null;
	            sheet = parentWin.getCurrentSheet();
	            var dataObj = parentWin.getCurrentDataObj();
	            var formulaStr = jQuery.trim(result.formula);
	            var _formulaObj = parentWin.isDetail==="on" ? parentWin.parentWin_Main.formulaObj : parentWin.formulaObj;
	            
	            parentWin.formulaOperate.deleteFormulaAndSignFace(__key);
	            parentWin.formulaOperate.addFormulaAndSignFace(__key, formulaStr);
	            
	            refresh();
	        }
        }

        //编辑公式
        function editFormula(__key, detailIndex) {
        	if (__key.indexOf("#new#") > -1) {
        		editNewFormula(__key);
            } else {
            	editOldFormula(__key, detailIndex);
            }
        }
        
        function delFormula(id) {
            if (id) {
            	var mes = confirm("<%=SystemEnv.getHtmlLabelName(82017,user.getLanguage()) %>");
                if (mes == false) {
                    return;
                }
            	parentWin.formulaOperate.deleteFormulaAndSignFace(id);
            } else {
                id = _xtable_CheckedCheckboxId();
	        	if (!id) {
	                alert("<%=SystemEnv.getHtmlLabelName(384499,user.getLanguage()) %>");
	                return;
	            }
	            console.log("id:"+id);
	            
	        	var mes = confirm("<%=SystemEnv.getHtmlLabelName(82017,user.getLanguage()) %>");
	        	if (mes == false) {
	            	return;
	        	}
	        	if(id.match(/,$/)){
	                id = id.substring(0,id.length-1);
	            }
	        	var keys = id.split(",");
	            
	            for (var i = 0; i < keys.length; i++)
	            {
	                parentWin.formulaOperate.deleteFormulaAndSignFace(keys[i]);
	            }
            }
            refresh();
        }

        function addFormula() {
        	var dialog = parent.getDialog(window);
            var formid = dialog.formid;
            var isbill = dialog.isbill;
            var wfid = dialog.wfid;
            var url = "/workflow/exceldesign/excelUploadFormulaNew.jsp?"+
                "&formid="+formid+"&isbill="+isbill+"&wfid="+wfid+"&from=list";
            var formula_dialog = new window.top.Dialog();
            formula_dialog.currentWindow = window;
            window.top.formula_dialog = formula_dialog;
            formula_dialog.Title = '<%=SystemEnv.getHtmlLabelNames("93,18125",user.getLanguage()) %>';
            formula_dialog.Width = 800;
            formula_dialog.Height = 700;
            formula_dialog.Drag = true;     
            formula_dialog.Modal = true;    
            formula_dialog.normalDialog = false;
            formula_dialog.URL = url;
            formula_dialog.show();
            formula_dialog.callbackfun=function(paramobj, result){
                formula_dialog.callbackfunc4CloseBtn = null;
                var formulaStr = jQuery.trim(result.formula);
                var newKey = parentWin.formulaOperate.generateFormulaKeyFace();
                parentWin.formulaOperate.addFormulaAndSignFace(newKey, formulaStr);
                
                refresh();
            }
        }

        function refresh() {
            var from  = "<%=from %>";
            var formulaKeys;
            if (from == "cell") {
	        	formulaKeys = parentWin.formulaOperate.containsFormulaKeysFace();
            }
	        	
            if (!formulaKeys || formulaKeys.length == 0) {
                $("#formulaKeys").val("");
            } else {
                $("#formulaKeys").val(formulaKeys.join("#_#"));
            }

            var _formulaObj = parentWin.isDetail==="on" ? parentWin.parentWin_Main.formulaObj : parentWin.formulaObj;
            var formulas = _formulaObj.getFormulas();
            if (formulas) {
                $("#formulas").val(JSON.stringify(formulas));
            } else {
            	$("#formulas").val("");
            }
        	document.frmmain.submit();
        }
        
    </script>
    <style type="text/css">
        div p {text-align: left;margin-top:5px;margin-bottom: 5px;}
        #_xTable .table{
           max-height: 345px !important;
        }
    </style>
</HEAD>
<BODY style="overflow:hidden;">
    <%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
    <%
    RCMenuHeight += RCMenuHeightStep;
    RCMenu += "{" + SystemEnv.getHtmlLabelName(611, user.getLanguage()) + ",javascript:addFormula(),_self}";
    RCMenuHeight += RCMenuHeightStep;
    RCMenuHeight += RCMenuHeightStep;
    RCMenu += "{" + SystemEnv.getHtmlLabelName(91, user.getLanguage()) + ",javascript:delFormula(),_self}";
    RCMenuHeight += RCMenuHeightStep;
    RCMenuHeight += RCMenuHeightStep;
    RCMenu += "{" + SystemEnv.getHtmlLabelName(309, user.getLanguage()) + ",javascript:closeme(),_self}";
    RCMenuHeight += RCMenuHeightStep;
    
    %>
    <jsp:include page="/systeminfo/commonTabHead.jsp">
       <jsp:param name="mouldID" value="workflow"/>
       <jsp:param name="navName" value='<%=SystemEnv.getHtmlLabelNames("18125,320", user.getLanguage())%>'/>
    </jsp:include>   
    <form name="frmmain" id="frmmain" method="post" action="/workflow/exceldesign/excelUploadFormulaList.jsp">
    <input type="hidden" name="isDetail" id="isDetail" value="<%=isDetail%>">
    <input type="hidden" name="formulaKeys" id="formulaKeys" value="<%=formulaKeys%>">
    <input type="hidden" name="from" id="from" value="<%=from%>">
    <input type="hidden" name="formulas" id="formulas" value='<%=formulas%>'>
    <div class="zDialog_div_content" id="zDialog_div_content" style="height:450px;">   
        <table id="topTitle" cellpadding="0" cellspacing="0">
            <tr>
                <td></td>
                <td class="rightSearchSpan" style="text-align:right; width:500px!important">
                
                    <span title="<%=SystemEnv.getHtmlLabelName(23036,user.getLanguage()) %>" class="cornerMenu"></span>
                </td>
            </tr>
        </table>    
        <wea:layout type="2col">
            <%
            String attributes1 = "{'groupOperDisplay':'none','samePair':'subwfSetContentDivSame','groupDisplay':'','itemAreaDisplay':''}"; 
            String attributes2 = "{'groupOperDisplay':'none','samePair':'subwfSetContentDivDiff','groupDisplay':'none','itemAreaDisplay':'none'}"; 
            %>
            <wea:group context='' attributes="<%=attributes1 %>">
	            <wea:item type="groupHead"> 
	                <input type=button class=addbtn style="margin-top:7px;" onclick="addFormula()" title="<%=SystemEnv.getHtmlLabelName(82,user.getLanguage())%>"></input>
	                <input type=button class=delbtn style="margin-top:7px;" onclick="delFormula()"title="<%=SystemEnv.getHtmlLabelName(23777,user.getLanguage())%>"></input>   
	            </wea:item>
	            <wea:item attributes="{'isTableList':'true'}">
	                <wea:layout needImportDefaultJsAndCss="false" attributes="{'formTableId':'oTable'}">
	                    <wea:group context="" attributes="{'groupDisplay':'none'}">
	                        <wea:item  attributes="{'isTableList':'true'}">
	                            <!-- 分页列表 -->
	                            <%
	                                String encodeFormulas = URLEncoder.encode(formulas,"utf-8");
	                                encodeFormulas = encodeFormulas.replaceAll("\\+","_add_");
	                                String encodeKeys = URLEncoder.encode(formulaKeys,"utf-8");
	                                
		                            String  operateString= "";
		                            operateString = "<operates width='20%'>";
		                            operateString+=" <popedom isalwaysshow='true'></popedom> ";
		                            operateString+="     <operate isalwaysshow='true' href='javascript:editFormula();' otherpara=\"column:key+column:detailIndex\" text='"+SystemEnv.getHtmlLabelName(93,user.getLanguage())+"' index='0'/>";
		                            operateString+="     <operate isalwaysshow='true' href='javascript:delFormula()' text='"+SystemEnv.getHtmlLabelName(91,user.getLanguage())+"' index='1'/>";
		                            operateString+="</operates>"; 
		                            
		                            String tabletype="checkbox";
		                            String tableString=""+
		                               "<table pageId=\""+PageIdConst.WF_WORKFLOW_FORMULALIST+"\" datasource='weaver.workflow.exceldesign.ExcelFormulaList.getFormulaList' sourceparams='formulas:"+encodeFormulas+"+formulaKeys:"+encodeKeys+"' needPage='true' instanceid='formulaListTable' pagesize='"+PageIdConst.getPageSize(PageIdConst.WF_WORKFLOW_FORMULALIST,user.getUID())+"' tabletype='"+tabletype+"'>"+
		                               " <checkboxpopedom  id='formulaCheck' name='formulaCheck' showmethod=\"weaver.workflow.exceldesign.ExcelFormulaList.getCheckbox\" />"+
		                               "<sql backfields='*'  sqlform='tmptable' sqlorderby='key'  sqlprimarykey='key' sqlsortway='asc'  sqldistinct='true' />"+
		                               operateString+
		                               "<head>"+                             
                                             "<col width='0%' hide=\"true\" transmethod='weaver.general.KnowledgeTransMethod.forHtml' text='' column='key'/>"+
                                             "<col width='0%' hide=\"true\" transmethod='weaver.general.KnowledgeTransMethod.forHtml' text='' column='detailIndex'/>"+
		                                     "<col width='10%' transmethod='weaver.general.KnowledgeTransMethod.forHtml' text='"+SystemEnv.getHtmlLabelNames("18125,195",user.getLanguage())+"' column='formulaName'/>"+
		                                     "<col width='15%' text='"+SystemEnv.getHtmlLabelNames("383725,261",user.getLanguage())+"' column='assignPosition'/>"+
		                                     "<col width='25%' text='"+SystemEnv.getHtmlLabelNames("382975",user.getLanguage())+"' column='triggerAction'/>"+
		                                     "<col width='45%' text='"+SystemEnv.getHtmlLabelNames("18125,345",user.getLanguage())+"' column='formulaContent'/>"+
		                               "</head>"+
		                               "</table>";
	                            %>
	                            <wea:SplitPageTag  tableString='<%=tableString %>' isShowTopInfo="false"  mode="run"/>
	                            <input type="hidden" name="pageId" id="pageId" value="<%= PageIdConst.WF_WORKFLOW_FORMULALIST %>"/>
	                        </wea:item>
	                    </wea:group>
	                </wea:layout>
	            </wea:item>    
	        </wea:group>
        </wea:layout>
        
    </div>
    </form>
    <div id="zDialog_div_bottom" class="zDialog_div_bottom">
        <wea:layout needImportDefaultJsAndCss="false">
            <wea:group context=""  attributes="{groupDisplay:none}">
                <wea:item type="toolbar">
                    <input type="button" value="<%=SystemEnv.getHtmlLabelName(309, user.getLanguage())%>" id="zd_btn_clear"  class="zd_btn_cancle" onclick="closeme()">
                </wea:item>
            </wea:group>
        </wea:layout>      
    </div>
    <%@ include file="/systeminfo/RightClickMenu_wev8.jsp" %>
</BODY>
</HTML>