From 79c8977a39744e046a121e7ef491532b9451babb Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 11 十月 2024 16:44:40 +0800
Subject: [PATCH] 新增水力模拟构件查询功能

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.XhsProjectSimulationSearchViewModel.datasource |   10 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx                           |   26 +++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.cs                 |   31 +++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchViewModel.cs            |    6 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.Designer.cs        |  154 ++++++++++++++++--
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs                             |   59 +++++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs                    |  143 ++++++++++-------
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.resx               |    3 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropStatusViewModel.cs                                       |   20 ++
 9 files changed, 371 insertions(+), 81 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.Designer.cs
index 97ec093..984d8f4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.Designer.cs
@@ -28,20 +28,31 @@
         /// </summary>
         private void InitializeComponent()
         {
+            components = new Container();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            searchControl1 = new SearchControl();
             gridControl1 = new DevExpress.XtraGrid.GridControl();
+            xhsProjectSimulationSearchViewModelBindingSource = new BindingSource(components);
             gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colCatalog = new DevExpress.XtraGrid.Columns.GridColumn();
+            colCode = new DevExpress.XtraGrid.Columns.GridColumn();
+            colName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colModelType = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFlagsString = new DevExpress.XtraGrid.Columns.GridColumn();
+            colHasDbId = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDbLocked = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            searchControl1 = new SearchControl();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            ((ISupportInitialize)searchControl1.Properties).BeginInit();
             ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)xhsProjectSimulationSearchViewModelBindingSource).BeginInit();
             ((ISupportInitialize)gridView1).BeginInit();
             ((ISupportInitialize)Root).BeginInit();
             ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)searchControl1.Properties).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             SuspendLayout();
             // 
@@ -53,23 +64,118 @@
             layoutControl1.Location = new Point(0, 0);
             layoutControl1.Name = "layoutControl1";
             layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(661, 483);
+            layoutControl1.Size = new Size(840, 398);
             layoutControl1.TabIndex = 0;
             layoutControl1.Text = "layoutControl1";
             // 
+            // searchControl1
+            // 
+            searchControl1.Location = new Point(2, 2);
+            searchControl1.Name = "searchControl1";
+            searchControl1.Properties.Buttons.AddRange(new EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton() });
+            searchControl1.Size = new Size(836, 20);
+            searchControl1.StyleController = layoutControl1;
+            searchControl1.TabIndex = 5;
+            // 
             // gridControl1
             // 
-            gridControl1.Location = new Point(12, 36);
+            gridControl1.DataSource = xhsProjectSimulationSearchViewModelBindingSource;
+            gridControl1.Location = new Point(2, 23);
             gridControl1.MainView = gridView1;
             gridControl1.Name = "gridControl1";
-            gridControl1.Size = new Size(637, 435);
+            gridControl1.Size = new Size(836, 373);
             gridControl1.TabIndex = 4;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
+            // xhsProjectSimulationSearchViewModelBindingSource
+            // 
+            xhsProjectSimulationSearchViewModelBindingSource.DataSource = typeof(XhsProjectSimulationSearchViewModel);
+            // 
             // gridView1
             // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colCatalog, colCode, colName, colModelType, colFlagsString, colHasDbId, colDbLocked, colDescription });
             gridView1.GridControl = gridControl1;
             gridView1.Name = "gridView1";
+            gridView1.RowClick += gridView1_RowClick;
+            // 
+            // colCatalog
+            // 
+            colCatalog.FieldName = "Catalog";
+            colCatalog.MaxWidth = 100;
+            colCatalog.MinWidth = 100;
+            colCatalog.Name = "colCatalog";
+            colCatalog.Visible = true;
+            colCatalog.VisibleIndex = 0;
+            colCatalog.Width = 100;
+            // 
+            // colCode
+            // 
+            colCode.FieldName = "Code";
+            colCode.MaxWidth = 150;
+            colCode.MinWidth = 100;
+            colCode.Name = "colCode";
+            colCode.Visible = true;
+            colCode.VisibleIndex = 1;
+            colCode.Width = 100;
+            // 
+            // colName
+            // 
+            colName.FieldName = "Name";
+            colName.MaxWidth = 150;
+            colName.MinWidth = 100;
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 2;
+            colName.Width = 100;
+            // 
+            // colModelType
+            // 
+            colModelType.FieldName = "ModelType";
+            colModelType.MaxWidth = 250;
+            colModelType.MinWidth = 100;
+            colModelType.Name = "colModelType";
+            colModelType.Visible = true;
+            colModelType.VisibleIndex = 3;
+            colModelType.Width = 100;
+            // 
+            // colFlagsString
+            // 
+            colFlagsString.FieldName = "FlagsString";
+            colFlagsString.MaxWidth = 150;
+            colFlagsString.MinWidth = 100;
+            colFlagsString.Name = "colFlagsString";
+            colFlagsString.Visible = true;
+            colFlagsString.VisibleIndex = 4;
+            colFlagsString.Width = 100;
+            // 
+            // colHasDbId
+            // 
+            colHasDbId.FieldName = "HasDbId";
+            colHasDbId.MaxWidth = 60;
+            colHasDbId.MinWidth = 60;
+            colHasDbId.Name = "colHasDbId";
+            colHasDbId.Visible = true;
+            colHasDbId.VisibleIndex = 5;
+            colHasDbId.Width = 60;
+            // 
+            // colDbLocked
+            // 
+            colDbLocked.FieldName = "DbLocked";
+            colDbLocked.MaxWidth = 60;
+            colDbLocked.MinWidth = 60;
+            colDbLocked.Name = "colDbLocked";
+            colDbLocked.Visible = true;
+            colDbLocked.VisibleIndex = 6;
+            colDbLocked.Width = 60;
+            // 
+            // colDescription
+            // 
+            colDescription.FieldName = "Description";
+            colDescription.MinWidth = 100;
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 7;
+            colDescription.Width = 100;
             // 
             // Root
             // 
