Ejemplo n.º 1
0
        private string m_strConstructXmlRules()
        {
            Hashtable hasChoice = new Hashtable();

            clsLisQCRuleVO[]          rules   = m_arrGetRulesFromBase();
            List <QualityControlRule> qcRules = new List <QualityControlRule>();

            for (int i = 0; i < m_dtgQCRules.Rows.Count; i++)
            {
                if ((bool)m_dtgQCRules.Rows[i].Cells[1].Value)
                {
                    hasChoice.Add(m_dtgQCRules.Rows[i].Cells[0].Value, (bool)m_dtgQCRules.Rows[i].Cells[2].Value);
                }
            }

            foreach (clsLisQCRuleVO vo in rules)
            {
                if (hasChoice.Contains(vo.m_strName))
                {
                    QualityControlRule rule   = null;
                    QcParserXmlRules   parser = new QcParserXmlRules(vo.m_strFormula);
                    if (parser.Rule != null)
                    {
                        rule           = parser.Rule;
                        rule.IsWarning = (bool)hasChoice[vo.m_strName];
                        rule.Name      = vo.m_strName;
                        qcRules.Add(rule);
                    }
                }
            }

            return(QcParserXmlRules.ParserRuleArrToXmlString(qcRules));
        }
Ejemplo n.º 2
0
        public static string ParserOneRuleToXmlString(QualityControlRule rule)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<rule name=\"{0}\">");
            sb.AppendLine();
            sb.Append(@"  <formula>{1}</formula>");
            sb.AppendLine();
            sb.Append(@"    <joined>{2}</joined>");
            sb.AppendLine();
            sb.Append(@"     <Number>{3}</Number>");
            sb.AppendLine();
            sb.Append(@"      <warning>{4}</warning>");
            sb.AppendLine();
            sb.Append(@"</rule>");
            return
                (string.Format(sb.ToString(), rule.Name, rule.Formula, Convert.ToInt32(rule.Joined), rule.Numer,
                               Convert.ToInt32(rule.IsWarning)));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 解析Xml文件成实例

        /// </summary>
        /// <param name="xmlRule"></param>
        private void processXmlReader(XmlReader xmlRule)
        {
            try
            {
                QualityControlRule oneRule = new QualityControlRule();
                while (xmlRule.Read())
                {
                    xmlRule.MoveToElement();
                    while (xmlRule.Read())
                    {
                        if (xmlRule.Name.ToLower().Trim() == "rule")
                        {
                            oneRule.Name = xmlRule.GetAttribute("name");
                        }
                        if (xmlRule.Name.ToLower().Trim() == "formula")
                        {
                            oneRule.Formula = xmlRule.ReadString();
                        }
                        if (xmlRule.Name.ToLower().Trim() == "joined")
                        {
                            oneRule.Joined = xmlRule.ReadElementContentAsBoolean();
                        }
                        if (xmlRule.Name.ToLower().Trim() == "number")
                        {
                            oneRule.Numer = xmlRule.ReadElementContentAsInt();
                        }
                        if (xmlRule.Name.ToLower().Trim() == "warning")
                        {
                            oneRule.IsWarning = xmlRule.ReadElementContentAsBoolean();
                            ruleList.Add(oneRule);
                            oneRule = new QualityControlRule();
                        }
                    }
                    break;
                }
            }
            finally
            {
                xmlRule.Close();
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 构造解析器
 /// </summary>
 /// <param name="rule">规则</param>
 /// <param name="data">质控数据</param>
 public QualityControlRulesParser(QualityControlRule rule, QualityControlData data)
 {
     this.rule = rule;
     this.data = data;
     FillResult();
 }