/// <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(); }
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; }