@@ -77,34 +183,30 @@
             Root.GroupBordersVisible = false;
             Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2 });
             Root.Name = "Root";
-            Root.Size = new Size(661, 483);
+            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            Root.Size = new Size(840, 398);
             Root.TextVisible = false;
             // 
             // layoutControlItem1
             // 
             layoutControlItem1.Control = gridControl1;
-            layoutControlItem1.Location = new Point(0, 24);
+            layoutControlItem1.Location = new Point(0, 22);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(641, 439);
+            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 1, 2);
+            layoutControlItem1.Size = new Size(840, 376);
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
-            // 
-            // searchControl1
-            // 
-            searchControl1.Location = new Point(129, 12);
-            searchControl1.Name = "searchControl1";
-            searchControl1.Properties.Buttons.AddRange(new EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton() });
-            searchControl1.Size = new Size(520, 20);
-            searchControl1.StyleController = layoutControl1;
-            searchControl1.TabIndex = 5;
             // 
             // layoutControlItem2
             // 
             layoutControlItem2.Control = searchControl1;
             layoutControlItem2.Location = new Point(0, 0);
             layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(641, 24);
-            layoutControlItem2.TextSize = new Size(105, 14);
+            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 0);
+            layoutControlItem2.Size = new Size(840, 22);
+            layoutControlItem2.Text = "鏌ヨ:";
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
             // 
             // XhsProjectSimulationSearchCtrl
             // 
@@ -112,14 +214,15 @@
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(layoutControl1);
             Name = "XhsProjectSimulationSearchCtrl";
-            Size = new Size(661, 483);
+            Size = new Size(840, 398);
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)searchControl1.Properties).EndInit();
             ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)xhsProjectSimulationSearchViewModelBindingSource).EndInit();
             ((ISupportInitialize)gridView1).EndInit();
             ((ISupportInitialize)Root).EndInit();
             ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)searchControl1.Properties).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ResumeLayout(false);
         }
@@ -133,5 +236,14 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private SearchControl searchControl1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private BindingSource xhsProjectSimulationSearchViewModelBindingSource;
+        private DevExpress.XtraGrid.Columns.GridColumn colCatalog;
+        private DevExpress.XtraGrid.Columns.GridColumn colName;
+        private DevExpress.XtraGrid.Columns.GridColumn colCode;
+        private DevExpress.XtraGrid.Columns.GridColumn colModelType;
+        private DevExpress.XtraGrid.Columns.GridColumn colHasDbId;
+        private DevExpress.XtraGrid.Columns.GridColumn colDbLocked;
+        private DevExpress.XtraGrid.Columns.GridColumn colFlagsString;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.cs
index 0e306a4..5b90178 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.cs
@@ -5,6 +5,7 @@
         public XhsProjectSimulationSearchCtrl()
         {
             InitializeComponent();
+            this.gridView1.SetNormalView();
             this.searchControl1.SetSearchSettings(Search, Recover);
         }
 
@@ -15,6 +16,7 @@
 
         //姘村姏淇℃伅鏂规硶
         private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc;
+        private List<XhsProjectSimulationSearchViewModel> _allBindingList = null;
 
         /// <summary>
         /// 鍒濆鍖栨暟鎹�
@@ -37,7 +39,24 @@
             {
                 return;
             }
-            //var allParterList =
+            var allParterList = hydroInfo.GetAllParters();
+            var parters = allParterList?.Where(x => (!string.IsNullOrEmpty(x.Code) && x.Code.Contains(condition))
+                || (!string.IsNullOrEmpty(x.Name) && x.Name.Contains(condition))
+                || (!string.IsNullOrEmpty(x.Catalog) && x.Catalog.Contains(condition))
+                || (!string.IsNullOrEmpty(x.Description) && x.Description.Contains(condition))
+                ).ToList();
+            _allBindingList = new List<XhsProjectSimulationSearchViewModel>();
+            if (parters != null && parters.Count > 0)
+            {
+                foreach (var parter in parters)
+                {
+                    var vm = new XhsProjectSimulationSearchViewModel(parter);
+                    _allBindingList.Add(vm);
+                }
+            }
+            this.xhsProjectSimulationSearchViewModelBindingSource.DataSource = _allBindingList;
+            this.xhsProjectSimulationSearchViewModelBindingSource.ResetBindings(false);
+            this.ApplySearchEvent?.Invoke(parters);
         }
 
         //瑕嗙洊
