예제 #1
0
파일: Engine.cs 프로젝트: ikvm/test
        private Report internalCalc()
        {
            CalcReport.calcRpt(_report, _cells.Env.CoverUserDataSet, _cells);
            if (!_cells.Input)
            {
                _cells.Env.DataSetsMap.Clear();
            }
            CellSet cs = _cells.write();

            if (cs == null)
            {
                return(null);
            }
            Report report = new Report(cs);

            Logger.debug("计算结束:");
            return(report);
        }
예제 #2
0
파일: CalcSubReport.cs 프로젝트: ikvm/test
        private object method_1(ReportDefine reportDefine_0, ArrayList arrayList_0, ArrayList arrayList_1, int int_1)
        {
            Env env  = new Env(reportDefine_0);
            Env env2 = base.cs.Env;

            env.setConnection(env2.getConnection());
            env.Request = env2.Request;
            if ((arrayList_0 != null) && (arrayList_1 != null))
            {
                if (arrayList_0.Count != arrayList_1.Count)
                {
                    throw new ReportError("子报表参数名列表和参数表达式列表个数不一致");
                }
                for (int i = 0; i < arrayList_0.Count; i++)
                {
                    string paramName  = (string)arrayList_0[i];
                    object paramValue = arrayList_1[i];
                    if (paramName != null)
                    {
                        env.putParam(paramName, paramValue);
                    }
                }
            }
            CellExt1 ecs = new CellExt1(env);

            if (int_1 != 0)
            {
                ecs.SubRptType = CellExt1.SRT_IMPORT;
            }
            else
            {
                ecs.SubRptType = CellExt1.SRT_EMBED;
            }
            ecs.read(reportDefine_0.CellSet);
            CalcReport.calcRpt(reportDefine_0, true, ecs);
            return(ecs);
        }