Ejemplo n.º 1
0
        private DataSet GetDataSet(string sql)
        {
            DataSet ds = null;

            quickReportManager.ExecQuery(sql, ref ds);
            return(ds);
        }
Ejemplo n.º 2
0
        private DataSet GetDataSet()
        {
            string sqlColumn      = string.Empty;
            string sqlUnionall    = string.Empty;
            string sqlAllUnionall = string.Empty;

            if (Items[0] as Objects.BaseObject == null || ShowState == ColumnShowState.Name)//判断,如果第一个不是BaseObject的,则默认以后的也不是,这样,就只显示一列“名称”。
            {
                sqlColumn   = sqlColumnName;
                sqlUnionall = sqlUnionallName;
                for (int i = 0; i < Items.Count; i++)
                {
                    sqlAllUnionall += string.Format(sqlUnionall, Items[i].ToString());
                }
                sqlAllUnionall = sqlAllUnionall.Remove(sqlAllUnionall.LastIndexOf("union all"));
                string  sql = string.Format(sqlBase, sqlColumn, sqlAllUnionall);
                DataSet ds  = null;
                quickReportManager.ExecQuery(sql, ref ds);
                return(ds);
            }
            else
            {
                sqlColumn   = sqlColumnBoth;
                sqlUnionall = sqlUnionallBoth;
                for (int i = 0; i < Items.Count; i++)
                {
                    Objects.BaseObject obj = Items[i] as Objects.BaseObject;
                    if (obj == null)
                    {
                        sqlAllUnionall += string.Format(sqlUnionall, string.Empty, Items[i].ToString());
                    }
                    else
                    {
                        sqlAllUnionall += string.Format(sqlUnionall, obj.ID, obj.Name);
                    }
                }
                sqlAllUnionall = sqlAllUnionall.Remove(sqlAllUnionall.LastIndexOf("union all"));
                string  sql = string.Format(sqlBase, sqlColumn, sqlAllUnionall);
                DataSet ds  = null;
                quickReportManager.ExecQuery(sql, ref ds);
                return(ds);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 解析Sql。
        /// </summary>
        /// <returns>解析出来的列与条件。</returns>
        public static ArrayList ParseSql(string s)
        {
            if (s.Trim() == string.Empty)
            {
                return(null);
            }
            s = TranslateTextWithSystemValue(s);
            s = "Select * From ( \n " + s + " \n )  Where 1<>1";
            DataSet ds = new DataSet();
            int     i  = qr.ExecQuery(s, ref ds);

            if (i < 0)
            {
                return(null);
            }
            if (ds == null || ds.Tables == null || ds.Tables.Count == 0)
            {
                return(null);
            }
            DataTable dt = ds.Tables[0];

            List <QuickReportCore.Objects.Column>    columnList    = new List <QuickReportCore.Objects.Column>();
            List <QuickReportCore.Objects.Condition> conditionList = new List <QuickReportCore.Objects.Condition>();

            Hashtable htTestor = new Hashtable();

            for (int index = 0; index < dt.Columns.Count; index++)
            {
                if (htTestor.Contains(dt.Columns[index].ColumnName))
                {
                    return(null);
                }
                htTestor.Add(dt.Columns[index].ColumnName, dt.Columns[index].ColumnName);
                QuickReportCore.Objects.Column    column    = new QuickReportCore.Objects.Column();
                QuickReportCore.Objects.Condition condition = new QuickReportCore.Objects.Condition();
                column.ID     = condition.ID = column.Name = condition.Name = dt.Columns[index].ColumnName;
                column.SortId = condition.SortId = index;
                if (dt.Columns[index].DataType == typeof(System.Decimal) || dt.Columns[index].DataType == typeof(System.Int32))
                {
                    column.IsNumber = true;
                }
                Objects.ConditionType ct = Objects.ConditionType.DataTypeCompareToConditionType[dt.Columns[index].DataType] as Objects.ConditionType;
                if (ct != null)
                {
                    condition.ConditionType = ct;
                }
                columnList.Add(column);
                conditionList.Add(condition);
            }
            ArrayList list = new ArrayList();

            list.Add(columnList);
            list.Add(conditionList);
            return(list);
        }