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