/*
 * Generated by the Jasper component of Apache Tomcat
 * Version: ......
 * Generated at: 2021-03-25 01:28:29 UTC
 * Note: The last modified time of this file was set to
 *       the last modified time of the source file after
 *       generation to assist with modification tracking.
 */
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import wiseoa.util.FF;
import java.util.*;
import java.net.*;
import wiseoa.*;
import wiseoa.util.*;
import wiseoa.RBAC.*;
import wiseoa.mail.jstl.*;

public final class scriptEdit2_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final javax.servlet.jsp.JspFactory _jspxFactory =
          javax.servlet.jsp.JspFactory.getDefaultFactory();

  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;

  static {
    _jspx_dependants = new java.util.HashMap<java.lang.String,java.lang.Long>(3);
    _jspx_dependants.put("/WEB-INF/ss.tld", Long.valueOf(1592212666030L));
    _jspx_dependants.put("/nocache.jsp", Long.valueOf(1592198273912L));
    _jspx_dependants.put("/rightverify.jsp", Long.valueOf(1476341677059L));
  }

  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fss_005fver;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fif_0026_005ftest;

  private volatile javax.el.ExpressionFactory _el_expressionfactory;
  private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;

  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
    return _jspx_dependants;
  }

  public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
    if (_el_expressionfactory == null) {
      synchronized (this) {
        if (_el_expressionfactory == null) {
          _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
        }
      }
    }
    return _el_expressionfactory;
  }

  public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
    if (_jsp_instancemanager == null) {
      synchronized (this) {
        if (_jsp_instancemanager == null) {
          _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
        }
      }
    }
    return _jsp_instancemanager;
  }

  public void _jspInit() {
    _005fjspx_005ftagPool_005fss_005fver = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fc_005fif_0026_005ftest = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
  }

  public void _jspDestroy() {
    _005fjspx_005ftagPool_005fss_005fver.release();
    _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.release();
  }

  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {

    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html;charset=UTF-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");

    response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0);

      out.write('\n');
      out.write('\n');
      out.write('\n');
      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write(" \r\n");
      out.write("\r\n");
      out.write("\r\n");
  
	
	//éå¸¸æ¯å¯¹äºé£æ­¤éè¦æç®¡çåæéçé¡µé¢ç¨åå«æ¬é¡µé¢çæ¹å¼æ¥è¿è¡æéæ§å¶
	// å¦æå½åç¨æ·æç®¡çåæéï¼é£ä¹ç´æ¥è¿å
	// å¦æå½åé¡µé¢æ²¡æå å¥å°å·¥ä½å°ä¸­ï¼è¡¨ç¤ºæ²¡æè¿è¡é¢å¤ææï¼é£ä¹æç¤ºæ æé
	//å¦æå å¥å°äºå·¥ä½å°ï¼å¹¶ä¸åéå½åç¨æ·æ¥ææéï¼é£ä¹ok 
	User user=User.getUserFromRequest( request);
	 
	 if ( user.getRole()!=1) //å¦æä¸æ¯ç³»ç»ç®¡çæéçäººï¼
	 {
		 	String url =WiseFilter.getShortURL( request); 
			int unit = user.getUnit();
		 
			RBAC_cache cache = RBAC_cache.getInstance(null, unit);
 			if (!cache.needVerify(url)) 
 			{
 				String s= User.TIP_NORIGHT;
	 			response.sendRedirect( "SystemTip.jsp?info="+  URLEncoder.encode(s,"UTF-8") );
	 			return;
			} 

            //å¦æä¹æ²¡æè¿è¡å·¥ä½å°ææ
  	 		if ( ! WiseFilter.urlOnCommision( user, url ,0) ) 
			{ 
 	    		String s= User.TIP_NORIGHT;
	 			response.sendRedirect( "SystemTip.jsp?info="+  URLEncoder.encode(s,"UTF-8") );
	 			return;
			}
	 
	 }


      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write('\n');


    String id = FF.getStringFromRequest(request, "id", "");
   

    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Expires", "0");

    String docHome = "";
    FF.pageContextSetAttribute(pageContext, "docHome", docHome);

        /*

        theme： https://editor.bitwiser.in/


         自定义提示
         https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-completion-provider-example 官方提供的自定义提示示例

         自定义快捷键
         https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-listening-to-key-events
         https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-adding-a-command-to-an-editor-instance

         //在左边栏上加标记
         https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-rendering-glyphs-in-the-margin

//自定义 theme
https://microsoft.github.io/monaco-editor/playground.html#customizing-the-appearence-tokens-and-colors


https://blog.csdn.net/prog_6103/article/details/89452217


          */

      out.write("\n");
      out.write("\n");
      out.write("<!DOCTYPE html>\n");
      out.write("<html>\n");
      out.write("<head>\n");
      out.write("    <meta charset=\"UTF-8\">\n");
      out.write("    <link rel=\"stylesheet\" data-name=\"vs/editor/editor.main\" href=\"ui/monaco-editor/min/vs/editor/editor.main.css\">\n");
      out.write("</head>\n");
      out.write("<!-- 三段式布局-->\n");
      out.write("<style type=\"text/css\">\n");
      out.write("    html, body {\n");
      out.write("        width: 100%;\n");
      out.write("        height: 100%;\n");
      out.write("        margin: 0;\n");
      out.write("        overflow: hidden\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #Container {\n");
      out.write("        position: relative;\n");
      out.write("        width: 100%;\n");
      out.write("        height: 100%;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #Header {\n");
      out.write("        position: absolute;\n");
      out.write("        left: 0;\n");
      out.write("        top: 0;\n");
      out.write("        width: 100%;\n");
      out.write("        height: 32px;\n");
      out.write("        background-color: #dbdaef;\n");
      out.write("        border-bottom: 1px solid lightgrey;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #Content {\n");
      out.write("        position: absolute;\n");
      out.write("        width: 100%;\n");
      out.write("        left: 0;\n");
      out.write("        top: 33px;\n");
      out.write("        height: auto;\n");
      out.write("        bottom: 32px;\n");
      out.write("        background-color: white\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #Footer {\n");
      out.write("        position: absolute;\n");
      out.write("        width: 100%;\n");
      out.write("        left: 0;\n");
      out.write("        height: 32px;\n");
      out.write("        bottom: 0;\n");
      out.write("        background-color: #efefef;\n");
      out.write("        border-top: 1px solid lightgrey;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    .errorInfo {\n");
      out.write("        background-color: #ff9933;\n");
      out.write("        color: white\n");
      out.write("    }\n");
      out.write("</style>\n");
      out.write("\n");
      out.write("<style>\n");
      out.write("    .breakpoints {\n");
      out.write("        background: red;\n");
      out.write("        background: radial-gradient(circle at 3px 3px, #ff999e, red);\n");
      out.write("        width: 10px !important;\n");
      out.write("        height: 10px !important;\n");
      out.write("        left: 36px !important;\n");
      out.write("        top: 4px;\n");
      out.write("        border-radius: 5px;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("\n");
      out.write("    #outlineContainer1 {\n");
      out.write("        position: fixed;\n");
      out.write("        right: 0;\n");
      out.write("        top: 50px;\n");
      out.write("        width: 300px;\n");
      out.write("        height: 100%;\n");
      out.write("        display: none;\n");
      out.write("        font-size: 13px;\n");
      out.write("        background-color: red;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #outlineContainer .group{\n");
      out.write("\n");
      out.write("        font-size: 14px;\n");
      out.write("\n");
      out.write("\n");
      out.write("        padding:10px;\n");
      out.write("        background-color: lightgrey;\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    #outlineContainer .func{\n");
      out.write("\n");
      out.write("        font-size: 12px;\n");
      out.write("        line-height:20px;\n");
      out.write("        padding:10px;\n");
      out.write("\n");
      out.write("\n");
      out.write("    }\n");
      out.write("    #outlineContainer  .func .funcCaption{\n");
      out.write("\n");
      out.write("        color:darkgreen;\n");
      out.write("\n");
      out.write("\n");
      out.write("    }\n");
      out.write("\n");
      out.write("\n");
      out.write("</style>\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("<script src=\"formEngine/js/core/jquery.min.1.10.2.js?ver=");
      if (_jspx_meth_ss_005fver_005f0(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("<script src=\"formEngine/js/core/domutil.js?ver=");
      if (_jspx_meth_ss_005fver_005f1(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("<script src=\"formEngine/js/core/jst.js?ver=");
      if (_jspx_meth_ss_005fver_005f2(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("<script src=\"formEngine/js/core/zrpc.js?ver=");
      if (_jspx_meth_ss_005fver_005f3(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("<link rel=\"stylesheet\" href=\"formEngine/css/bootstrap.min.css?ver=");
      if (_jspx_meth_ss_005fver_005f4(_jspx_page_context))
        return;
      out.write("\">\n");
      out.write("\n");
      out.write("<!-- 自动消失的提示信息  如果把下面两行，放在后面位置，则不能正常显示信息，原因不明-->\n");
      out.write("<link rel=\"stylesheet\" href=\"formEngine/ui/toastr/toastr.css?ver=");
      if (_jspx_meth_ss_005fver_005f5(_jspx_page_context))
        return;
      out.write("\">\n");
      out.write("<script src=\"formEngine/ui/toastr/toastr.min.js?ver=");
      if (_jspx_meth_ss_005fver_005f6(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<!-- 简易css无需脚本菜单（单层弹出菜单） -->\n");
      out.write("<link type=\"text/css\" href=\"ui/menu/simplemenu.css?ver=");
      if (_jspx_meth_ss_005fver_005f7(_jspx_page_context))
        return;
      out.write("\" rel=\"stylesheet\"/>\n");
      out.write("<!-- css字体 -->\n");
      out.write("<link rel=\"stylesheet\" href=\"formEngine/css/font-awesome.css?ver=");
      if (_jspx_meth_ss_005fver_005f8(_jspx_page_context))
        return;
      out.write("\">\n");
      out.write("\n");
      out.write("<!-- 语法树分析  -->\n");
      out.write("<script src=\"ui/orion/esprima.js?ver=");
      if (_jspx_meth_ss_005fver_005f9(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("<script>var require = {paths: {'vs': 'ui/monaco-editor/min/vs'}};</script>\n");
      out.write("<script src=\"ui/monaco-editor/min/vs/loader.js\"></script>\n");
      out.write("<script src=\"ui/monaco-editor/min/vs/editor/editor.main.nls.js\"></script>\n");
      out.write("<script src=\"ui/monaco-editor/min/vs/editor/editor.main.js\"></script>\n");
      out.write("<script src=\"ui/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js\"></script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<!--  confirm -->\n");
      out.write("<link rel=\"stylesheet\"\n");
      out.write("      href=\"formEngine/ui/confirm/dist/jquery-confirm.min.css?ver=");
      if (_jspx_meth_ss_005fver_005f10(_jspx_page_context))
        return;
      out.write("\">\n");
      out.write("<script src=\"formEngine/ui/confirm/dist/jquery-confirm.min.js?ver=");
      if (_jspx_meth_ss_005fver_005f11(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("<script src=\"formEngine/globalscript/dialog.js?ver=");
      if (_jspx_meth_ss_005fver_005f12(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<!-- 定制的一些功能  -->\n");
      out.write("<script src=\"js/app/scriptedit2.js?ver=");
      if (_jspx_meth_ss_005fver_005f13(_jspx_page_context))
        return;
      out.write("\"></script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<script>\n");
      out.write("\n");
      out.write("    var g_suggestions_globalscript = []; //全局函数的提示\n");
      out.write("\n");
      out.write("    $(document).ready(function () {\n");
      out.write("\n");
      out.write("\n");
      out.write("        $(document).click( function(evt)\n");
      out.write("        {\n");
      out.write("            //在代码编辑区点击 ，则关闭大纲面板\n");
      out.write("            if( evt.target.className=='view-line')        $('#outlineContainer').css('display','none');\n");
      out.write("\n");
      out.write("        });\n");
      out.write("\n");
      out.write("        window.editor = monaco.editor.create(document.getElementById('editContainer'), {\n");
      out.write("            value: 'function ',\n");
      out.write("            language:  urlArgs.language||'javascript',\n");
      out.write("            fontFamily:'Consolas, Menlo, Monaco, Vera Mono',\n");
      out.write("            fontSize: \"14px\",\n");
      out.write("\n");
      out.write("            scrollBeyondLastLine: true,\n");
      out.write("            theme: \"vs\" //皮肤设置  vs vs-dark hc-black\n");
      out.write("        });\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("        editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S, function () {\n");
      out.write("            save();\n");
      out.write("        });\n");
      out.write("\n");
      out.write("\n");
      out.write("        var docHome = 'doc';\n");
      out.write("\n");
      out.write("\n");
      out.write("        fetch('ui/monaco-editor/min/vs/themes/customize.json')\n");
      out.write("            .then(data => data.json())\n");
      out.write("            .then(data => {\n");
      out.write("                monaco.editor.defineTheme('customize', data);\n");
      out.write("                monaco.editor.setTheme('customize');\n");
      out.write("            });\n");
      out.write("\n");
      out.write("\n");
      out.write("        //加载函数帮助\n");
      out.write("        let docs=['Brick/doc', 'Cell/doc','ClientFunction','ColumnPropertyManage/doc','DataBuffer/doc',\n");
      out.write("            'DataSourceConfig/doc','DataStore/doc',\n");
      out.write("        'RowPropertyManage/doc','ServerFunction','WorkBook/doc','WorkSheet/doc'];\n");
      out.write("\n");
      out.write("        for( var j=0;j<docs.length;j++) {\n");
      out.write("            fetch(docHome + \"/repertory/library/object/\" + docs[j] + \"/api_data.json\")\n");
      out.write("                .then(data => data.json())\n");
      out.write("                .then(data => {\n");
      out.write("                    for (var i = 0; i < data.length; i++) {\n");
      out.write("                        var one = data[i];\n");
      out.write("                        g_suggestions_globalscript.push(\n");
      out.write("                            {\n");
      out.write("                                label: one.name,\n");
      out.write("                                insertText: one.name,\n");
      out.write("                                kind: 2,\n");
      out.write("                                detail: one.name == one.title ? \"\" : one.title,\n");
      out.write("                                comment: one.description,\n");
      out.write("                                summary: one.description,\n");
      out.write("                                documentation: html2text(one.description)\n");
      out.write("                            }\n");
      out.write("                        );\n");
      out.write("\n");
      out.write("                    }\n");
      out.write("\n");
      out.write("                });\n");
      out.write("        }\n");
      out.write("\n");
      out.write("\n");
      out.write("        gs_lastScript= getStringFromURL(\"templateScript?side=\"+urlArgs.side+\"&type=design&id=\"+urlArgs.id,\"UTF-8\");\n");
      out.write("        editor.setValue(gs_lastScript);\n");
      out.write("        \n");
      out.write("\n");
      out.write("\n");
      out.write("    });\n");
      out.write("\n");
      out.write("    function html2text(html) {\n");
      out.write("        html = html || '';\n");
      out.write("        html = html.replace(/<\\/p>/g, '</p><br>');  //把 </p>后插入一个br，下面统一换成 回车\n");
      out.write("        html = html.replace(/<br>/g, '回车');\n");
      out.write("\n");
      out.write("        html = html.replace(/<(style|script|iframe)[^>]*?>[\\s\\S]+?<\\/\\1\\s*>/gi, '').replace(/<[^>]+?>/g, '').replace(/\\s+/g, ' ').replace(/ /g, ' ').replace(/>/g, ' ');\n");
      out.write("        html = html.replace(/回车/g, \"\\n\");\n");
      out.write("\n");
      out.write("        return html;\n");
      out.write("\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    function insertContent(text) {\n");
      out.write("\n");
      out.write("        let selection = editor.getSelection()\n");
      out.write("        let range = new monaco.Range(selection.startLineNumber, selection.startColumn, selection.endLineNumber, selection.endColumn)\n");
      out.write("        let id = {major: 1, minor: 1}\n");
      out.write("        let op = {identifier: id, range: range, text: text, forceMoveMarkers: true}\n");
      out.write("        editor.executeEdits(this.root, [op])\n");
      out.write("        editor.focus()\n");
      out.write("\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    function formatScript() {\n");
      out.write("        editor.trigger('', 'editor.action.formatDocument');\n");
      out.write("    }\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("\n");
      out.write("    var funcOutline = [];\n");
      out.write("\n");
      out.write("    function outline() {\n");
      out.write("\n");
      out.write("        funcOutline =[];\n");
      out.write("        var source = editor.getValue();\n");
      out.write("\n");
      out.write("        var RE = /([/][/]@comment(\\s)*[(](\\s)*group(\\s)*=(\\s)*([A-Z_a-z0-9\\u4e00-\\u9fa5]*)(\\s)*,(\\s)*caption(\\s)*=(\\s)*([A-Z_a-z0-9\\u4e00-\\u9fa5]*)(\\s)*[)](\\s)*)*function(\\s)*([A-Z_a-z0-9\\u4e00-\\u9fa5]+)(\\s)*[(]/;\n");
      out.write("\n");
      out.write("\n");
      out.write("        while (true) {\n");
      out.write("            var m = RE.exec(source);\n");
      out.write("            console.dir(m);\n");
      out.write("            if (!m) break;\n");
      out.write("            var one = {};\n");
      out.write("            one.source = m[0];\n");
      out.write("            one.group = m[6];\n");
      out.write("            one.caption = m[11];\n");
      out.write("            one.func = m[15];\n");
      out.write("            one.index= funcOutline.length;\n");
      out.write("            funcOutline.push(one);\n");
      out.write("\n");
      out.write("            source = source.substring(m.index + m[0].length);\n");
      out.write("        }\n");
      out.write("\n");
      out.write("        //\n");
      out.write("\n");
      out.write("        var funcGroup={};\n");
      out.write("        for( var i=0;i<funcOutline.length;i++)\n");
      out.write("        {\n");
      out.write("            var one=funcOutline[i];\n");
      out.write("            var group=one.group;\n");
      out.write("\n");
      out.write("            var func= one.func;\n");
      out.write("            if (group==undefined || group=='' ) group='全局函数';\n");
      out.write("\n");
      out.write("            if( funcGroup[group]==undefined)\n");
      out.write("            {\n");
      out.write("                funcGroup[group]=[];\n");
      out.write("            }\n");
      out.write("            funcGroup[group].push( one);\n");
      out.write("\n");
      out.write("        }\n");
      out.write("        console.dir(funcGroup);\n");
      out.write("\n");
      out.write("        var html=[];\n");
      out.write("        for( var g in funcGroup)\n");
      out.write("        {\n");
      out.write("            html.push(\"<div class='group'>\");\n");
      out.write("            html.push(g);\n");
      out.write("            html.push(\"</div>\");\n");
      out.write("\n");
      out.write("            var fs= funcGroup[g];\n");
      out.write("\n");
      out.write("            for( var fi =0;fi< fs.length; fi++)\n");
      out.write("            {\n");
      out.write("                var one= fs[fi];\n");
      out.write("                html.push(\"<a class='func'  href='javascript:jumpToFunc(\"+one.index+\")'><b>\");\n");
      out.write("                html.push( one.func);\n");
      out.write("                html.push( \"</b>\");\n");
      out.write("\n");
      out.write("                if( one.caption) {\n");
      out.write("                    html.push(\"<span class='funcCaption'>&nbsp;\");\n");
      out.write("                    html.push(one.caption);\n");
      out.write("                    html.push(\"</span>\");\n");
      out.write("\n");
      out.write("                }\n");
      out.write("                html.push(\"</a><br>\");\n");
      out.write("            }\n");
      out.write("\n");
      out.write("        }\n");
      out.write("\n");
      out.write("        $('#outlineContainer').html( html.join(''));\n");
      out.write("        $('#outlineContainer').css(\"display\",\"\");\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    function jumpToFunc(n) {\n");
      out.write("        let one= funcOutline[n];\n");
      out.write("        if( !one) return;\n");
      out.write("          var modal= editor.getModel()\n");
      out.write("           let match  = modal.findMatches(one.source);\n");
      out.write("          if( match && match.length>0) {\n");
      out.write("              let range = match[0].range;\n");
      out.write("              editor.setSelection(range)\n");
      out.write("              //把选中的位置放到中间显示\n");
      out.write("              editor.revealRangeInCenter(range)\n");
      out.write("          }\n");
      out.write("\n");
      out.write("\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    function provideCompletionItems(model, position) {\n");
      out.write("        //自定义匹配逻辑....\n");
      out.write("        var textUntilPosition = model.getValueInRange({\n");
      out.write("            startLineNumber: position.lineNumber,\n");
      out.write("            startColumn: 1,\n");
      out.write("            endLineNumber: position.lineNumber,\n");
      out.write("            endColumn: position.column\n");
      out.write("        });\n");
      out.write("\n");
      out.write("\n");
      out.write("        if (textUntilPosition.charAt(textUntilPosition.length - 1) == '#') {\n");
      out.write("            return {\n");
      out.write("                suggestions: [\n");
      out.write("                    {\n");
      out.write("                        label: 'DataStore',\n");
      out.write("                        insertText: 'DataStore'\n");
      out.write("                    }, {\n");
      out.write("                        label: 'DataBuffer',\n");
      out.write("                        insertText: 'DataBuffer'\n");
      out.write("                    }, {\n");
      out.write("                        label: 'WorkBook',\n");
      out.write("                        insertText: 'WorkBook'\n");
      out.write("                    }, {\n");
      out.write("                        label: 'WorkSheet',\n");
      out.write("                        insertText: 'WorkSheet'\n");
      out.write("                    }, {\n");
      out.write("                        label: 'Cell',\n");
      out.write("                        insertText: 'Cell'\n");
      out.write("                    }\n");
      out.write("                ]\n");
      out.write("            };\n");
      out.write("        }\n");
      out.write("        //点方法调用\n");
      out.write("        if (textUntilPosition.charAt(textUntilPosition.length - 1) == '.') {\n");
      out.write("            //当是点时匹配自定义的方法 ...\n");
      out.write("            return {\n");
      out.write("                suggestions: [//该方法的子类方法，可通过点语法调用\n");
      out.write("                    {\n");
      out.write("                        label: 'Goods1()',\n");
      out.write("                        insertText: 'Goods1()'\n");
      out.write("                    }, {\n");
      out.write("                        label: 'Goods2()',\n");
      out.write("                        insertText: 'Goods2()'\n");
      out.write("                    }\n");
      out.write("                ]\n");
      out.write("            };\n");
      out.write("\n");
      out.write("        } else {\n");
      out.write("            return {suggestions: g_suggestions_globalscript};\n");
      out.write("        }\n");
      out.write("\n");
      out.write("    }\n");
      out.write("\n");
      out.write("\n");
      out.write("    //自定义监听输入编写语法/\n");
      out.write("    monaco.languages.registerCompletionItemProvider('javascript',\n");
      out.write("        {\n");
      out.write("            provideCompletionItems: provideCompletionItems,\n");
      out.write("            triggerCharacters: ['.',\n");
      out.write("                ':',\n");
      out.write("                '#'\n");
      out.write("            ] // 写触发提示的字符，可以有多个\n");
      out.write("        }\n");
      out.write("    );\n");
      out.write("\n");
      out.write("    //悬停信息展示\n");
      out.write("    monaco.languages.registerHoverProvider('javascript', {\n");
      out.write("        provideHover: function (model, position) {\n");
      out.write("\n");
      out.write("            var t = model.getValueInRange({\n");
      out.write("                startLineNumber: position.lineNumber,\n");
      out.write("                startColumn: 1,\n");
      out.write("                endLineNumber: position.lineNumber,\n");
      out.write("                endColumn: model.getLineMaxColumn(position.lineNumber)\n");
      out.write("            });\n");
      out.write("\n");
      out.write("            return {\n");
      out.write("                range: new monaco.Range(1, 1, position.lineNumber, position.column), // model.getLineMaxColumn(model.getLineCount())),\n");
      out.write("                contents: [\n");
      out.write("                    {value: t},\n");
      out.write("                    {\n");
      out.write("                        value: (function () {\n");
      out.write("                            var ret = [];\n");
      out.write("                            for (var i = 0; i < 20; i++) {\n");
      out.write("                               // ret.push('+ 匿名函数可以直接访问到外层署名函数（Foo）中的变量（使用关键字var定义的），但不能访问外层署名函数的属性（使用关键字this定义的） ' + i);\n");
      out.write("                            }\n");
      out.write("                            return ret.join('\\n')\n");
      out.write("                        })()\n");
      out.write("                    }\n");
      out.write("                ]\n");
      out.write("            }\n");
      out.write("\n");
      out.write("        }\n");
      out.write("    });\n");
      out.write("\n");
      out.write("\n");
      out.write("</script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<script>\n");
      out.write("\n");
      out.write("    function addBreakPoint(line) {\n");
      out.write("        let model = editor.getModel()\n");
      out.write("        if (!model) return\n");
      out.write("        let value = {\n");
      out.write("            range: new monaco.Range(line, 1, line, 1),\n");
      out.write("            options: {isWholeLine: true, linesDecorationsClassName: 'breakpoints'}\n");
      out.write("        }\n");
      out.write("        model.deltaDecorations([], [value])\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    //删除断点，如果指定了line，删除指定行的断点，否则删除当前model里面的所有断点\n");
      out.write("    function removeBreakPoint(line) {\n");
      out.write("        let model = editor.getModel()\n");
      out.write("        if (!model) return\n");
      out.write("        let decorations\n");
      out.write("        let ids = []\n");
      out.write("        if (line !== undefined) {\n");
      out.write("            decorations = editor.getLineDecorations(line)\n");
      out.write("        } else {\n");
      out.write("            decorations = editor.getAllDecorations()\n");
      out.write("        }\n");
      out.write("        for (let decoration of decorations) {\n");
      out.write("            if (decoration.options.linesDecorationsClassName === 'breakpoints') {\n");
      out.write("                ids.push(decoration.id)\n");
      out.write("            }\n");
      out.write("        }\n");
      out.write("        if (ids && ids.length) {\n");
      out.write("            model.deltaDecorations(ids, [])\n");
      out.write("        }\n");
      out.write("    }\n");
      out.write("\n");
      out.write("    //判断该行是否存在断点\n");
      out.write("    function hasBreakPoint(line) {\n");
      out.write("        let decorations = editor.getLineDecorations(line)\n");
      out.write("        for (let decoration of decorations) {\n");
      out.write("            if (decoration.options.linesDecorationsClassName === 'breakpoints') {\n");
      out.write("                return true\n");
      out.write("            }\n");
      out.write("        }\n");
      out.write("        return false\n");
      out.write("    }\n");
      out.write("\n");
      out.write("</script>\n");
      out.write("\n");
      out.write("\n");
      out.write("<body>\n");
      out.write("\n");
      out.write("\n");
      out.write("<!-- 此处用了传统的三段式结构:Container代表整个容器，Header代表容器的上部，Content代表容器的中部也就是内容部分，Footer代表容器的底部 -->\n");
      out.write("<div id=\"Container\">\n");
      out.write("    <div id=\"Header\">\n");
      out.write("        <!-----  menu ---->\n");
      out.write("        <nav class=\"nav\">\n");
      out.write("            <ul class=\"nav__menu\">\n");
      out.write("\n");
      out.write("                ");
      if (_jspx_meth_c_005fif_005f0(_jspx_page_context))
        return;
      out.write("\n");
      out.write("\n");
      out.write("                ");
      if (_jspx_meth_c_005fif_005f1(_jspx_page_context))
        return;
      out.write("\n");
      out.write("\n");
      out.write(" \n");
      out.write("\n");
      out.write("                <li class=\"nav__menu-item\"><a><i class=\"fa fa-book\"></i> 函数参考</a>\n");
      out.write("                    <ul class=\"nav__submenu\">\n");
      out.write("\n");
      out.write("                        <li class=\"nav__submenu-item  \"><a\n");
      out.write("                                href=\"function.jsp\" target=\"_blank\">服务端脚本函数参考</a>\n");
      out.write("                        </li>\n");
      out.write("                        <li class=\"nav__submenu-item  \"><a\n");
      out.write("                                href=\"../doc/repertory/library/object/ClientFunction/index.html\" target=\"_blank\">客户端脚本函数参考</a>\n");
      out.write("                        </li>\n");
      out.write("\n");
      out.write("                        <li class=\"nav__submenu-item  \"><a\n");
      out.write("                                href=\"../doc/docview.jsp?path=F5ZGK4DFOJ2G64TZF5WGSYTSMFZHSL3EN5RS6MBQFYYDAMZO4WX3T2FRUHSY7AXIQCBS43LE\"\n");
      out.write("                                target=\"_blank\">对象参考</a></li>\n");
      out.write("                       \n");
      out.write("\n");
      out.write("                    </ul>\n");
      out.write("                </li>\n");
      out.write("\n");
      out.write("                <li class=\"nav__menu-item\"><a><i class=\"fa fa-sign-in\"></i> 插入</a>\n");
      out.write("                    <ul class=\"nav__submenu\">\n");
      out.write("                       \n");
      out.write("                        <li class=\"nav__submenu-item  \" onclick=\"insert_functionComment();\"><a> 插入函数说明</a></li>\n");
      out.write("\n");
      out.write("                    </ul>\n");
      out.write("                </li>\n");
      out.write("\n");
      out.write("                <li class=\"nav__menu-item\"><a href=\"javascript:syntaxCheck();\"><i class=\"fa fa-bug\"></i> 校验</a>\n");
      out.write("                </li>\n");
      out.write("                <li class=\"nav__menu-item\"><a href=\"javascript:outline();\"><i class=\"fa fa-tree\"></i> 大纲</a>\n");
      out.write("                </li>\n");
      out.write("                <li class=\"nav__menu-item\"><a href=\"javascript:cmd_format();\"><i class=\"fa fa-align-right\"></i> 排版</a>\n");
      out.write("                </li>\n");
      out.write("\n");
      out.write("                <li class=\"nav__menu-item  \"><a href=\"javascript:save();\"><i class=\"fa fa-save \"></i> 保存</a>\n");
      out.write("                </li>\n");
      out.write("\n");
      out.write(" \n");
      out.write("            \n");
      out.write("\n");
      out.write("            </ul>\n");
      out.write("        </nav>\n");
      out.write("\n");
      out.write("\n");
      out.write("        <!------end menu ------------->\n");
      out.write("\n");
      out.write("    </div>\n");
      out.write("\n");
      out.write("    <div id=\"Content\">\n");
      out.write("        <div id=\"editContainer\" style=\"position:relative; width:100%;height:100%;\"></div>\n");
      out.write("    </div>\n");
      out.write("\n");
      out.write("    <div id=\"Footer\">\n");
      out.write("        <table width=\"100%\" border=0 height=\"32\">\n");
      out.write("            <tr>\n");
      out.write("                <td id=\"infoContainer\" width=\"70%\" style=\"padding:0;  padding-left:10px;\"></td>\n");
      out.write("                <td id=\"infoContainer2\" width=\"30%\" style=\"padding:0;\"></td>\n");
      out.write("            </tr>\n");
      out.write("        </table>\n");
      out.write("\n");
      out.write("\n");
      out.write("    </div>\n");
      out.write("</div>\n");
      out.write("\n");
      out.write("\n");
      out.write("<div id=\"outlineContainer\" style=\"   position: fixed;\n");
      out.write("        right: 0;\n");
      out.write("        top: 33px;\n");
      out.write("        width:400px;\n");
      out.write("        height: 100%;\n");
      out.write("        line-height:16px;\n");
      out.write("        overflow-y: auto;\n");
      out.write("        display:none;\n");
      out.write("        font-size: 13px;\n");
      out.write("        opacity: 0.9;\n");
      out.write("        background-color: #efefef; \">\n");
      out.write("\n");
      out.write("</div>\n");
      out.write("</body>\n");
      out.write("\n");
      out.write("</html>\n");
      out.write("\n");
      out.write("\n");
    } catch (java.lang.Throwable t) {
      if (!(t instanceof javax.servlet.jsp.SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          try {
            if (response.isCommitted()) {
              out.flush();
            } else {
              out.clearBuffer();
            }
          } catch (java.io.IOException e) {}
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
        else throw new ServletException(t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }

  private boolean _jspx_meth_ss_005fver_005f0(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f0 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f0.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f0.setParent(null);
    int _jspx_eval_ss_005fver_005f0 = _jspx_th_ss_005fver_005f0.doStartTag();
    if (_jspx_eval_ss_005fver_005f0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f0.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f0.doInitBody();
      }
      do {
        out.write("formEngine/js/core/jquery.min.1.10.2.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f0.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f0);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f0);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f1(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f1 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f1.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f1.setParent(null);
    int _jspx_eval_ss_005fver_005f1 = _jspx_th_ss_005fver_005f1.doStartTag();
    if (_jspx_eval_ss_005fver_005f1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f1.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f1.doInitBody();
      }
      do {
        out.write("formEngine/js/core/domutil.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f1.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f1);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f1);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f2(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f2 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f2.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f2.setParent(null);
    int _jspx_eval_ss_005fver_005f2 = _jspx_th_ss_005fver_005f2.doStartTag();
    if (_jspx_eval_ss_005fver_005f2 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f2 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f2.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f2.doInitBody();
      }
      do {
        out.write("formEngine/js/core/jst.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f2.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f2 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f2);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f2);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f3(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f3 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f3.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f3.setParent(null);
    int _jspx_eval_ss_005fver_005f3 = _jspx_th_ss_005fver_005f3.doStartTag();
    if (_jspx_eval_ss_005fver_005f3 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f3 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f3.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f3.doInitBody();
      }
      do {
        out.write("formEngine/js/core/zrpc.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f3.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f3 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f3.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f3);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f3);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f4(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f4 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f4.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f4.setParent(null);
    int _jspx_eval_ss_005fver_005f4 = _jspx_th_ss_005fver_005f4.doStartTag();
    if (_jspx_eval_ss_005fver_005f4 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f4 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f4.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f4.doInitBody();
      }
      do {
        out.write("formEngine/css/bootstrap.min.css");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f4.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f4 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f4.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f4);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f4);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f5(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f5 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f5.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f5.setParent(null);
    int _jspx_eval_ss_005fver_005f5 = _jspx_th_ss_005fver_005f5.doStartTag();
    if (_jspx_eval_ss_005fver_005f5 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f5 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f5.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f5.doInitBody();
      }
      do {
        out.write("formEngine/ui/toastr/toastr.css");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f5.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f5 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f5.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f5);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f5);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f6(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f6 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f6.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f6.setParent(null);
    int _jspx_eval_ss_005fver_005f6 = _jspx_th_ss_005fver_005f6.doStartTag();
    if (_jspx_eval_ss_005fver_005f6 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f6 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f6.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f6.doInitBody();
      }
      do {
        out.write("formEngine/ui/toastr/toastr.min.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f6.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f6 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f6.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f6);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f6);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f7(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f7 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f7.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f7.setParent(null);
    int _jspx_eval_ss_005fver_005f7 = _jspx_th_ss_005fver_005f7.doStartTag();
    if (_jspx_eval_ss_005fver_005f7 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f7 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f7.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f7.doInitBody();
      }
      do {
        out.write("ui/menu/simplemenu.css");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f7.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f7 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f7.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f7);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f7);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f8(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f8 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f8.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f8.setParent(null);
    int _jspx_eval_ss_005fver_005f8 = _jspx_th_ss_005fver_005f8.doStartTag();
    if (_jspx_eval_ss_005fver_005f8 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f8 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f8.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f8.doInitBody();
      }
      do {
        out.write("formEngine/css/font-awesome.css");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f8.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f8 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f8.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f8);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f8);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f9(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f9 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f9.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f9.setParent(null);
    int _jspx_eval_ss_005fver_005f9 = _jspx_th_ss_005fver_005f9.doStartTag();
    if (_jspx_eval_ss_005fver_005f9 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f9 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f9.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f9.doInitBody();
      }
      do {
        out.write("ui/orion/esprima.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f9.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f9 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f9.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f9);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f9);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f10(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f10 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f10.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f10.setParent(null);
    int _jspx_eval_ss_005fver_005f10 = _jspx_th_ss_005fver_005f10.doStartTag();
    if (_jspx_eval_ss_005fver_005f10 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f10 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f10.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f10.doInitBody();
      }
      do {
        out.write("formEngine/ui/confirm/dist/jquery-confirm.min.css");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f10.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f10 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f10.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f10);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f10);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f11(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f11 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f11.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f11.setParent(null);
    int _jspx_eval_ss_005fver_005f11 = _jspx_th_ss_005fver_005f11.doStartTag();
    if (_jspx_eval_ss_005fver_005f11 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f11 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f11.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f11.doInitBody();
      }
      do {
        out.write("formEngine/ui/confirm/dist/jquery-confirm.min.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f11.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f11 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f11.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f11);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f11);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f12(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f12 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f12.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f12.setParent(null);
    int _jspx_eval_ss_005fver_005f12 = _jspx_th_ss_005fver_005f12.doStartTag();
    if (_jspx_eval_ss_005fver_005f12 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f12 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f12.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f12.doInitBody();
      }
      do {
        out.write("formEngine/globalscript/dialog.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f12.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f12 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f12.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f12);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f12);
    return false;
  }

  private boolean _jspx_meth_ss_005fver_005f13(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  ss:ver
    tag.SourceVersionTag _jspx_th_ss_005fver_005f13 = (tag.SourceVersionTag) _005fjspx_005ftagPool_005fss_005fver.get(tag.SourceVersionTag.class);
    _jspx_th_ss_005fver_005f13.setPageContext(_jspx_page_context);
    _jspx_th_ss_005fver_005f13.setParent(null);
    int _jspx_eval_ss_005fver_005f13 = _jspx_th_ss_005fver_005f13.doStartTag();
    if (_jspx_eval_ss_005fver_005f13 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      if (_jspx_eval_ss_005fver_005f13 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
        _jspx_th_ss_005fver_005f13.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_ss_005fver_005f13.doInitBody();
      }
      do {
        out.write("js/app/scriptedit2.js");
        int evalDoAfterBody = _jspx_th_ss_005fver_005f13.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
      if (_jspx_eval_ss_005fver_005f13 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.popBody();
      }
    }
    if (_jspx_th_ss_005fver_005f13.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f13);
      return true;
    }
    _005fjspx_005ftagPool_005fss_005fver.reuse(_jspx_th_ss_005fver_005f13);
    return false;
  }

  private boolean _jspx_meth_c_005fif_005f0(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  c:if
    org.apache.taglibs.standard.tag.rt.core.IfTag _jspx_th_c_005fif_005f0 = (org.apache.taglibs.standard.tag.rt.core.IfTag) _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.get(org.apache.taglibs.standard.tag.rt.core.IfTag.class);
    _jspx_th_c_005fif_005f0.setPageContext(_jspx_page_context);
    _jspx_th_c_005fif_005f0.setParent(null);
    // /scriptEdit2.jsp(550,16) name = test type = boolean reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
    _jspx_th_c_005fif_005f0.setTest(((java.lang.Boolean) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${param.side=='client' }", java.lang.Boolean.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false)).booleanValue());
    int _jspx_eval_c_005fif_005f0 = _jspx_th_c_005fif_005f0.doStartTag();
    if (_jspx_eval_c_005fif_005f0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      do {
        out.write("\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-bars\"></i> 表单事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form',this);\"><a>flowOpen 表单初始化完成</a>\n");
        out.write("                            </li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form',this);\"><a>newOpen 新增单据打开模板</a>\n");
        out.write("                            </li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form', this);\"><a>editOpen\n");
        out.write("                                编辑单据打开模板</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form', this);\"><a>viewOpen\n");
        out.write("                                查看单据打开模板</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form',this);\"><a>uiInited\n");
        out.write("                                界面初始完成但数据尚未检索</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form', this);\"><a>afterOpen 打开之后</a>\n");
        out.write("                            </li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form', this);\"><a>dialogOpen\n");
        out.write("                                当模板以对话框方式打开</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('form', this);\"><a>dialogOnOK\n");
        out.write("                                对话框点击击确认时返回数据</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form',this);\"><a>pageActive\n");
        out.write("                                工作台tab页面被激活时</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form',this);\"><a>pageDeactive\n");
        out.write("                                工作台tab页面取消激活时</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form',this);\"><a>pageClose\n");
        out.write("                                工作台tab页面在被关闭时</a></li>\n");
        out.write("                            \n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form', this);\"><a>beforeSave \n");
        out.write("                                单据保存前</a></li>\n");
        out.write("                       \n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form', this);\"><a>beforeSubmitWork  \n");
        out.write("                                工作提交前</a></li>       \n");
        out.write("                                \n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('form', this);\"><a>afterSaveSuccessful\n");
        out.write("                                单据保存成功后</a></li>\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-database\"></i> 数据源前端事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>DataStoreItemChanged\n");
        out.write("                                值发生变化</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>DataStoreItemChangeAccpet\n");
        out.write("                                是否接受变化的值</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>computerChanged\n");
        out.write("                                计算列的值发生变化</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>DataStoreBeforeRetrieve\n");
        out.write("                                检索前</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>DataStoreRetrieveEnd\n");
        out.write("                                检索完成后</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>DataStoreRetrieveOnceMoreEnd\n");
        out.write("                                更多次的检索完成后</a></li>\n");
        out.write("\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>deleteRowPermit\n");
        out.write("                                是否允许删除某行</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>beforeDeleteRow\n");
        out.write("                                删除某行前</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>afterDeleteRow\n");
        out.write("                                删除某行后</a></li>\n");
        out.write("  <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>insertRowPermit\n");
        out.write("                                是否允许插入行</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>afterInsertRow\n");
        out.write("                                插入一行后</a></li>\n");
        out.write("                                <!-- \n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>afterSort\n");
        out.write("                                排序完成后</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>afterFilter\n");
        out.write("                                过滤完成后</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>afterReset\n");
        out.write("                                清空后</a></li>\n");
        out.write(" -->\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>validate\n");
        out.write("                                保存前的数据检验 </a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>sqlPreview\n");
        out.write("                                预览SQL语句</a></li>\n");
        out.write("                                <!--  \n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>autoCheckError\n");
        out.write("                                自动校验发生错误时</a></li>\n");
        out.write(" -->\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>beforeGetValue\n");
        out.write("                                在获取某行某列什之前</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('datastore',this);\"><a>onError\n");
        out.write("                                发生异常</a></li>\n");
        out.write("                          \n");
        out.write("\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("\n");
        out.write("\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-coffee\"></i> 单元格事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellClicked\n");
        out.write("                                单元格点击</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellDblClicked\n");
        out.write("                                单元格被双击</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellRightClicked\n");
        out.write("                                单元格被鼠标右键点击</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellFocusGained\n");
        out.write("                                单元格获得焦点</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellFocusLost\n");
        out.write("                                单元格失去焦点</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellValueChangeAccept\n");
        out.write("                                值是否允许改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>CellValueChanged\n");
        out.write("                                单元格的值已经改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>CellValueChangedByEdit\n");
        out.write("                                值因被编辑而改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cellPaint\n");
        out.write("                                单元格自绘</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>isCellEditable\n");
        out.write("                                单元格是否允许编辑</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>beginEdit\n");
        out.write("                                单元格开始编辑</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>endEdit\n");
        out.write("                                单元格编辑结束</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>editFocusChanged\n");
        out.write("                                单元格编辑焦点发生变化</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>buildToolTip\n");
        out.write("                                定制单元格的气泡提示信息</a></li>\n");
        out.write("\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-table\"></i> 工作表事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>sheetNameChanged\n");
        out.write("                                工作表名称改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>afterNewSheet\n");
        out.write("                                新插入工作表后</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>sheetDeletePermit\n");
        out.write("                                工作表是否允许删除</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>sheetPrintPermit\n");
        out.write("                                工作表是否允许打印</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>afterSheetPrint\n");
        out.write("                                工作表打印之后</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>sheetActiveStateChanged\n");
        out.write("                                激活状态变化</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>onMouseMove\n");
        out.write("                                鼠标移动</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>currentBindRowChanged\n");
        out.write("                                当前焦点行改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>onDragDrop\n");
        out.write("                                拖拽进入</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>onScroll\n");
        out.write("                                发生卷滚</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>columnWidthChanged\n");
        out.write("                                某列宽度发生改变</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>rowHeightChanged\n");
        out.write("                                某行高度发生改变</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>loadMoreTipInfoWhenScrollToTop\n");
        out.write("                                划屏到顶部后显示的提示信息</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>loadMoreTipInfoWhenScrollToBottom\n");
        out.write("                                划屏到底部后显示的提示信息</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>loadMoreWhenScrollToTop\n");
        out.write("                                划屏到顶部后执行</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>loadMoreWhenScrollToBottom\n");
        out.write("                                划屏到底部后执行</a></li>\n");
        out.write("\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-sticky-note\"></i> 单据相关事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>buildBillSearchWhere\n");
        out.write("                                构建单据查询条件</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>refreshRetrieveWhereDefine\n");
        out.write("                                构建单据列表刷新某行的查询条件</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>isBillNeedToSave\n");
        out.write("                                单据是否需要保存</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>newBillNoInScript\n");
        out.write("                                定制一个单据号</a></li>\n");
        out.write("  \n");
        out.write("  \t\t\t\t <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>newPermit 是否允许新增单据</a></li>\n");
        out.write("\t\t\t\t <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>viewPermit 是否允许查看单据</a></li>\n");
        out.write("\t\t\t\t <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>editPermit 是否允许编辑单据</a></li>\n");
        out.write("\t\t\t\t \n");
        out.write(" \n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("\n");
        out.write("                    <li class=\"nav__menu-item\"><a><i class=\"fa fa-desktop\"></i> 其它UI事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>VirtualButtonClicked\n");
        out.write("                                按钮被点击</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>cbXXX_onclick\n");
        out.write("                                某名称的按钮被点击</a></li>\n");
        out.write("                                <!-- \n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>contextMenuOnClick\n");
        out.write("                                右键菜单被点击</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>menuXXX_onClick\n");
        out.write("                                某个右键菜单被点击</a></li>\n");
        out.write("                                 -->\n");
        out.write("                                 \n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>treeOnClick\n");
        out.write("                                树的某个节点被点击</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>treeOnCheck\n");
        out.write("                                多选树节点被选中/取消选中</a></li>\n");
        out.write("\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>error 发生错误</a>\n");
        out.write("                            </li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>loadPrintConfig\n");
        out.write("                                加载打印设置</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>savePrintConfig\n");
        out.write("                                保存打印设置</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>popupedOnOK\n");
        out.write("                                弹出工作表窗口点击确定</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workbook',this);\"><a>popupedOnCancel\n");
        out.write("                                弹出工作表窗口点击取消</a></li>\n");
        out.write("\n");
        out.write("   <li style=\"height:1px;line-height:1px; background-color:#efefef;margin:2px;\"></li>\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('other',this);\"><a>getExportFileName\n");
        out.write("                                导出数据时自定义文件名</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item \" onclick=\"scriptWizard('other',this);\"><a>getExportColumns\n");
        out.write("                                导出哪些字段</a></li>\n");
        out.write("\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write("\n");
        out.write("                ");
        int evalDoAfterBody = _jspx_th_c_005fif_005f0.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
    }
    if (_jspx_th_c_005fif_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.reuse(_jspx_th_c_005fif_005f0);
      return true;
    }
    _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.reuse(_jspx_th_c_005fif_005f0);
    return false;
  }

  private boolean _jspx_meth_c_005fif_005f1(javax.servlet.jsp.PageContext _jspx_page_context)
          throws java.lang.Throwable {
    javax.servlet.jsp.PageContext pageContext = _jspx_page_context;
    javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();
    //  c:if
    org.apache.taglibs.standard.tag.rt.core.IfTag _jspx_th_c_005fif_005f1 = (org.apache.taglibs.standard.tag.rt.core.IfTag) _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.get(org.apache.taglibs.standard.tag.rt.core.IfTag.class);
    _jspx_th_c_005fif_005f1.setPageContext(_jspx_page_context);
    _jspx_th_c_005fif_005f1.setParent(null);
    // /scriptEdit2.jsp(783,16) name = test type = boolean reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
    _jspx_th_c_005fif_005f1.setTest(((java.lang.Boolean) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${param.side=='server'      }", java.lang.Boolean.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false)).booleanValue());
    int _jspx_eval_c_005fif_005f1 = _jspx_th_c_005fif_005f1.doStartTag();
    if (_jspx_eval_c_005fif_005f1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
      do {
        out.write("\n");
        out.write("                    \n");
        out.write("                 <li class=\"nav__menu-item\"><a><i class=\"fa fa-sticky-note\"></i> 单据相关事件</a>\n");
        out.write("                        <ul class=\"nav__submenu\">\n");
        out.write("                           \n");
        out.write("\t\t\t\t   <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('bill',this);\"><a>deletePermit 是否允许删除单据</a></li>\n");
        out.write("\n");
        out.write(" \n");
        out.write("                  \n");
        out.write("\n");
        out.write("                   <li style=\"color:#404040;\"><strong>&nbsp;&nbsp;附件相关事件</strong></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('attachmentOnServer',this);\"><a>attachmentDeletePermit\n");
        out.write("                                允许删除附件吗</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('attachmentOnServer',this);\"><a>attachmentUploadPermit\n");
        out.write("                                允许上传附件吗</a></li>\n");
        out.write("                            <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('attachmentOnServer',this);\"><a>attachmentRenamePermit\n");
        out.write("                                允许附件改名吗</a></li>\n");
        out.write("\n");
        out.write("                        \n");
        out.write("\n");
        out.write("\n");
        out.write("                        </ul>\n");
        out.write("                    </li>\n");
        out.write(" \n");
        out.write(" \n");
        out.write("            <li class=\"nav__menu-item\"><a><i class=\"fa fa-table\"></i> 工作流服务端事件</a>\n");
        out.write("                    <ul class=\"nav__submenu\">\n");
        out.write("                        <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>afterSubmitWork 工作提交后</a></li>\n");
        out.write("                       <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>untreadPermit 是否允许退回</a></li>\n");
        out.write("                         <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>flowWithdraw 工作被退回到某步骤后</a></li>\n");
        out.write("                                <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>beforeUnOverWork 工作取消结束前</a></li>\n");
        out.write("                                <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>afterUnOverWork 工作取消结束后</a></li>\n");
        out.write("                                <li class=\"nav__submenu-item  \" onclick=\"scriptWizard('workflow',this);\"><a>onWorkOver 工作结束时</a></li>\n");
        out.write("                                \n");
        out.write("                                                \n");
        out.write("                    </ul>\n");
        out.write("              </li>\n");
        out.write("                                \n");
        out.write("\n");
        out.write("                ");
        int evalDoAfterBody = _jspx_th_c_005fif_005f1.doAfterBody();
        if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          break;
      } while (true);
    }
    if (_jspx_th_c_005fif_005f1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.reuse(_jspx_th_c_005fif_005f1);
      return true;
    }
    _005fjspx_005ftagPool_005fc_005fif_0026_005ftest.reuse(_jspx_th_c_005fif_005f1);
    return false;
  }
}
