/// <summary>
        /// 根据绘图曲线项的名字获得曲线项包含的刻度尺设计链表;
        /// </summary>
        /// <param name="lineName"></param>
        /// <returns></returns>

        public static List <DrawingKedu> GetDrawKDList(string lineName)
        {
            DrawingKedu        DKD    = new DrawingKedu();
            List <DrawingKedu> relist = new List <DrawingKedu>();

            foreach (DictionaryEntry ent in _ht_Keduchi)//循环分析哈希表中每一个值
            {
                DKD = (DrawingKedu)ent.Value;
                if (DKD.KDrawItem == lineName)//比较,如果相同则sum自加1
                {
                    relist.Add(DKD);
                }
            }
            return(relist);
        }
        /// <summary>
        /// 方法:将刻度尺的数据导入到哈希表Ht_Keduchi中
        /// </summary>
        /// <param name="condition"></param>
        public static void SetDrawingKeduByDB(string condition)
        {
            _ht_Keduchi.Clear();
            _lineitemKDC.Clear();

            Object       obj = typeof(string); //获取关于string类型的抽象类
            Type         type;                 //反射接口
            string       sqlGetKedu = "select * from " + MyTableManage.KeDuChiTbName + " " + condition;
            DbDataReader kedudr     = null;
            DrawingKedu  dk;
            KeDuChiDAL   kdcDal = new KeDuChiDAL(MyTableManage.KeDuChiTbName);

            kedudr = kdcDal.GetKeDuChiDesignByDB(condition);
            //  kedudr = AccessCSHelper.ExecuteReader(MyTableManage.GetCJJSDrawingDBConnStr(), sqlGetKedu);//取出数据集加载到datareader中
            if (kedudr.HasRows)
            {
                while (kedudr.Read())
                {
                    string kdrawitem = kedudr["KDrawItem"].ToString().Trim();
                    if (!_lineitemKDC.Contains(kdrawitem))
                    {
                        _lineitemKDC.Add(kdrawitem);
                    }

                    dk   = new DrawingKedu();
                    type = dk.GetType();                                        //获取对象(dt)的类型
                    foreach (PropertyInfo p in type.GetProperties())            //赋值过程
                    {
                        string proName  = p.Name.Trim();                        //PropertyInfo的名字
                        string proValue = kedudr[proName].ToString().Trim();    //将p进行赋值
                        type.GetProperty(proName).SetValue(dk, proValue, null); //关键,设置非静态对象的某个属性的值.
                    }
                    try
                    {
                        _ht_Keduchi.Add(dk.KName, dk);//将表中的主键作为key值,将对象赋予到哈希表中
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
            kedudr.Close();
        }
Esempio n. 3
0
 public KeDuChiItem(DrawingKedu drawingKDC)
 {
     _drawItemName = drawingKDC.KDrawItem.Trim();
     _KCol         = StrUtil.StrToInt(drawingKDC.KCol, "未设置刻度尺颜色", "刻度尺颜色设计有误");
     _KDir         = GetKDCDir(drawingKDC.KDir.Trim());
     _kSepNum      = GetIntValue(drawingKDC.KSepNum.Trim(), 1, "刻度尺份数为非数值型");
     _KUnit        = drawingKDC.KUnit.Trim();
     _KStyle       = GetKDCStyle(drawingKDC.KStyle.Trim());
     _KParm        = GetDoubleValue(drawingKDC.KParm.Trim(), -1, "对数系数为非数值型");
     _KMin         = GetDoubleValue(drawingKDC.KMin.Trim(), 0, "刻度尺最小值为非数值型");
     _KMax         = GetDoubleValue(drawingKDC.KMax.Trim(), 0, "刻度尺最大值为非数值型");
     _KIfCenterBZ  = drawingKDC.KIfCenterBZ.Trim();
     _KIfTwoEndBZ  = drawingKDC.KIfTwoEndBZ.Trim();
     _KFixedLen    = GetDoubleValue(drawingKDC.KFixedLen.Trim(), 0, "刻度尺固定长度值为非数值型");
     _KLineStyle   = drawingKDC.KLineStyle.Trim();
     _KNum         = GetIntValue(drawingKDC.KNum.Trim(), 0, "刻度尺序号为非数值型");
     _kLineWidth   = GetDoubleValue(drawingKDC.KLineWidth.Trim(), 0, "刻度尺所对应曲线的宽度为非数值型");
     _KName        = drawingKDC.KName.Trim();
     _bzTextStyle  = FrameDesign.ScaleLabelTxtFont;
 }