public void InitValue(QuickReportCore.Objects.Condition condition) { if (condition.ConditionSetting == null) { return; } ParseFromXml(condition.ConditionSetting.SelectNodes(XmlAttrDic.ConditionValueNumeralInt.ToString())); }
/// <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); }
public void ParseFromXml(XmlDocument xmlDocument) { GobalConditionList = new List <QuickReportCore.Objects.Condition>(); System.Xml.XmlNodeList nodeList = xmlDocument.SelectNodes("//" + ucConditionObject.XmlAttrDic.ConditionObject.ToString()); Objects.Condition[] conditions = new QuickReportCore.Objects.Condition[nodeList.Count]; foreach (System.Xml.XmlNode node in nodeList) { Objects.Condition condition = new QuickReportCore.Objects.Condition(); condition.ID = Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.tID.ToString(), string.Empty); condition.Name = Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.tName.ToString(), string.Empty); condition.ConditionType.ID = Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.tConditionTypeID.ToString(), string.Empty); condition.ConditionType.Name = Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.tConditionTypeName.ToString(), string.Empty); condition.ConditionType.Content = node.SelectSingleNode(Forms.frmToolBoxConditionTypeEditor.XmlAttrDic.ConditionTypeContent.ToString()) as System.Xml.XmlElement; condition.DefaultShow = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.bDefaultShow.ToString(), "0"))); condition.Use = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.bUse.ToString(), "0"))); condition.NotNull = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.bNotNull.ToString(), "0"))); condition.SortId = Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, ucConditionObject.XmlAttrDic.tSortID.ToString(), "0")); condition.ConditionSetting = node.SelectSingleNode(ucConditionObject.XmlAttrDic.ConditionSetting.ToString()) as XmlElement; conditions[condition.SortId] = condition.Clone(); if (conditions[condition.SortId].Use) { GobalConditionList.Add(conditions[condition.SortId]); } } ucConditionObjectControls = new Hashtable(); for (int i = 0; i < conditions.Length; i++) { if (!ucConditionObjectControls.Contains(conditions[i].ID)) { ucConditionObject uc = new ucConditionObject(); uc.ActivateOn += new ucConditionObject.ActivateHandle(uc_ActivateOn); uc.ConditionShowChanged += new ucConditionObject.ConditionShowChangedHandle(uc_ConditionShowChanged); uc.InitFormConditionEditor(f); uc.Condition = conditions[i]; ucConditionObjectControls.Add(conditions[i].ID, uc); } } pnlConditions.Controls.Clear(); foreach (DictionaryEntry de in ucConditionObjectControls) { pnlConditions.Controls.Add(de.Value as Control); int i = (de.Value as ucConditionObject).Condition.SortId; if (i == 0) { (de.Value as ucConditionObject).Location = new Point(leftMargin, topMargin); } else { (de.Value as ucConditionObject).Location = new Point(leftMargin, topMargin + (ucConditionObjectControls[conditions[i].ID] as ucConditionObject).Height * i + eatchMargin * i); } } }
public void InitValue(QuickReportCore.Objects.Condition condition) { comboBox.Items.Clear(); System.Xml.XmlElement node = condition.ConditionType.Content; if (node == null) { return; } bool useSql = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, Forms.frmToolBoxConditionTypeEditor.XmlAttrDic.bUseSql.ToString(), "0"))); bool useCustomElement = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, Forms.frmToolBoxConditionTypeEditor.XmlAttrDic.bUseCustomElement.ToString(), "0"))); bool useAll = Convert.ToBoolean(Convert.ToInt32(Managers.Functions.GetNodeAttrValue(node, Forms.frmToolBoxConditionTypeEditor.XmlAttrDic.bUseAll.ToString(), "0"))); string sql = Managers.Functions.GetNodeAttrValue(node, Forms.frmToolBoxConditionTypeEditor.XmlAttrDic.tSql.ToString(), string.Empty); if (useSql) { sql = Managers.Functions.TranslateTextWithSystemValue(sql); int i = qr.ExecQuery(sql); if (i < 0) { return; } try { while (qr.Reader.Read()) { Objects.Condition c = new QuickReportCore.Objects.Condition(); c.ID = qr.Reader[0].ToString(); c.Name = qr.Reader[1].ToString(); comboBox.Items.Add(c); } } catch { return; } finally { qr.Reader.Close(); } if (condition.ConditionSetting == null) { return; } } else if (useCustomElement) { System.Xml.XmlNodeList nodeList = node.SelectSingleNode(ucConditionTypeElementListWithFarpoint.XmlAttrDic.ConditionTypeElementList.ToString()).SelectNodes(ucConditionTypeElementListWithFarpoint.XmlAttrDic.ConditionTypeElement.ToString()); if (nodeList != null && nodeList.Count > 0) { for (int i = 0; i < nodeList.Count; i++) { Objects.Condition c = new QuickReportCore.Objects.Condition(); c.ID = Managers.Functions.GetNodeAttrValue(nodeList[i], ucConditionTypeElementListWithFarpoint.XmlAttrDic.tCode.ToString(), string.Empty); c.Name = Managers.Functions.GetNodeAttrValue(nodeList[i], ucConditionTypeElementListWithFarpoint.XmlAttrDic.tName.ToString(), string.Empty); comboBox.Items.Add(c); } } } if (useAll) { comboBox.Items.Add(new Objects.Condition("ALL", "全部")); } if (condition.ConditionSetting == null) { return; } ParseFromXml(condition.ConditionSetting.SelectNodes(XmlAttrDic.ConditionValueCustomComboBox.ToString())); }