コード例 #1
0
 public void InitValue(QuickReportCore.Objects.Condition condition)
 {
     if (condition.ConditionSetting == null)
     {
         return;
     }
     ParseFromXml(condition.ConditionSetting.SelectNodes(XmlAttrDic.ConditionValueNumeralInt.ToString()));
 }
コード例 #2
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);
        }
コード例 #3
0
 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);
         }
     }
 }
コード例 #4
0
        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()));
        }