예제 #1
0
 public static DataSet calcDataSet(Env env, DataSetConfig dsc)
 {
     return(calcDataSet(env, dsc, new CellExt1(env)));
 }
예제 #2
0
        public static DataSet calcDataSet(Env env, DataSetConfig dsc, CellExt1 ecs)
        {
            DataSet   set;
            Hashtable hashtable2;

            if (dsc == null)
            {
                return(null);
            }
            switch (dsc.SQLType)
            {
            case 7:
                break;

            case 8:
                goto Label_0179;

            default:
            {
                Hashtable hashtable = new Hashtable();
                hashtable["dsc"] = dsc;
                hashtable["ecs"] = ecs;
                SQLDataSetFactory factory = new SQLDataSetFactory {
                    Properties = hashtable
                };
                try
                {
                    return(factory.getDataSet(env));
                }
                catch (ReportError error)
                {
                    throw error;
                }
                catch (Exception exception)
                {
                    throw new ReportError(exception.Message, exception);
                }
                break;
            }
            }
            UnitSet        set5       = new UnitSet(dsc.SQL, ';');
            string         s          = Escape.removeEscAndQuote(set5["args"]);
            string         str5       = Escape.removeEscAndQuote(set5["class"]);
            DataSetFactory factory3   = new XMLDataSetFactory();
            ArgToken       token      = new ArgToken(s, ';');
            Hashtable      collection = new Hashtable();

            while (token.hasMoreTokens())
            {
                string str   = token.nextToken();
                int    index = str.IndexOf(",");
                if (index > 0)
                {
                    string   expStr = Escape.unescape(str.Substring(index + 1, str.Length - (index + 1)));
                    ExpParse parse  = new ExpParse(ecs, expStr);
                    SupportClass.PutElement(collection, str.Substring(0, index), ConvertTool.getValue(parse.calculate()));
                }
            }
            factory3.Properties = collection;
            try
            {
                return(factory3.getDataSet(env));
            }
            catch (Exception exception3)
            {
                throw new ReportError(exception3.Message, exception3);
            }
Label_0179:
            hashtable2 = new Hashtable();
            hashtable2.Add("dsc", dsc);
            BuildinDataSetFactory factory2 = new BuildinDataSetFactory {
                Properties = hashtable2
            };

            try
            {
                set = factory2.getDataSet(env);
            }
            catch (Exception exception2)
            {
                throw new ReportError(exception2.Message, exception2);
            }
            return(set);
        }
예제 #3
0
 public virtual DataSet calcDataSet(Env env, string dsName, CellExt1 ecs)
 {
     return(calcDataSet(env, this[dsName], ecs));
 }