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); } }
public override bool FillPage() { List <IntPtr> containerList; this.ReadData(); Hashtable controlGroup = new Hashtable(); IntPtr ok = IntPtr.Zero, rowNumber = IntPtr.Zero, cancel = IntPtr.Zero; foreach (DictionaryEntry entry in data) { ApiSetter.ClickButton(base.Add, base.HWnd, null, null); // 初始化填报控件的对应关系 if (ok == IntPtr.Zero || cancel == IntPtr.Zero || rowNumber == IntPtr.Zero || controlGroup.Count == 0) { controlGroup.Clear(); ok = GetFillControlList(out containerList, out cancel); rowNumber = IntPtr.Zero; if (containerList == null) { return(false); } containerList = ControlSorter.SortChild(containerList[0]); List <IntPtr> sorted = ControlSorter.SortChild(containerList, 0, 1); rowNumber = sorted[1]; sorted = ControlSorter.SortChild(containerList, 1, 1); List <Page9_13_3_Relation> relations = new List <Page9_13_3_Relation>(4); for (int i = 0; i < sorted.Count - 1; i += 2) { Page9_13_3_Relation relation = new Page9_13_3_Relation(); relation.SetSeatPosition(sorted[i], sorted[i + 1]); relations.Add(relation); if (relation.SeatPosDesc != null) { controlGroup.Add(relation.SeatPosDesc, relation); } } int startIndex = 2; int count = 3; while (count > 0 && startIndex + 3 <= containerList.Count) { sorted = ControlSorter.SortChild(containerList, startIndex, 3); // 生成9.13.3的控件对应关系。 if (sorted.Count != 11) { continue; } Page9_13_3_Relation relation = relations[3 - count]; relation.UpperFixedPoint = sorted[4]; relation.CarStructOuterSide_DFP = sorted[5]; relation.SeatStructOuterSide_DFP = sorted[6]; relation.CarStructInnerSide_DFP = sorted[7]; relation.SeatStructInnerSide_DFP = sorted[8]; relation.CarStruct_UFP = sorted[9]; relation.SeatStruct_UFP = sorted[10]; count--; startIndex += 3; } } List <Page9_13_3Value> values = entry.Value as List <Page9_13_3Value>; if (values == null || values.Count == 0) { continue; } foreach (var item in values) // 根据数据填写各座椅位置数据,并将已填写的座椅位置移除, { if (item.SeatPosition == null) { continue; } Page9_13_3_Relation relation = controlGroup[item.SeatPosition] as Page9_13_3_Relation; if (relation != null) { FillValue(entry.Key as string, rowNumber, relation, item); relation.IsUsed = true; } } foreach (DictionaryEntry c in controlGroup) { Page9_13_3_Relation relation = c.Value as Page9_13_3_Relation; if (relation != null && relation.IsUsed == false) { ApiSetter.ClickButton(relation.SeatPosition, base.HWnd, null, null);// 最后剩余的未填写项设置为不适用 } } ApiSetter.ClickButton(ok, base.HWnd, null, null); // 还原CheckBox状态 ApiSetter.ClickButton(base.Add, base.HWnd, null, null); foreach (DictionaryEntry c in controlGroup) { Page9_13_3_Relation relation = c.Value as Page9_13_3_Relation; if (relation != null && relation.IsUsed == false) { ApiSetter.ClickButton(relation.SeatPosition, base.HWnd, null, null); } relation.IsUsed = false; } ApiSetter.ClickButton(cancel, base.HWnd, null, null); } this.Main.ClickSaveButton(base.Save); return(true); }