@@ -51,6 +70,16 @@
             this.ApplySearchEvent?.Invoke(null);
         }
 
+        //琛岀偣鍑讳簨浠�
+        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
+        {
+            var row = this.gridView1.GetRow(e.RowHandle) as XhsProjectSimulationSearchViewModel;
+            if (row == null)
+            {
+                return;
+            }
+            this.ApplySearchEvent?.Invoke(new List<Yw.Model.HydroParterInfo>() { row.Vmo });
+        }
 
 
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.resx
index af32865..65b319c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchCtrl.resx
@@ -117,4 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="xhsProjectSimulationSearchViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchViewModel.cs
index 1bed1be..c82e13a 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/05-search/XhsProjectSimulationSearchViewModel.cs
@@ -24,6 +24,7 @@
             this.DbLocked = rhs.DbLocked;
             this.FlagsString = Yw.Untity.FlagsHelper.ToString(rhs.Flags);
             this.Description = rhs.Description;
+            this.Vmo = rhs;
         }
 
         /// <summary>
@@ -81,6 +82,11 @@
         [Display(Name = "璇存槑")]
         public string Description { get; set; }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        public Yw.Model.HydroParterInfo Vmo { get; set; }
+
 
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
index 7e886fb..73809c1 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -60,8 +60,6 @@
             xhsProjectSimulationBimfaceCtrl1 = new XhsProjectSimulationBimfaceCtrl();
             pageQ3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
             xhsProjectSimulationQ3dCtrl1 = new XhsProjectSimulationQ3dCtrl();
-            tabPageL3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
-            xhsProjectSimulationL3dCtrl1 = new XhsProjectSimulationL3dCtrl();
             dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
             docPnlProperty = new DevExpress.XtraBars.Docking.DockPanel();
             dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
@@ -81,14 +79,17 @@
             docPnlMatchingList = new DevExpress.XtraBars.Docking.DockPanel();
             controlContainer5 = new DevExpress.XtraBars.Docking.ControlContainer();
             xhsProjectSimulationMatchingListCtrl1 = new Xhs.XhsProjectSimulationMatchingListCtrl();
+            docPnlSearch = new DevExpress.XtraBars.Docking.DockPanel();
+            controlContainer6 = new DevExpress.XtraBars.Docking.ControlContainer();
+            xhsProjectSimulationSearchCtrl1 = new XhsProjectSimulationSearchCtrl();
             svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
             rmSet = new DevExpress.XtraBars.Ribbon.RadialMenu(components);
+            barBtnSearch = new DevExpress.XtraBars.BarButtonItem();
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)tabPane1).BeginInit();
             tabPane1.SuspendLayout();
             pageBimface.SuspendLayout();
             pageQ3d.SuspendLayout();
-            tabPageL3d.SuspendLayout();
             ((ISupportInitialize)dockManager1).BeginInit();
             docPnlProperty.SuspendLayout();
             dockPanel1_Container.SuspendLayout();
@@ -102,6 +103,8 @@
             controlContainer4.SuspendLayout();
             docPnlMatchingList.SuspendLayout();
             controlContainer5.SuspendLayout();
+            docPnlSearch.SuspendLayout();
+            controlContainer6.SuspendLayout();
             ((ISupportInitialize)svgImg32).BeginInit();
             ((ISupportInitialize)rmSet).BeginInit();
             SuspendLayout();
@@ -111,16 +114,16 @@
             ribbonControl1.DrawGroupCaptions = DevExpress.Utils.DefaultBoolean.False;
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnMatchingList, barBtnUnMatchingList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnFeatCurve });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnMatchingList, barBtnUnMatchingList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnFeatCurve, barBtnSearch });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 32;
+            ribbonControl1.MaxItemId = 33;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
             ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
             ribbonControl1.ShowQatLocationSelector = false;
             ribbonControl1.ShowToolbarCustomizeItem = false;
-            ribbonControl1.Size = new Size(1161, 110);
+            ribbonControl1.Size = new Size(1166, 110);
             ribbonControl1.Toolbar.ShowCustomizeItem = false;
             ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
             // 
@@ -295,6 +298,7 @@
             // 
             ribbonPageGroup3.ItemLinks.Add(barBtnFeatCurve);
             ribbonPageGroup3.ItemLinks.Add(barBtnSave);
+            ribbonPageGroup3.ItemLinks.Add(barBtnSearch);
             ribbonPageGroup3.Name = "ribbonPageGroup3";
             ribbonPageGroup3.Text = "鏇村...";
             // 
@@ -307,14 +311,13 @@
             // 
             tabPane1.Controls.Add(pageBimface);
             tabPane1.Controls.Add(pageQ3d);
-            tabPane1.Controls.Add(tabPageL3d);
             tabPane1.Dock = DockStyle.Fill;
             tabPane1.Location = new Point(0, 110);
             tabPane1.Name = "tabPane1";
-            tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { pageBimface, pageQ3d, tabPageL3d });
-            tabPane1.RegularSize = new Size(886, 200);
+            tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { pageBimface, pageQ3d });
+            tabPane1.RegularSize = new Size(891, 183);
             tabPane1.SelectedPage = pageBimface;
