Exemple #1
0
 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);
     }
 }
Exemple #2
0
        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);
        }