コード例 #1
0
        /// <summary>
        /// 创建分析报表中维度列的呈现器函数
        /// </summary>
        /// <param name="pDrilledColumn">钻取的列</param>
        /// <param name="pOtherColumns">其他作为筛选条件的维度列</param>
        /// <param name="pMultiDrillJSFunctionName">多维度钻取的函数名</param>
        /// <param name="pLoadingMessage">执行Ajax请求时的加载中的信息</param>
        /// <returns></returns>
        public static JSFunction CreateDimColumnRenderer(DimColumn pDrilledColumn, DimColumn[] pOtherColumns, string pMultiDrillJSFunctionName = "__fnAnalysisReportMultiDrill", string pLoadingMessage = "数据加载中,请稍后...")
        {
            JSFunction script = new JSFunction();

            script.Type         = JSFunctionTypes.Variable;
            script.FunctionName = string.Format("fn{0}Renderer", pDrilledColumn.ColumnID);
            //定义函数的参数列表
            script.Params = new List <string>();
            script.Params.Add("pVal");
            script.Params.Add("pMetaData");
            script.Params.Add("pRecord");
            script.Params.Add("pRowIndex");
            script.Params.Add("pColIndex");
            script.Params.Add("pStore");
            script.Params.Add("pView");
            //定义函数体
            script.AddSentence("//设置多维度钻取的参数");
            script.AddSentence("var params={};");
            script.AddSentence("params.DimColumnID ={0}{1}{0};", JSONConst.STRING_WRAPPER, pDrilledColumn.ColumnID);
            script.AddSentence("params.DimValue=pRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, pDrilledColumn.ColumnID);
            script.AddSentence("params.DimText=pRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, pDrilledColumn.GetTextColumnID());
            if (pOtherColumns != null)
            {
                script.AddSentence("params.DrillingItems=new Array();");
                int i = 0;
                foreach (var dim in pOtherColumns)
                {
                    script.AddSentence("var item{0}={{}};", i.ToString());
                    script.AddSentence("item{2}.DimColumnID={0}{1}{0};", JSONConst.STRING_WRAPPER, dim.ColumnID, i.ToString());
                    script.AddSentence("item{2}.DimValue=pRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, dim.ColumnID, i.ToString());
                    script.AddSentence("item{2}.DimText=pRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, dim.GetTextColumnID(), i.ToString());
                    script.AddSentence("params.DrillingItems.push(item{0});", i.ToString());
                    i++;
                }
            }
            script.AddSentence("if (window.___MultiDrillingParams == null)");
            script.AddSentence("    window.___MultiDrillingParams = {};");
            script.AddSentence("window.___MultiDrillingParams[pRowIndex.toString()] = params;");
            script.AddSentence("//生成链接");
            script.AddSentence("var html = '';");
            script.AddSentence("html += '<a style=\"color:#666;text-decoration:underline;\" href=\"javascript:{0}(window.___MultiDrillingParams['+pRowIndex.toString()+']);\">' + params.DimText + '</a>';", pMultiDrillJSFunctionName);
            script.AddSentence("return html;");
            //
            return(script);
        }
コード例 #2
0
        /// <summary>
        /// 创建查看明细的JS函数
        /// </summary>
        /// <param name="pAjaxHandlerUrl">Ajax请求的url</param>
        /// <param name="pDrilledDim">需要钻取的维度列</param>
        /// <param name="pOtherDim">其他的维度列</param>
        /// <param name="pMultiDrillJSFunctionName">多维度钻取的函数名</param>
        /// <param name="pFunctionName">函数的名称</param>
        /// <param name="pLoadingMessage">执行Ajax请求时的加载中的信息</param>
        /// <returns></returns>
        public static JSFunction CreateViewDetail(string pAjaxHandlerUrl, DimColumn pDrilledDim, DimColumn[] pOtherDim, string pMultiDrillJSFunctionName = "__fnAnalysisReportMultiDrill", string pFunctionName = "__fnAnalysisReportViewDetail", string pLoadingMessage = "数据加载中,请稍后...")
        {
            JSFunction script = new JSFunction();

            script.Type         = JSFunctionTypes.Common;
            script.FunctionName = pFunctionName;
            //定义函数的参数列表
            script.Params = new List <string>();
            script.Params.Add("item");
            script.Params.Add("e");
            //
            script.AddSentence("var menu =item.parentMenu;");
            script.AddSentence("var clickRecord =menu.___current_record;");
            script.AddSentence("if(clickRecord){");
            script.AddSentence("    var params={};");
            script.AddSentence("    params.DimColumnID ={0}{1}{0};", JSONConst.STRING_WRAPPER, pDrilledDim.ColumnID);
            script.AddSentence("    params.DimValue=clickRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, pDrilledDim.ColumnID);
            script.AddSentence("    params.DimText=clickRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, pDrilledDim.GetTextColumnID());
            if (pOtherDim != null)
            {
                script.AddSentence("    params.DrillingItems=new Array();");
                int i = 0;
                foreach (var dim in pOtherDim)
                {
                    script.AddSentence("    var item{0}={{}};", i.ToString());
                    script.AddSentence("    item{2}.DimColumnID={0}{1}{0};", JSONConst.STRING_WRAPPER, dim.ColumnID, i.ToString());
                    script.AddSentence("    item{2}.DimValue=clickRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, dim.ColumnID, i.ToString());
                    script.AddSentence("    item{2}.DimText=clickRecord.get({0}{1}{0});", JSONConst.STRING_WRAPPER, dim.GetTextColumnID(), i.ToString());
                    script.AddSentence("    params.DrillingItems.push(item{0});", i.ToString());
                    i++;
                }
            }
            script.AddSentence("    {0}(params);", pMultiDrillJSFunctionName);
            script.AddSentence("}");
            //
            return(script);
        }