-            tabPane1.Size = new Size(886, 200);
+            tabPane1.Size = new Size(891, 183);
             tabPane1.TabIndex = 1;
             tabPane1.Text = "tabPane1";
             // 
@@ -323,14 +326,14 @@
             pageBimface.Caption = "涓夌淮妯″瀷";
             pageBimface.Controls.Add(xhsProjectSimulationBimfaceCtrl1);
             pageBimface.Name = "pageBimface";
-            pageBimface.Size = new Size(886, 167);
+            pageBimface.Size = new Size(891, 150);
             // 
             // xhsProjectSimulationBimfaceCtrl1
             // 
             xhsProjectSimulationBimfaceCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationBimfaceCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationBimfaceCtrl1.Name = "xhsProjectSimulationBimfaceCtrl1";
-            xhsProjectSimulationBimfaceCtrl1.Size = new Size(886, 167);
+            xhsProjectSimulationBimfaceCtrl1.Size = new Size(891, 150);
             xhsProjectSimulationBimfaceCtrl1.TabIndex = 0;
             xhsProjectSimulationBimfaceCtrl1.HydroClickEvent += xhsProjectSimulationBimfaceCtrl1_HydroClickEvent;
             xhsProjectSimulationBimfaceCtrl1.LoadCompletedEvent += xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent;
@@ -340,35 +343,20 @@
             pageQ3d.Caption = "姘村姏妯″瀷";
             pageQ3d.Controls.Add(xhsProjectSimulationQ3dCtrl1);
             pageQ3d.Name = "pageQ3d";
-            pageQ3d.Size = new Size(886, 185);
+            pageQ3d.Size = new Size(886, 167);
             // 
             // xhsProjectSimulationQ3dCtrl1
             // 
             xhsProjectSimulationQ3dCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationQ3dCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationQ3dCtrl1.Name = "xhsProjectSimulationQ3dCtrl1";
-            xhsProjectSimulationQ3dCtrl1.Size = new Size(886, 185);
+            xhsProjectSimulationQ3dCtrl1.Size = new Size(886, 167);
             xhsProjectSimulationQ3dCtrl1.TabIndex = 0;
-            // 
-            // tabPageL3d
-            // 
-            tabPageL3d.Caption = "L3d";
-            tabPageL3d.Controls.Add(xhsProjectSimulationL3dCtrl1);
-            tabPageL3d.Name = "tabPageL3d";
-            tabPageL3d.Size = new Size(886, 185);
-            // 
-            // xhsProjectSimulationL3dCtrl1
-            // 
-            xhsProjectSimulationL3dCtrl1.Dock = DockStyle.Fill;
-            xhsProjectSimulationL3dCtrl1.Location = new Point(0, 0);
-            xhsProjectSimulationL3dCtrl1.Name = "xhsProjectSimulationL3dCtrl1";
-            xhsProjectSimulationL3dCtrl1.Size = new Size(886, 185);
-            xhsProjectSimulationL3dCtrl1.TabIndex = 0;
             // 
             // dockManager1
             // 
             dockManager1.Form = this;
-            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { docPnlProperty, docPnlHydroParterList, docPnlHydroCalcu, docPnlHydroCheck, docPnlUnMatchingList, docPnlMatchingList });
+            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { docPnlProperty, docPnlHydroParterList, docPnlHydroCalcu, docPnlHydroCheck, docPnlUnMatchingList, docPnlMatchingList, docPnlSearch });
             dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
             // 
             // docPnlProperty
@@ -376,10 +364,10 @@
             docPnlProperty.Controls.Add(dockPanel1_Container);
             docPnlProperty.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right;
             docPnlProperty.ID = new Guid("cffe2560-3445-4488-83cf-b9e4b936ff18");
-            docPnlProperty.Location = new Point(886, 110);
+            docPnlProperty.Location = new Point(891, 110);
             docPnlProperty.Name = "docPnlProperty";
             docPnlProperty.OriginalSize = new Size(275, 200);
-            docPnlProperty.Size = new Size(275, 629);
+            docPnlProperty.Size = new Size(275, 718);
             docPnlProperty.Text = "灞炴��";
             // 
             // dockPanel1_Container
@@ -387,7 +375,7 @@
             dockPanel1_Container.Controls.Add(xhsProjectSimulationPropertyCtrl1);
             dockPanel1_Container.Location = new Point(4, 26);
             dockPanel1_Container.Name = "dockPanel1_Container";
-            dockPanel1_Container.Size = new Size(268, 600);
+            dockPanel1_Container.Size = new Size(268, 689);
             dockPanel1_Container.TabIndex = 0;
             // 
             // xhsProjectSimulationPropertyCtrl1
@@ -395,7 +383,7 @@
             xhsProjectSimulationPropertyCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationPropertyCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationPropertyCtrl1.Name = "xhsProjectSimulationPropertyCtrl1";
-            xhsProjectSimulationPropertyCtrl1.Size = new Size(268, 600);
+            xhsProjectSimulationPropertyCtrl1.Size = new Size(268, 689);
             xhsProjectSimulationPropertyCtrl1.TabIndex = 0;
             // 
             // docPnlHydroParterList
