C#部件故障对应矩阵【初学者】

                               表一   部件故障对应表

                        表二     部件故障对应矩阵

需要将表一的内容转换成表二,目的是让用户一目了然,更加直接清楚的了解表一内容

Frm_BujianGuzhangJuZhen的写法:

public partial class Frm_BujianGuzhangJuZhen : Frm_Base
    {
        public Frm_BujianGuzhangJuZhen()
        {
            InitializeComponent();
        }

        IList<ColClass> collist = new List<ColClass>();

        /// <summary>
        ///  初期化加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Frm_BujianGuzhangJuZhen_Load(object sender, EventArgs e)
        {
            toolStrip_btn.BackgroundImage = RFIDMg.Properties.Resources.tooldown;
            this.panel_cx.BackgroundImage = null;
            //数据初始化
            InitList();
            //加载数据
            GetData();
        }

        /// <summary>
        /// 初始化表列
        /// </summary>
        public void InitList()
        {
            collist.Clear();
            this.table_data.BeginUpdate();
            this.table_data.ColumnModel.Columns.Clear();
            #region 创建列标题
            //第一列隐藏是自动增长列,便于修改/删除
            pubtable.ColAddNew(table_data, collist, "txt", "序号", "xuhao", 50, true);
            pubtable.ColAddNew(table_data, collist, "txt", "部件编码", "bujianCode", 70, true);
            pubtable.ColAddNew(table_data, collist, "txt", "部件名称", "bujianName", 100, true);
            #endregion
            //设置属性
            AddNewColumn();
            pubtable.TableInit(this.table_data);
            this.table_data.EndUpdate();
        }

        /// <summary>
        /// 加载新的动态列
        /// </summary>
        public void AddNewColumn()
        {
            IList list = null;
            //根据条件查询
            string bujianCode = this.txtBujianCode.Text;
            string bujianName = this.txtBujianName.Text;
            T_Base_BujianGuzhangDYInfoImp imp = new T_Base_BujianGuzhangDYInfoImp();
            list = (IList)imp.GetListGuZhangStyle(bujianCode, bujianName);
            #region 动态创建列标题
            foreach (T_Base_BujianGuzhangDYInfo info in list)
            {
                if (info.guzhangCount!="")
                {
                    for (int i = 1; i <= Convert.ToInt32(info.guzhangCount); i++)
                    {
                        pubtable.ColAddNew(table_data, collist, "txt", "故障" + NumberToChinese(i), "GuzhangCode" + i, 90, true);
                    }
                }
            }
            #endregion
        }

        /// <summary>
        /// 数字转中文
        /// </summary>
        /// <param name="number">待转义的数字</param>
        /// <returns>中文</returns>
        public string NumberToChinese(int number)
        {
            string res = string.Empty;
            string str = number.ToString();
            string schar = str.Substring(0, 1);
            switch (schar)
            {
                case "1":
                    res = "一";
                    break;
                case "2":
                    res = "二";
                    break;
                case "3":
                    res = "三";
                    break;
                case "4":
                    res = "四";
                    break;
                case "5":
                    res = "五";
                    break;
                case "6":
                    res = "六";
                    break;
                case "7":
                    res = "七";
                    break;
                case "8":
                    res = "八";
                    break;
                case "9":
                    res = "九";
                    break;
                default:
                    res = "";
                    break;
            }
            if (str.Length > 1)
            {
                switch (str.Length)
                {
                    case 2:
                        res += "十";
                        break;
                    case 3:
                        res += "百";
                        break;
                    default:
                        res += "";
                        break;
                }
                if (str.Substring(0, 1) == "1" && str.Length == 2)
                {
                    res = "十" + NumberToChinese(int.Parse(str.Substring(1, str.Length - 1)));//10~19以“十”开头
                }
                else
                {
                    res += NumberToChinese(int.Parse(str.Substring(1, str.Length - 1)));
                }
            }
            return res;
        }

        /// <summary>
        /// 加载表数据信息
        /// </summary>
        public void GetData()
        {
            string bujianCode = txtBujianCode.Text;
            string bujianName = txtBujianName.Text;
            IList list = null;
            T_Base_BujianGuzhangDYInfoImp imp = new T_Base_BujianGuzhangDYInfoImp();
            list = (IList)imp.GetGuZhangListByCodeName(bujianCode, bujianName);
            //数据加载到xptable中
            LoadData(list);
            this.table_data.TableModel.Selections.Clear();
        }

        /// <summary>
        /// 加载表数据
        /// </summary>
        /// <param name="list"></param>
        public void LoadData(IList list)
        {
            this.table_data.BeginUpdate();
            this.table_data.TableModel.Rows.Clear();
            int i = 1;
            CellStyle cellStyle = new CellStyle();
            cellStyle.ForeColor = Color.Navy;
            cellStyle.Font = new Font("Arial", 9, FontStyle.Bold);
            string newBuJianCode = "";
            int j = 1;
            //循环数据集进行加载数据
            foreach (T_Base_BujianGuzhangDYInfo info in list)
            {
                j++;

                if (newBuJianCode != info.bujianCode)
                {
                    j = 1;
                    newBuJianCode = info.bujianCode;
                    #region 动态加载每列数据
                    Type type = info.GetType();
                    Row row = new Row();
                    foreach (ColClass colinfo in collist)
                    {
                        Cell cellnew = new Cell();
                        if (colinfo.fcolstyle == "btn")
                        {
                            //按钮直接取ffield变量 不是从数据库读取
                            cellnew.Text = colinfo.ffield;
                            cellnew.ForeColor = ColorTranslator.FromHtml("#0052b3");
                        }
                        else
                        {
                            if (colinfo.ffield == "xuhao")
                            {
                                //序号为前台生成的
                                cellnew.Text = i.ToString();
                                cellnew.ForeColor = ColorTranslator.FromHtml("#0052b3");
                            }
                            else if (colinfo.ffield == "check")
                            {
                                //选择框前台 默认 否
                                cellnew.Checked = false;
                                cellnew.CellStyle = cellStyle;
                            }
                            else
                            {
                                if (colinfo.ffield.Contains("GuzhangCode"))
                                {
                                    cellnew.Text = "";
                                }
                                else
                                {
                                    //数据库字段
                                    string fvalue = type.GetProperty(colinfo.ffield).GetValue(info, null).ToString();
                                    cellnew.Text = fvalue;
                                }
                            }
                        }
                        row.Cells.Add(cellnew);
                    }
                    this.table_data.TableModel.Rows.Add(row);
                    if (info.guzhangCode.ToString() != "")
                    {
                        int idIndex = pubtable.ColIndex(collist, "GuzhangCode1");
                        this.table_data.TableModel.Rows[i - 1].Cells[idIndex].Text = info.guzhangName;
                    }
                    i = i + 1;
                    #endregion
                }
                else
                {
                    if (info.guzhangCode.ToString()!="")
                    {
                        int idIndex = pubtable.ColIndex(collist, "GuzhangCode" +j);
                        this.table_data.TableModel.Rows[i - 2].Cells[idIndex].Text = info.guzhangName;
                    }
                }
            }
            this.table_data.EndUpdate();
            this.lblCount.Text = " 记录数:" +table_data.RowCount.ToString();
        }

        /// <summary>
        /// 数据查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSearch_Click(object sender, EventArgs e)
        {
            InitList();
            GetData();
        }

        /// <summary>
        /// 关闭
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }

主要函数的引用

        /// <summary>
        /// 获得故障列表、数量
        /// </summary>
        /// <param name="bujianCode">部件编码</param>
        /// <returns>返回故障数,列表</returns>
        public IList<T_Base_BujianGuzhangDYInfo> GetListGuZhangStyle(string bujianCode,string bujianName)
        {
            IList<T_Base_BujianGuzhangDYInfo> list = new List<T_Base_BujianGuzhangDYInfo>();
            string strwhere = "";
            if (bujianCode != "")
            {
                strwhere += " and BJ.bujianCode = ‘" + bujianCode + "‘ ";
            }
            if (bujianName != "")
            {
                strwhere += " and BJ.bujianName  like ‘%" + bujianName + "%‘ ";
            }
            string sqlstr = @"SELECT MAX(GZList.guzhangQty) as maxGZCount
                            FROM (SELECT a.bujianCode, count(a.bujianCode) as guzhangQty
                            from T_Base_BujianGuzhangDY a
                            group by a.bujianCode) GZList
                            left join T_Base_bujian BJ  on GZList.bujianCode = BJ.bujianCode "
                            + "where 1=1 " + strwhere;

            IDataReader Irdr = DBO.ExecuteReader(CommandType.Text, sqlstr, null);

            try
            {
                while (Irdr.Read())
                {
                    T_Base_BujianGuzhangDYInfo model = new T_Base_BujianGuzhangDYInfo();
                    model.guzhangCount = Irdr["maxGZCount"].ToString();

                        list.Add(model);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Irdr.Close();
            }
            return list;

        }

        /// <summary>
        /// 根据部件编码获取所有故障情况
        /// </summary>
        /// <param name="bujianCode">部件编码</param>
        /// <param name="bujianName">部件名称</param>
        /// <returns>部件故障IList表</returns>
        public IList<T_Base_BujianGuzhangDYInfo> GetGuZhangListByCodeName(string bujianCode, string bujianName)
        {
            string strwhere = "";
            if (bujianCode != "")
            {
                strwhere += " and BJ.bujianCode = ‘" + bujianCode + "‘ ";
            }
            if (bujianName != "")
            {
                strwhere += " and BJ.bujianName like ‘%" + bujianName + "%‘ ";
            }
            string sqlstr = @"SELECT BJ.bujianCode,BJ.bujianName,DY.guzhangCode,GZ.guzhangName
                                FROM dbo.T_Base_Bujian BJ
                                LEFT JOIN dbo.T_Base_BujianGuzhangDY DY ON BJ.bujianCode=DY.bujianCode
                                LEFT JOIN dbo.T_Base_Guzhang GZ ON DY.guzhangCode=GZ.guzhangCode
                                 where 1=1 " + strwhere+
                                "order by BJ.bujianCode,DY.guzhangCode";
            IDataReader Irdr = DBO.ExecuteReader(CommandType.Text, sqlstr, null);
            IList<T_Base_BujianGuzhangDYInfo> list = new List<T_Base_BujianGuzhangDYInfo>();
            try
            {
                while (Irdr.Read())
                {
                    T_Base_BujianGuzhangDYInfo model = new T_Base_BujianGuzhangDYInfo();
                    model.bujianCode = Irdr["bujianCode"].ToString();
                    model.bujianName = Irdr["bujianName"].ToString();
                    model.guzhangCode = Irdr["guzhangCode"].ToString();
                    model.guzhangName = Irdr["guzhangName"].ToString();

                    list.Add(model);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Irdr.Close();
            }
            return list;
        }
时间: 2024-10-17 22:03:54

C#部件故障对应矩阵【初学者】的相关文章

基于SCADA数据驱动的风电机组部件故障预警

吴亚联 1 , 梁坤鑫 1 , 苏永新 1* , 詹 俊 2(1.湘潭大学 信息工程学院, 湖南 湘潭 411105: 2.湖南优利泰克自动化系统有限公司, 湖南 长沙 410205) 摘 要: 为提高风电机组部件故障预警的精度和速度, 文章提出了一种基于SCADA数据的风电机组部件故障预警方法, 用于解决现存的风电机组部件故障预警时间与故障预警精度的矛盾. 首先SCADA历史数据通过数据预处理与BP神经网络建立机组部件正常状态模型, 随后以该模型为基础结合基于马氏距离的数据统计方法形成故障预警

内存故障与分析

内存故障与分析 一.开机无显示 由于内存条原因出现此类故障是比较普遍的现象,一般是因为内存条与主板内存插槽接触不良造成(在排除内存本身故障的前提下),只要用橡皮擦来回擦试其金手指部位即可解决问题(不要用酒精等清洗),还有就是内存损坏或主板内存槽有问题也会造成此类故障. 由于内存条原因造成开机无显示故障,主机扬声器一般都会长时间蜂鸣(针对Award Bios而言) 二.windows系统运行不稳定,经常产生非法错误 出现此类故障一般是由于内存芯片质量不良或软件原因引起,如若确定是内存条原因只有更换

芯航线FPGA学习套件之4*4矩阵键盘模块测试手册

芯航线FPGA学习套件之4*4矩阵键盘模块测试手册 ? 本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的矩阵键盘模块的测试方法: ? 连接开发板,如下所示: 2.将矩阵键盘模块与开发板按如下图所示连接: 具体连接线序,可参看下图: 打开测试工程NEW_Key_Board,如下图所示: 烧写NEW_Key_Board.sof文件到开发板中 按下任意按键,核对当前按键值与LED灯状态是否一致,下图所示: 上图,按下按键A,LED[0:3]对应状态为亮灭亮灭,因为0使能LED亮,1关闭LED灯,

电脑故障指南1

电脑故障维修大全   使用电脑的时经常会遇到些大大小小的问题,如电脑经常性死机.蓝屏.黑屏;网络速度太慢.网页打不开.宽带连接不稳定;游戏应用程序出错.磁盘空间不足.电脑没声音等等,上维修店维修少则几十块,多则一两百,关键是扛着电脑来来回回太麻烦.下面给大家介绍电脑故障维修大全. 开启分步阅读模式 01 内存故障 故障现象一:内存条与主板插槽接触不良.内存控制器出现故障表现为:打开主机电源后屏幕显示"Error:Unable to ControlA20 Line"出错信息后死机. 分析

事故教训:备份与巡检的重要性

前一段时间,发生了多起较大的数据库故障,几乎每个月发生一次事故!大部分原因是硬件故障引起,由于巡检不及时,导致累积坏掉2块或2块以上磁盘,从而造成重大损失. 磁盘阵列的关键部件如磁盘控制器.磁盘都是冗余配置的,正常情况下,允许坏掉一个部件而不影响正常工作,但是如果不及时更换故障部件,当再次发生部件故障时,灾难就发生了.所以,及时的巡检非常重要,可以避免不必要的故障发生.每个项目都要做到,确保自己的数据库所在磁盘阵列都是正常的,每周至少1次巡检磁盘阵列,前面板有无故障指示灯闪烁.当灾难发生时,还有

Infiniband基本知识

InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5 Gbps的运行速度.这种架构在一个链接的时候速度是500 MB/秒,四个链接的时候速度是2 GB/秒,12个链接的时候速度可以达到6 GB /秒. 1                基本特征 InfiniBand技术不是用于一般网络连接的,它的主要设计目的是针对服务器端的连接问题的.因此,InfiniBand技术将会被应用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如SAN

GFS Google File System(中文翻译)

Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1.设计概览 (1)设计想定 GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想.这就需要对传统的选择进行重新检验并进行完全不同的设计观点的探索. GFS与以往的文件系统的不同的观点如下: 1.部件错误

HADOOP docker(十):hdfs 结构体系

1.简介2.namenode和datanode3.The File System Namespace 文件系统命名空间4.Data Replication 数据复制5.Replica Placement: The First Baby Steps 复制块放置:初步的想法6.Replica Selection 复制块的选择7.Safemode 安全模式8.The Persistence of File System Metadata 文件系统元数据的一致性9.The Communication P

佩特来项目经验小集合(6)___ASP.NET模板页的读取

在佩特来售后管理系统流程中,其中有一个节点是故障分析,也就是将发回来的整机进行故障分析,传统的方法是将每个整机的故障信息录入一个Excel表,表格Excel样式: 这里是将Excel转换成模板页,然后根据需要替换模板中的标签,将功能完整展示,下面介绍在这个功能在项目中实现步骤: 1.将Excel转换为网页 打开Excel文档,单击菜单栏中的"文件",找到"另存为",如图所示.在"另存为" 窗口的"保存类型",下拉菜单中找到&q