private DataSet GetDataSet(string sql) { DataSet ds = null; quickReportManager.ExecQuery(sql, ref ds); return(ds); }
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); } }
/// <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); }