@@ -404,10 +392,10 @@
             docPnlHydroParterList.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlHydroParterList.FloatVertical = true;
             docPnlHydroParterList.ID = new Guid("facc1bde-3cf7-455c-b59c-8377daa6b90e");
-            docPnlHydroParterList.Location = new Point(0, 660);
+            docPnlHydroParterList.Location = new Point(0, 749);
             docPnlHydroParterList.Name = "docPnlHydroParterList";
             docPnlHydroParterList.OriginalSize = new Size(200, 79);
-            docPnlHydroParterList.Size = new Size(886, 79);
+            docPnlHydroParterList.Size = new Size(891, 79);
             docPnlHydroParterList.Text = "鏋勪欢鏄庣粏";
             // 
             // controlContainer3
@@ -415,7 +403,7 @@
             controlContainer3.Controls.Add(hydroParterListCtrl1);
             controlContainer3.Location = new Point(3, 27);
             controlContainer3.Name = "controlContainer3";
-            controlContainer3.Size = new Size(880, 49);
+            controlContainer3.Size = new Size(885, 49);
             controlContainer3.TabIndex = 0;
             // 
             // hydroParterListCtrl1
@@ -424,7 +412,7 @@
             hydroParterListCtrl1.HidePageWhenListIsNull = true;
             hydroParterListCtrl1.Location = new Point(0, 0);
             hydroParterListCtrl1.Name = "hydroParterListCtrl1";
-            hydroParterListCtrl1.Size = new Size(880, 49);
+            hydroParterListCtrl1.Size = new Size(885, 49);
             hydroParterListCtrl1.TabIndex = 0;
             hydroParterListCtrl1.HydroClickEvent += hydroParterListCtrl1_HydroClickEvent;
             // 
@@ -434,10 +422,10 @@
             docPnlHydroCalcu.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlHydroCalcu.FloatVertical = true;
             docPnlHydroCalcu.ID = new Guid("ac7055c0-e9fe-40c2-bf51-83dde5710cd4");
-            docPnlHydroCalcu.Location = new Point(0, 576);
+            docPnlHydroCalcu.Location = new Point(0, 665);
             docPnlHydroCalcu.Name = "docPnlHydroCalcu";
             docPnlHydroCalcu.OriginalSize = new Size(200, 84);
-            docPnlHydroCalcu.Size = new Size(886, 84);
+            docPnlHydroCalcu.Size = new Size(891, 84);
             docPnlHydroCalcu.Text = "姘村姏璁$畻";
             // 
             // controlContainer2
@@ -445,7 +433,7 @@
             controlContainer2.Controls.Add(xhsProjectSimulationHydroCalcuFailedCtrl1);
             controlContainer2.Location = new Point(3, 27);
             controlContainer2.Name = "controlContainer2";
-            controlContainer2.Size = new Size(880, 54);
+            controlContainer2.Size = new Size(885, 54);
             controlContainer2.TabIndex = 0;
             // 
             // xhsProjectSimulationHydroCalcuFailedCtrl1
@@ -453,7 +441,7 @@
             xhsProjectSimulationHydroCalcuFailedCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationHydroCalcuFailedCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationHydroCalcuFailedCtrl1.Name = "xhsProjectSimulationHydroCalcuFailedCtrl1";
-            xhsProjectSimulationHydroCalcuFailedCtrl1.Size = new Size(880, 54);
+            xhsProjectSimulationHydroCalcuFailedCtrl1.Size = new Size(885, 54);
             xhsProjectSimulationHydroCalcuFailedCtrl1.TabIndex = 0;
             // 
             // docPnlHydroCheck
@@ -462,12 +450,12 @@
             docPnlHydroCheck.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlHydroCheck.FloatVertical = true;
             docPnlHydroCheck.ID = new Guid("dee18895-8b3d-44cd-9001-28bee516095d");
-            docPnlHydroCheck.Location = new Point(0, 488);
+            docPnlHydroCheck.Location = new Point(0, 577);
             docPnlHydroCheck.Name = "docPnlHydroCheck";
             docPnlHydroCheck.OriginalSize = new Size(200, 88);
             docPnlHydroCheck.SavedDock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlHydroCheck.SavedIndex = 1;
-            docPnlHydroCheck.Size = new Size(886, 88);
+            docPnlHydroCheck.Size = new Size(891, 88);
             docPnlHydroCheck.Text = "姘村姏鏍¢獙";
             // 
             // controlContainer1
@@ -475,7 +463,7 @@
             controlContainer1.Controls.Add(xhsProjectSimulationHydroCheckResultCtrl1);
             controlContainer1.Location = new Point(3, 27);
             controlContainer1.Name = "controlContainer1";
-            controlContainer1.Size = new Size(880, 58);
+            controlContainer1.Size = new Size(885, 58);
             controlContainer1.TabIndex = 0;
             // 
             // xhsProjectSimulationHydroCheckResultCtrl1
@@ -483,7 +471,7 @@
             xhsProjectSimulationHydroCheckResultCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationHydroCheckResultCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationHydroCheckResultCtrl1.Name = "xhsProjectSimulationHydroCheckResultCtrl1";
