コード例 #1
0
        private int InsertRow(int index)
        {
            if (index >= dataGridViewNew.Rows.Count || index >= dataGridViewOld.Rows.Count)
            {
                return(0);
            }

            View_P_ElectronFile oldItem = dataGridViewOld.Rows[index].Tag as View_P_ElectronFile;
            View_P_ElectronFile newItem = dataGridViewNew.Rows[index].Tag as View_P_ElectronFile;
            View_P_ElectronFile item    = null;

            // 扫描旧箱数据,查找新箱中的相同零件
            for (int i = 1; i < 10; i++)
            {
                if (index + i >= dataGridViewNew.Rows.Count)
                {
                    break;
                }

                item = dataGridViewNew.Rows[index + i].Tag as View_P_ElectronFile;

                if (oldItem.父总成名称 == item.父总成名称 && oldItem.零部件编码 == item.零部件编码)
                {
                    for (int row = 0; row < i; row++)
                    {
                        dataGridViewOld.Rows.Insert(index + row, new DataGridViewRow());
                    }

                    return(i);
                }
            }

            // 扫描新箱数据,查找旧箱中的相同零件
            for (int i = 1; i < 10; i++)
            {
                if (index + i >= dataGridViewOld.Rows.Count)
                {
                    break;
                }

                item = dataGridViewOld.Rows[index + i].Tag as View_P_ElectronFile;

                if (item.父总成名称 == newItem.父总成名称 && item.零部件编码 == newItem.零部件编码)
                {
                    for (int row = 0; row < i; row++)
                    {
                        dataGridViewNew.Rows.Insert(index + row, new DataGridViewRow());
                    }

                    return(i);
                }
            }

            return(0);
        }
コード例 #2
0
        private void RefreshDataGridView(string oldProductCode, string newProductCode)
        {
            IQueryable <View_P_ElectronFile> oldEFInfo = null;
            IQueryable <View_P_ElectronFile> newEFInfo = null;
            string error = null;

            dataGridViewNew.Rows.Clear();
            dataGridViewOld.Rows.Clear();

            if (!m_electronFileServer.GetElectronFile(oldProductCode, out oldEFInfo, out error))
            {
                MessageDialog.ShowErrorMessage(error);
                return;
            }

            if (!m_electronFileServer.GetElectronFile(newProductCode, out newEFInfo, out error))
            {
                MessageDialog.ShowErrorMessage(error);
                return;
            }

            int index = 0;

            foreach (var item in oldEFInfo)
            {
                dataGridViewOld.Rows.Add(new object[] {
                    item.序号, item.父总成名称, item.父总成编码, item.零部件编码, item.零部件名称, item.规格,
                    item.零件标识码, item.数量, item.供应商, item.批次号, item.工位, item.检测数据, item.实际数据,
                    item.装配人员, item.装配模式, item.装配时间, item.备注
                });

                dataGridViewOld.Rows[index++].Tag = item;
            }

            index = 0;

            foreach (var item in newEFInfo)
            {
                dataGridViewNew.Rows.Add(new object[] {
                    item.序号, item.父总成名称, item.父总成编码, item.零部件编码, item.零部件名称, item.规格,
                    item.零件标识码, item.数量, item.供应商, item.批次号, item.工位, item.检测数据, item.实际数据,
                    item.装配人员, item.装配模式, item.装配时间, item.备注
                });

                dataGridViewNew.Rows[index++].Tag = item;
            }

            for (int i = 0; i < dataGridViewOld.Rows.Count; i++)
            {
                View_P_ElectronFile oldItem = dataGridViewOld.Rows[i].Tag as View_P_ElectronFile;
                View_P_ElectronFile newItem = null;

                if (i < dataGridViewNew.Rows.Count)
                {
                    newItem = dataGridViewNew.Rows[i].Tag as View_P_ElectronFile;
                }

                if (oldItem == null || newItem == null)
                {
                    continue;
                }

                if (oldItem.父总成名称 != newItem.父总成名称 || oldItem.零部件编码 != newItem.零部件编码 || oldItem.规格 != newItem.规格)
                {
                    if (oldItem.父总成名称 == "")
                    {
                        continue;
                    }

                    int rowAmount = InsertRow(i);

                    for (int j = 0; j < rowAmount; j++)
                    {
                        // change color
                        dataGridViewOld.Rows[i + j].DefaultCellStyle.BackColor = Color.Red;
                        dataGridViewNew.Rows[i + j].DefaultCellStyle.BackColor = Color.Red;
                    }

                    i = i + rowAmount;
                }
            }

            //DataGridViewRow row = new DataGridViewRow();

            //row.CreateCells(dataGridViewNew);

            //row.Cells[0].Value = 1;
            //row.Cells[1].Value = "RDC15-RB 110400131";

            //dataGridViewNew.Rows.Add(row);
        }