private void AddValue(string key, Page9_13_3Value value) { List <Page9_13_3Value> values = null; if (data.ContainsKey(key)) { values = data[key] as List <Page9_13_3Value>; if (values == null) { values = new List <Page9_13_3Value>(); data[key] = values; } } else { values = new List <Page9_13_3Value>(); data.Add(key, values); } values.Add(value); }
private void ReadData() { Hashtable columnHeader = new Hashtable(); Office.Excel.ForwardReadWorksheet sheet = base.Sheet; object content; if (sheet.ReadNextRow()) { while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); columnHeader.Add(sheet.CurrentCell.ColumnIndex, content == null ? "" : content.ToString()); } } Page9_13_3Value value = null; string lastKey = "", fixedPoint, fixedPointPos; while (sheet.ReadNextRow()) { if (value == null) { value = new Page9_13_3Value(); } string key = ""; fixedPointPos = ""; fixedPoint = ""; while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); string str = content == null ? "" : content.ToString(); //第几排座椅 座椅位置 固定点 固定点位置 车辆结构(例如:车身地板) 座椅结构(例如:座椅骨架) switch (columnHeader[sheet.CurrentCell.ColumnIndex] as string) { case "座椅位置": if (string.IsNullOrEmpty(value.SeatPosition)) { value.SeatPosition = str; } else if (value.SeatPosition != str) // 座椅位置更改时保存当前读取的填报数据。 { AddValue(lastKey, value); value = new Page9_13_3Value(); value.SeatPosition = str; } break; case "固定点": fixedPoint = str; break; case "固定点位置": fixedPointPos = str; break; case "车辆结构(例如:车身地板)": switch (fixedPoint) { case "上": value.CarStruct_UFP = str; break; case "下": switch (fixedPointPos) { case "外侧": value.CarStructOuterSide_DFP = str; break; case "内侧": value.CarStructInnerSide_DFP = str; break; } break; } break; case "座椅结构(例如:座椅骨架)": switch (fixedPoint) { case "上": value.SeatStruct_UFP = str; break; case "下": switch (fixedPointPos) { case "外侧": value.SeatStructOuterSide_DFP = str; break; case "内侧": value.SeatStructInnerSide_DFP = str; break; } break; } break; case "第几排座椅": if (string.IsNullOrEmpty(lastKey))// 新增座椅时保存当前读取的填报数据。 { key = str; lastKey = key; } else if (lastKey != str) { AddValue(lastKey, value); value = new Page9_13_3Value(); key = str; lastKey = key; } break; } } if (key == null) { continue; } } }
private void FillValue(string key, IntPtr rowNumber, Page9_13_3_Relation relation, Page9_13_3Value value) { if (ApiSetter.SetComboBoxSelected(base.HWnd, rowNumber, key) == false) { return; } ApiSetter.SetText(relation.CarStructOuterSide_DFP, value.CarStructOuterSide_DFP); ApiSetter.SetText(relation.SeatStructOuterSide_DFP, value.SeatStructOuterSide_DFP); ApiSetter.SetText(relation.CarStructInnerSide_DFP, value.CarStructInnerSide_DFP); ApiSetter.SetText(relation.SeatStructInnerSide_DFP, value.SeatStructInnerSide_DFP); if (string.IsNullOrEmpty(value.CarStruct_UFP) && string.IsNullOrEmpty(value.SeatStruct_UFP)) { ApiSetter.ClickButton(relation.UpperFixedPoint, base.HWnd, null, null); // 上固定点不适用 } else { long style = NativeApi.GetWindowLong(relation.CarStruct_UFP, -16); if ((style & WindowStyles.WS_DISABLED) == WindowStyles.WS_DISABLED) { ApiSetter.ClickButton(relation.UpperFixedPoint, base.HWnd, null, null); } ApiSetter.SetText(relation.CarStruct_UFP, value.CarStruct_UFP); ApiSetter.SetText(relation.SeatStruct_UFP, value.SeatStruct_UFP); } }