-            xhsProjectSimulationHydroCheckResultCtrl1.Size = new Size(880, 58);
+            xhsProjectSimulationHydroCheckResultCtrl1.Size = new Size(885, 58);
             xhsProjectSimulationHydroCheckResultCtrl1.TabIndex = 0;
             xhsProjectSimulationHydroCheckResultCtrl1.HydroClickEvent += xhsProjectSimulationHydroCheckResultCtrl1_HydroClickEvent;
             // 
@@ -493,10 +481,10 @@
             docPnlUnMatchingList.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlUnMatchingList.FloatVertical = true;
             docPnlUnMatchingList.ID = new Guid("fdc5c4e2-7bd3-4114-90a6-3cd0ed365103");
-            docPnlUnMatchingList.Location = new Point(0, 405);
+            docPnlUnMatchingList.Location = new Point(0, 494);
             docPnlUnMatchingList.Name = "docPnlUnMatchingList";
             docPnlUnMatchingList.OriginalSize = new Size(200, 83);
-            docPnlUnMatchingList.Size = new Size(886, 83);
+            docPnlUnMatchingList.Size = new Size(891, 83);
             docPnlUnMatchingList.Text = "鏈尮閰嶅垪琛�";
             // 
             // controlContainer4
@@ -504,7 +492,7 @@
             controlContainer4.Controls.Add(xhsProjectSimulationUnMatchingListCtrl1);
             controlContainer4.Location = new Point(3, 27);
             controlContainer4.Name = "controlContainer4";
-            controlContainer4.Size = new Size(880, 53);
+            controlContainer4.Size = new Size(885, 53);
             controlContainer4.TabIndex = 0;
             // 
             // xhsProjectSimulationUnMatchingListCtrl1
@@ -513,7 +501,7 @@
             xhsProjectSimulationUnMatchingListCtrl1.HidePageWhenListIsNull = true;
             xhsProjectSimulationUnMatchingListCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationUnMatchingListCtrl1.Name = "xhsProjectSimulationUnMatchingListCtrl1";
-            xhsProjectSimulationUnMatchingListCtrl1.Size = new Size(880, 53);
+            xhsProjectSimulationUnMatchingListCtrl1.Size = new Size(885, 53);
             xhsProjectSimulationUnMatchingListCtrl1.TabIndex = 0;
             xhsProjectSimulationUnMatchingListCtrl1.HydroClickEvent += xhsProjectSimulationUnMatchingListCtrl1_HydroClickEvent;
             xhsProjectSimulationUnMatchingListCtrl1.ViewModelEvent += xhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent;
@@ -524,10 +512,10 @@
             docPnlMatchingList.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
             docPnlMatchingList.FloatVertical = true;
             docPnlMatchingList.ID = new Guid("19fbbff8-5202-46bc-b9f4-472249e3c49a");
-            docPnlMatchingList.Location = new Point(0, 310);
+            docPnlMatchingList.Location = new Point(0, 399);
             docPnlMatchingList.Name = "docPnlMatchingList";
             docPnlMatchingList.OriginalSize = new Size(200, 95);
-            docPnlMatchingList.Size = new Size(886, 95);
+            docPnlMatchingList.Size = new Size(891, 95);
             docPnlMatchingList.Text = "鍖归厤鍒楄〃";
             // 
             // controlContainer5
@@ -535,7 +523,7 @@
             controlContainer5.Controls.Add(xhsProjectSimulationMatchingListCtrl1);
             controlContainer5.Location = new Point(3, 27);
             controlContainer5.Name = "controlContainer5";
-            controlContainer5.Size = new Size(880, 65);
+            controlContainer5.Size = new Size(885, 65);
             controlContainer5.TabIndex = 0;
             // 
             // xhsProjectSimulationMatchingListCtrl1
@@ -543,10 +531,37 @@
             xhsProjectSimulationMatchingListCtrl1.Dock = DockStyle.Fill;
             xhsProjectSimulationMatchingListCtrl1.Location = new Point(0, 0);
             xhsProjectSimulationMatchingListCtrl1.Name = "xhsProjectSimulationMatchingListCtrl1";
-            xhsProjectSimulationMatchingListCtrl1.Size = new Size(880, 65);
+            xhsProjectSimulationMatchingListCtrl1.Size = new Size(885, 65);
             xhsProjectSimulationMatchingListCtrl1.TabIndex = 0;
             xhsProjectSimulationMatchingListCtrl1.HydroClickEvent += xhsProjectSimulationMatchingListCtrl1_HydroClickEvent;
             xhsProjectSimulationMatchingListCtrl1.ApplyMatchingEvent += xhsProjectSimulationMatchingListCtrl1_ApplyMatchingEvent;
+            // 
+            // docPnlSearch
+            // 
+            docPnlSearch.Controls.Add(controlContainer6);
+            docPnlSearch.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom;
+            docPnlSearch.ID = new Guid("35c854bb-37b4-4601-8ca5-60dee4323ca2");
+            docPnlSearch.Location = new Point(0, 293);
+            docPnlSearch.Name = "docPnlSearch";
+            docPnlSearch.OriginalSize = new Size(200, 106);
+            docPnlSearch.Size = new Size(891, 106);
+            docPnlSearch.Text = "鏌ヨ";
+            // 
+            // controlContainer6
+            // 
+            controlContainer6.Controls.Add(xhsProjectSimulationSearchCtrl1);
+            controlContainer6.Location = new Point(3, 27);
+            controlContainer6.Name = "controlContainer6";
+            controlContainer6.Size = new Size(885, 76);
+            controlContainer6.TabIndex = 0;
+            // 
+            // xhsProjectSimulationSearchCtrl1
+            // 
+            xhsProjectSimulationSearchCtrl1.Dock = DockStyle.Fill;
+            xhsProjectSimulationSearchCtrl1.Location = new Point(0, 0);
+            xhsProjectSimulationSearchCtrl1.Name = "xhsProjectSimulationSearchCtrl1";
+            xhsProjectSimulationSearchCtrl1.Size = new Size(885, 76);
+            xhsProjectSimulationSearchCtrl1.TabIndex = 0;
             // 
             // svgImg32
             // 
@@ -569,6 +584,14 @@
             rmSet.Name = "rmSet";
             rmSet.Ribbon = ribbonControl1;
             // 
+            // barBtnSearch
+            // 
+            barBtnSearch.Caption = "鏌ヨ";
+            barBtnSearch.Id = 32;
+            barBtnSearch.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnSearch.ImageOptions.SvgImage");
+            barBtnSearch.Name = "barBtnSearch";
+            barBtnSearch.ItemClick += barBtnSearch_ItemClick;
+            // 
             // XhsProjectSimulationCorePage
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -576,6 +599,7 @@
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(tabPane1);
+            Controls.Add(docPnlSearch);
             Controls.Add(docPnlMatchingList);
             Controls.Add(docPnlUnMatchingList);
             Controls.Add(docPnlHydroCheck);
@@ -585,13 +609,12 @@
             Controls.Add(ribbonControl1);
             Margin = new Padding(2);
             Name = "XhsProjectSimulationCorePage";
-            Size = new Size(1161, 739);
+            Size = new Size(1166, 828);
             ((ISupportInitialize)ribbonControl1).EndInit();
             ((ISupportInitialize)tabPane1).EndInit();
             tabPane1.ResumeLayout(false);
             pageBimface.ResumeLayout(false);
             pageQ3d.ResumeLayout(false);
-            tabPageL3d.ResumeLayout(false);
             ((ISupportInitialize)dockManager1).EndInit();
             docPnlProperty.ResumeLayout(false);
             dockPanel1_Container.ResumeLayout(false);
@@ -605,6 +628,8 @@
             controlContainer4.ResumeLayout(false);
             docPnlMatchingList.ResumeLayout(false);
             controlContainer5.ResumeLayout(false);
+            docPnlSearch.ResumeLayout(false);
+            controlContainer6.ResumeLayout(false);
             ((ISupportInitialize)svgImg32).EndInit();
             ((ISupportInitialize)rmSet).EndInit();
             ResumeLayout(false);
@@ -647,11 +672,9 @@
         private DevExpress.XtraBars.Docking.DockPanel docPnlUnMatchingList;
         private DevExpress.XtraBars.Docking.ControlContainer controlContainer4;
         private DevExpress.XtraBars.BarButtonItem barBtnUnMatchingList;
-        private DevExpress.XtraBars.Navigation.TabNavigationPage tabPageL3d;
         private DevExpress.XtraBars.Docking.DockPanel docPnlMatchingList;
         private DevExpress.XtraBars.Docking.ControlContainer controlContainer5;
         private XhsProjectSimulationUnMatchingListCtrl xhsProjectSimulationUnMatchingListCtrl1;
-        private XhsProjectSimulationL3dCtrl xhsProjectSimulationL3dCtrl1;
         private DevExpress.XtraBars.Ribbon.RadialMenu rmSet;
         private Xhs.XhsProjectSimulationMatchingListCtrl xhsProjectSimulationMatchingListCtrl1;
         private DevExpress.XtraBars.BarButtonItem barBtnSetList;
@@ -666,5 +689,9 @@
         private DevExpress.XtraBars.BarButtonItem barBtnSetJunctionList;
         private DevExpress.XtraBars.BarButtonItem barBtnFeatCurve;
         private XhsProjectSimulationHydroCheckResultCtrl xhsProjectSimulationHydroCheckResultCtrl1;
+        private DevExpress.XtraBars.Docking.DockPanel docPnlSearch;
+        private DevExpress.XtraBars.Docking.ControlContainer controlContainer6;
+        private XhsProjectSimulationSearchCtrl xhsProjectSimulationSearchCtrl1;
+        private DevExpress.XtraBars.BarButtonItem barBtnSearch;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index 65f5707..2e3d6cd 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -15,12 +15,18 @@
             InitializeComponent();
             this.PageTitle.Caption = "姘村姏妯℃嫙";
             this.PageTitle.HeaderSvgImage = this.svgImg32[0];
+
+            this.xhsProjectSimulationSearchCtrl1.ApplySearchEvent += XhsProjectSimulationSearchCtrl1_ApplySearchEvent;
+
             this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
         }
+
+
 
         private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰
         private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔�
@@ -72,8 +78,8 @@
             this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙";
             await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo);
             this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
-            this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo);
             this.xhsProjectSimulationPropertyCtrl1.SetBindingData(() => _hydroInfo);
+            this.xhsProjectSimulationSearchCtrl1.InitialData(() => _hydroInfo);
         }
 
         #region INP瀵煎嚭
@@ -200,6 +206,7 @@
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
 
             var input = AssetsMatchingParasHelper.Create(_hydroInfo);
             this.xhsProjectSimulationMatchingListCtrl1.SetBindingData(input);
@@ -244,6 +251,7 @@
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
 
             this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo);
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
@@ -316,6 +324,7 @@
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
 
             _checkResult = _hydroInfo.Check();
             this.xhsProjectSimulationHydroCheckResultCtrl1.SetBindingData(_checkResult);
@@ -386,6 +395,7 @@
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
 
             this.hydroParterListCtrl1.SetBindingData(_hydroInfo);
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
@@ -516,6 +526,7 @@
             this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
             this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
 
             var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
             _calcuResult = netWork.Calcu();
@@ -535,6 +546,52 @@
 
         #endregion
 
+        #region 鏌ヨ
+
+        //鏌ヨ
+        private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+
+            this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
+            this.docPnlSearch.Height = 350;
+        }
+
+        //搴旂敤鏌ヨ
+        private async void XhsProjectSimulationSearchCtrl1_ApplySearchEvent(List<Yw.Model.HydroParterInfo> obj)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            var elementIds = new List<string>();
+            if (obj != null && obj.Count > 0)
+            {
+                var first = obj.First();
+                var allParterList = _hydroInfo.GetAllParters();
+                _parter = allParterList.Find(x => x.Code == first.Code);
+                obj.ForEach(x => elementIds.Add(x.Code));
+            }
+            else
+            {
+                _parter = null;
+            }
+            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds);
+            ShowProperty();
+            SetBimfaceLinkColor();
+        }
+
+        #endregion
+
 
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
index 262c63a..3ced769 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
@@ -357,6 +357,32 @@
         IDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
+  <data name="barBtnSearch.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFQEAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
+        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
+        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRW5hYmxlU2Vh
+        cmNoIj4NCiAgICA8cGF0aCBkPSJNMTQuNSwxNy44QzEwLjgsMTcuMSw4LDEzLjksOCwxMGMwLTQuNCwz
+        LjYtOCw4LThzOCwzLjYsOCw4YzAsMS41LTAuNCwyLjgtMS4xLDRjMCwwLDAuMSwwLDAuMSwwICAgYzAu
+        NywwLDEuNCwwLjEsMi4xLDAuMmMwLjYtMS4zLDAuOS0yLjcsMC45LTQuMmMwLTUuNS00LjUtMTAtMTAt
+        MTBDMTAuNSwwLDYsNC41LDYsMTBjMCwyLjEsMC43LDQuMSwxLjgsNS43bC03LjUsNy42ICAgYy0wLjQs
+        MC4zLTAuNCwwLjksMCwxLjNsMS4yLDEuMmMwLjMsMC4zLDAuOSwwLjMsMS4yLDBsNy42LTcuNmMwLjks
+        MC42LDEuOSwxLjEsMi45LDEuNEMxMy42LDE5LDE0LDE4LjQsMTQuNSwxNy44eiIgY2xhc3M9IkJsdWUi
+        IC8+DQogICAgPHBhdGggZD0iTTIzLDE2Yy00LjQsMC04LjEsMy05LDdjMC45LDQsNC42LDcsOSw3YzQu
+        NCwwLDguMS0zLDktN0MzMS4xLDE5LDI3LjQsMTYsMjMsMTZ6IE0yMywyOGMtMy4zLDAtNi4xLTItNy01
+        ICAgYzAuOS0zLDMuNy01LDctNXM2LjEsMiw3LDVDMjkuMSwyNiwyNi4zLDI4LDIzLDI4eiBNMjMsMjZj
+        LTEuNywwLTMtMS4zLTMtM3MxLjMtMywzLTNzMywxLjMsMywzUzI0LjcsMjYsMjMsMjZ6IiBjbGFzcz0i
+        QmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs=
+</value>
+  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>179, 21</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.XhsProjectSimulationSearchViewModel.datasource b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.XhsProjectSimulationSearchViewModel.datasource
new file mode 100644
index 0000000..77dd078
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/DataSources/HStation.WinFrmUI.XhsProjectSimulationSearchViewModel.datasource
@@ -0,0 +1,10 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="XhsProjectSimulationSearchViewModel" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+  <TypeInfo>HStation.WinFrmUI.XhsProjectSimulationSearchViewModel, HStation.WinFrmUI.Xhs.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropStatusViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropStatusViewModel.cs
new file mode 100644
index 0000000..a7f55b1
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropStatusViewModel.cs
@@ -0,0 +1,20 @@
+锘縰sing Yw.Hydro;
+
+namespace Yw.WinFrmUI
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class HydroParterPropStatusViewModel
+    {
+        /// <summary>
+        /// 灞炴�у悕绉�
+        /// </summary>
+        public string PropName { get; set; }
+
+        /// <summary>
+        /// 灞炴�х姸鎬�
+        /// </summary>
+        public ePropStatus PropStatus { get; set; }
+    }
+}

--
Gitblit v1.9.3