From 5d8b95b69c1bf800f2a2ebee62c6f7181c0bd7c8 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 27 十一月 2024 16:35:46 +0800 Subject: [PATCH] 冲突 --- WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.Designer.cs | 9 WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs | 26 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx | 123 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs | 68 Desktop/HStation.Desktop.PBS.Core/MainForm.cs | 142 - WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs | 1 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.resx | 6 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs | 92 + Desktop/HStation.Desktop.PBS.Core/HStation.Desktop.PBS.Core.csproj | 3 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_shut_32.png | 0 WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.cs | 64 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user | 3 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs | 42 WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.Designer.cs | 126 + WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 65 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.resx | 120 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user | 9 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.Designer.cs | 354 ++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.Designer.cs | 7 Desktop/HStation.Desktop.PBS.Core/MainForm - 复制(2).Designer.cs | 447 +++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.resx | 153 + Desktop/HStation.Desktop.PBS.Core/MainForm - 复制(2).cs | 874 ++++++++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleViewModel.cs | 5 WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.cs | 22 Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs | 128 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroPumpRunViewModel.datasource | 10 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx | 120 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs | 118 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroEnergyStatisticsItemViewModel.datasource | 10 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs | 23 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.cs | 109 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/eEnergyType.cs | 39 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.Designer.cs | 94 + WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs | 36 WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.Designer.cs | 82 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs | 34 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.Designer.cs | 20 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj | 3 WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleHelper.cs | 82 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunViewModel.cs | 72 WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs | 177 ++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_run_32.png | 0 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.cs | 4 Desktop/HStation.Desktop.PBS.Core/MainForm.resx | 9 Desktop/HStation.Desktop.PBS.Core/MainForm - 复制(2).resx | 699 ++++++++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.cs | 21 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx | 120 + 49 files changed, 4,516 insertions(+), 259 deletions(-) diff --git a/Desktop/HStation.Desktop.PBS.Core/HStation.Desktop.PBS.Core.csproj b/Desktop/HStation.Desktop.PBS.Core/HStation.Desktop.PBS.Core.csproj index 34fbfe5..99cd335 100644 --- a/Desktop/HStation.Desktop.PBS.Core/HStation.Desktop.PBS.Core.csproj +++ b/Desktop/HStation.Desktop.PBS.Core/HStation.Desktop.PBS.Core.csproj @@ -11,11 +11,14 @@ </PropertyGroup> <ItemGroup> + <Compile Remove="MainForm - 澶嶅埗%282%29.cs" /> + <Compile Remove="MainForm - 澶嶅埗%282%29.Designer.cs" /> <Compile Remove="MainForm - 澶嶅埗.cs" /> <Compile Remove="MainForm - 澶嶅埗.Designer.cs" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Remove="MainForm - 澶嶅埗%282%29.resx" /> <EmbeddedResource Remove="MainForm - 澶嶅埗.resx" /> </ItemGroup> diff --git "a/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.Designer.cs" "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.Designer.cs" new file mode 100644 index 0000000..f0df9c6 --- /dev/null +++ "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.Designer.cs" @@ -0,0 +1,447 @@ +锘縩amespace HStation.Desktop +{ + partial class MainForm + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + tileNavPane = new DevExpress.XtraBars.Navigation.TileNavPane(); + nbTitle = new DevExpress.XtraBars.Navigation.NavButton(); + navButton3 = new DevExpress.XtraBars.Navigation.NavButton(); + nbBasicData = new DevExpress.XtraBars.Navigation.NavButton(); + nbRapidModeling = new DevExpress.XtraBars.Navigation.NavButton(); + nbModelAnalysis = new DevExpress.XtraBars.Navigation.NavButton(); + nbModelEvaluation = new DevExpress.XtraBars.Navigation.NavButton(); + nbSmartHardware = new DevExpress.XtraBars.Navigation.NavButton(); + navButton2 = new DevExpress.XtraBars.Navigation.NavButton(); + nbMin = new DevExpress.XtraBars.Navigation.NavButton(); + nbNormal = new DevExpress.XtraBars.Navigation.NavButton(); + nbClose = new DevExpress.XtraBars.Navigation.NavButton(); + documentManager1 = new DevExpress.XtraBars.Docking2010.DocumentManager(components); + tabbedView1 = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(components); + dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components); + flyoutPanel1 = new DevExpress.Utils.FlyoutPanel(); + flyoutPanelControl1 = new DevExpress.Utils.FlyoutPanelControl(); + svgImgItem32 = new DevExpress.Utils.SvgImageCollection(components); + accordionControlFunction = new DevExpress.XtraBars.Navigation.AccordionControl(); + toolboxItem3 = new DevExpress.XtraToolbox.ToolboxItem(); + toolboxItem5 = new DevExpress.XtraToolbox.ToolboxItem(); + svgImgGroup32 = new DevExpress.Utils.SvgImageCollection(components); + propertyGridControl1 = new DevExpress.XtraVerticalGrid.PropertyGridControl(); + ((System.ComponentModel.ISupportInitialize)tileNavPane).BeginInit(); + ((System.ComponentModel.ISupportInitialize)documentManager1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)tabbedView1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)flyoutPanel1).BeginInit(); + flyoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)svgImgItem32).BeginInit(); + ((System.ComponentModel.ISupportInitialize)accordionControlFunction).BeginInit(); + ((System.ComponentModel.ISupportInitialize)svgImgGroup32).BeginInit(); + ((System.ComponentModel.ISupportInitialize)propertyGridControl1).BeginInit(); + SuspendLayout(); + // + // tileNavPane + // + tileNavPane.AllowGlyphSkinning = true; + tileNavPane.Appearance.BackColor = Color.White; + tileNavPane.Appearance.BorderColor = Color.White; + tileNavPane.Appearance.ForeColor = Color.Black; + tileNavPane.Appearance.Options.UseBackColor = true; + tileNavPane.Appearance.Options.UseBorderColor = true; + tileNavPane.Appearance.Options.UseForeColor = true; + tileNavPane.AppearanceDisabled.BackColor = Color.White; + tileNavPane.AppearanceDisabled.BorderColor = Color.White; + tileNavPane.AppearanceDisabled.ForeColor = Color.Black; + tileNavPane.AppearanceDisabled.Options.UseBackColor = true; + tileNavPane.AppearanceDisabled.Options.UseBorderColor = true; + tileNavPane.AppearanceDisabled.Options.UseForeColor = true; + tileNavPane.AppearanceHovered.BackColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceHovered.BorderColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceHovered.ForeColor = Color.White; + tileNavPane.AppearanceHovered.Options.UseBackColor = true; + tileNavPane.AppearanceHovered.Options.UseBorderColor = true; + tileNavPane.AppearanceHovered.Options.UseForeColor = true; + tileNavPane.AppearanceSelected.BackColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceSelected.BorderColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceSelected.ForeColor = Color.White; + tileNavPane.AppearanceSelected.Options.UseBackColor = true; + tileNavPane.AppearanceSelected.Options.UseBorderColor = true; + tileNavPane.AppearanceSelected.Options.UseForeColor = true; + tileNavPane.BackColor = Color.White; + tileNavPane.ButtonPadding = new Padding(10); + tileNavPane.Buttons.Add(nbTitle); + tileNavPane.Buttons.Add(navButton3); + tileNavPane.Buttons.Add(nbBasicData); + tileNavPane.Buttons.Add(nbRapidModeling); + tileNavPane.Buttons.Add(nbModelAnalysis); + tileNavPane.Buttons.Add(nbModelEvaluation); + tileNavPane.Buttons.Add(nbSmartHardware); + tileNavPane.Buttons.Add(navButton2); + tileNavPane.Buttons.Add(nbMin); + tileNavPane.Buttons.Add(nbNormal); + tileNavPane.Buttons.Add(nbClose); + // + // tileNavCategory1 + // + tileNavPane.DefaultCategory.Name = "tileNavCategory1"; + // + // + // + tileNavPane.DefaultCategory.Tile.AllowSelectAnimation = true; + tileNavPane.DefaultCategory.Tile.DropDownOptions.BeakColor = Color.Empty; + tileNavPane.Dock = DockStyle.Top; + tileNavPane.Location = new Point(0, 0); + tileNavPane.Margin = new Padding(0); + tileNavPane.Name = "tileNavPane"; + tileNavPane.Size = new Size(2087, 70); + tileNavPane.TabIndex = 0; + tileNavPane.Text = "tileNavPane1"; + tileNavPane.ElementClick += tileNavPane_ElementClick; + tileNavPane.MouseDown += tileNavPane_MouseDown; + // + // nbTitle + // + nbTitle.Appearance.BackColor = Color.White; + nbTitle.Appearance.BorderColor = Color.White; + nbTitle.Appearance.FontSizeDelta = 2; + nbTitle.Appearance.ForeColor = Color.FromArgb(1, 96, 188); + nbTitle.Appearance.Options.UseBackColor = true; + nbTitle.Appearance.Options.UseBorderColor = true; + nbTitle.Appearance.Options.UseFont = true; + nbTitle.Appearance.Options.UseForeColor = true; + nbTitle.AppearanceDisabled.BackColor = Color.White; + nbTitle.AppearanceDisabled.BorderColor = Color.White; + nbTitle.AppearanceDisabled.FontSizeDelta = 2; + nbTitle.AppearanceDisabled.ForeColor = Color.FromArgb(1, 96, 188); + nbTitle.AppearanceDisabled.Options.UseBackColor = true; + nbTitle.AppearanceDisabled.Options.UseBorderColor = true; + nbTitle.AppearanceDisabled.Options.UseFont = true; + nbTitle.AppearanceDisabled.Options.UseForeColor = true; + nbTitle.AppearanceHovered.BackColor = Color.White; + nbTitle.AppearanceHovered.BorderColor = Color.White; + nbTitle.AppearanceHovered.FontSizeDelta = 2; + nbTitle.AppearanceHovered.ForeColor = Color.FromArgb(1, 96, 188); + nbTitle.AppearanceHovered.Options.UseBackColor = true; + nbTitle.AppearanceHovered.Options.UseBorderColor = true; + nbTitle.AppearanceHovered.Options.UseFont = true; + nbTitle.AppearanceHovered.Options.UseForeColor = true; + nbTitle.AppearanceSelected.BackColor = Color.White; + nbTitle.AppearanceSelected.BorderColor = Color.White; + nbTitle.AppearanceSelected.FontSizeDelta = 2; + nbTitle.AppearanceSelected.ForeColor = Color.FromArgb(1, 96, 188); + nbTitle.AppearanceSelected.Options.UseBackColor = true; + nbTitle.AppearanceSelected.Options.UseBorderColor = true; + nbTitle.AppearanceSelected.Options.UseFont = true; + nbTitle.AppearanceSelected.Options.UseForeColor = true; + nbTitle.Caption = "浜屼緵鎴愬绯荤粺"; + nbTitle.Enabled = false; + nbTitle.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; + nbTitle.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbTitle.ImageOptions.SvgImage"); + nbTitle.ImageOptions.SvgImageSize = new Size(24, 24); + nbTitle.Name = "nbTitle"; + nbTitle.ElementClick += nbTitle_ElementClick; + // + // navButton3 + // + navButton3.Appearance.BackColor = Color.White; + navButton3.Appearance.BorderColor = Color.White; + navButton3.Appearance.Options.UseBackColor = true; + navButton3.Appearance.Options.UseBorderColor = true; + navButton3.Caption = " "; + navButton3.Enabled = false; + navButton3.Name = "navButton3"; + // + // nbBasicData + // + nbBasicData.Caption = "鍩虹鏁版嵁"; + nbBasicData.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbBasicData.ImageOptions.SvgImage"); + nbBasicData.ImageOptions.SvgImageSize = new Size(24, 24); + nbBasicData.Name = "nbBasicData"; + nbBasicData.Tag = "BasicData"; + // + // nbRapidModeling + // + nbRapidModeling.Caption = "蹇�熷缓妯�"; + nbRapidModeling.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbRapidModeling.ImageOptions.SvgImage"); + nbRapidModeling.ImageOptions.SvgImageSize = new Size(24, 24); + nbRapidModeling.Name = "nbRapidModeling"; + nbRapidModeling.Tag = "RapidModeling"; + // + // nbModelAnalysis + // + nbModelAnalysis.Caption = "妯″瀷鍒嗘瀽"; + nbModelAnalysis.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbModelAnalysis.ImageOptions.SvgImage"); + nbModelAnalysis.ImageOptions.SvgImageSize = new Size(24, 24); + nbModelAnalysis.Name = "nbModelAnalysis"; + nbModelAnalysis.Tag = "ModelAnalysis"; + // + // nbModelEvaluation + // + nbModelEvaluation.Caption = "妯″瀷璇勪环"; + nbModelEvaluation.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbModelEvaluation.ImageOptions.SvgImage"); + nbModelEvaluation.ImageOptions.SvgImageSize = new Size(24, 24); + nbModelEvaluation.Name = "nbModelEvaluation"; + nbModelEvaluation.Tag = "ModelEvaluation"; + // + // nbSmartHardware + // + nbSmartHardware.Caption = "鏅鸿兘纭欢"; + nbSmartHardware.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbSmartHardware.ImageOptions.SvgImage"); + nbSmartHardware.ImageOptions.SvgImageSize = new Size(24, 24); + nbSmartHardware.Name = "nbSmartHardware"; + nbSmartHardware.Tag = "SmartHardware"; + // + // navButton2 + // + navButton2.Appearance.BackColor = Color.White; + navButton2.Appearance.BorderColor = Color.White; + navButton2.Appearance.Options.UseBackColor = true; + navButton2.Appearance.Options.UseBorderColor = true; + navButton2.AppearanceDisabled.BackColor = Color.White; + navButton2.AppearanceDisabled.BorderColor = Color.White; + navButton2.AppearanceDisabled.Options.UseBackColor = true; + navButton2.AppearanceDisabled.Options.UseBorderColor = true; + navButton2.AppearanceHovered.BackColor = Color.White; + navButton2.AppearanceHovered.BorderColor = Color.White; + navButton2.AppearanceHovered.Options.UseBackColor = true; + navButton2.AppearanceHovered.Options.UseBorderColor = true; + navButton2.AppearanceSelected.BackColor = Color.White; + navButton2.AppearanceSelected.BorderColor = Color.White; + navButton2.AppearanceSelected.Options.UseBackColor = true; + navButton2.AppearanceSelected.Options.UseBorderColor = true; + navButton2.Caption = " "; + navButton2.Enabled = false; + navButton2.Name = "navButton2"; + // + // nbMin + // + nbMin.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Right; + nbMin.Caption = null; + nbMin.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; + nbMin.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbMin.ImageOptions.SvgImage"); + nbMin.ImageOptions.SvgImageSize = new Size(24, 24); + nbMin.Name = "nbMin"; + nbMin.ElementClick += nbMin_ElementClick; + // + // nbNormal + // + nbNormal.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Right; + nbNormal.Caption = null; + nbNormal.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; + nbNormal.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbNormal.ImageOptions.SvgImage"); + nbNormal.ImageOptions.SvgImageSize = new Size(22, 22); + nbNormal.Name = "nbNormal"; + nbNormal.ElementClick += nbNormal_ElementClick; + // + // nbClose + // + nbClose.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Right; + nbClose.Caption = null; + nbClose.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; + nbClose.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbClose.ImageOptions.SvgImage"); + nbClose.ImageOptions.SvgImageSize = new Size(24, 24); + nbClose.Name = "nbClose"; + nbClose.ElementClick += nabClose_ElementClick; + // + // documentManager1 + // + documentManager1.ContainerControl = this; + documentManager1.View = tabbedView1; + documentManager1.ViewCollection.AddRange(new DevExpress.XtraBars.Docking2010.Views.BaseView[] { tabbedView1 }); + // + // tabbedView1 + // + tabbedView1.DocumentGroupProperties.AllowHtmlDraw = true; + tabbedView1.DocumentGroupProperties.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InActiveTabPageHeader; + tabbedView1.DocumentGroupProperties.PinPageButtonShowMode = DevExpress.XtraTab.PinPageButtonShowMode.InActiveTabPageHeader; + tabbedView1.DocumentProperties.AllowPin = true; + tabbedView1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light; + tabbedView1.DocumentSelected += tabbedView1_DocumentSelected; + tabbedView1.DocumentAdded += tabbedView1_DocumentAdded; + tabbedView1.DocumentActivated += tabbedView1_DocumentActivated; + tabbedView1.DocumentClosed += tabbedView1_DocumentClosed; + // + // dockManager1 + // + dockManager1.Form = this; + 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" }); + // + // flyoutPanel1 + // + flyoutPanel1.AnimationRate = 100; + flyoutPanel1.Controls.Add(flyoutPanelControl1); + flyoutPanel1.Location = new Point(706, 209); + flyoutPanel1.Margin = new Padding(4, 5, 4, 5); + flyoutPanel1.Name = "flyoutPanel1"; + flyoutPanel1.Options.CloseOnOuterClick = true; + flyoutPanel1.OptionsBeakPanel.BeakLocation = DevExpress.Utils.BeakPanelBeakLocation.Top; + flyoutPanel1.OptionsButtonPanel.ButtonPanelHeight = 47; + flyoutPanel1.ParentForm = this; + flyoutPanel1.Size = new Size(286, 157); + flyoutPanel1.TabIndex = 5; + // + // flyoutPanelControl1 + // + flyoutPanelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + flyoutPanelControl1.Dock = DockStyle.Fill; + flyoutPanelControl1.FlyoutPanel = flyoutPanel1; + flyoutPanelControl1.Location = new Point(0, 0); + flyoutPanelControl1.Margin = new Padding(4, 5, 4, 5); + flyoutPanelControl1.Name = "flyoutPanelControl1"; + flyoutPanelControl1.Size = new Size(286, 157); + flyoutPanelControl1.TabIndex = 0; + // + // svgImgItem32 + // + svgImgItem32.ImageSize = new Size(32, 32); + svgImgItem32.Add("MapPin.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.MapPin.svg")); + svgImgItem32.Add("BuildingEnergy.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.BuildingEnergy.svg")); + svgImgItem32.Add("CityNext.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.CityNext.svg")); + svgImgItem32.Add("MapLayers.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.MapLayers.svg")); + svgImgItem32.Add("font-icon61846.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.font-icon61846.svg")); + svgImgItem32.Add("Ruler.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.Ruler.svg")); + svgImgItem32.Add("PostUpdate.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.PostUpdate.svg")); + svgImgItem32.Add("Pump", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.Pump")); + svgImgItem32.Add("Kit", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.Kit")); + svgImgItem32.Add("Puzzle.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.Puzzle.svg")); + svgImgItem32.Add("GroupList.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.GroupList.svg")); + svgImgItem32.Add("CommandPrompt.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.CommandPrompt.svg")); + svgImgItem32.Add("Dictionary.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.Dictionary.svg")); + svgImgItem32.Add("PersonalFolder.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.PersonalFolder.svg")); + svgImgItem32.Add("GuestUser.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.GuestUser.svg")); + svgImgItem32.Add("PassiveAuthentication.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgItem32.PassiveAuthentication.svg")); + // + // accordionControlFunction + // + accordionControlFunction.Appearance.AccordionControl.BackColor = Color.White; + accordionControlFunction.Appearance.AccordionControl.BorderColor = Color.White; + accordionControlFunction.Appearance.AccordionControl.ForeColor = Color.Black; + accordionControlFunction.Appearance.AccordionControl.Options.UseBackColor = true; + accordionControlFunction.Appearance.AccordionControl.Options.UseBorderColor = true; + accordionControlFunction.Appearance.AccordionControl.Options.UseForeColor = true; + accordionControlFunction.Appearance.Item.Default.ForeColor = Color.Black; + accordionControlFunction.Appearance.Item.Default.Options.UseForeColor = true; + accordionControlFunction.Dock = DockStyle.Left; + accordionControlFunction.Location = new Point(0, 70); + accordionControlFunction.Name = "accordionControlFunction"; + accordionControlFunction.ScrollBarMode = DevExpress.XtraBars.Navigation.ScrollBarMode.Fluent; + accordionControlFunction.Size = new Size(211, 1061); + accordionControlFunction.TabIndex = 17; + accordionControlFunction.ViewType = DevExpress.XtraBars.Navigation.AccordionControlViewType.HamburgerMenu; + // + // toolboxItem3 + // + toolboxItem3.Caption = "12"; + toolboxItem3.Name = "toolboxItem3"; + // + // toolboxItem5 + // + toolboxItem5.Caption = "ToolboxItem"; + toolboxItem5.Name = "toolboxItem5"; + // + // svgImgGroup32 + // + svgImgGroup32.ImageSize = new Size(32, 32); + svgImgGroup32.Add("EMI.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.EMI.svg")); + svgImgGroup32.Add("CC.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.CC.svg")); + svgImgGroup32.Add("Manage.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.Manage.svg")); + svgImgGroup32.Add("ExploitProtectionSettings.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.ExploitProtectionSettings.svg")); + svgImgGroup32.Add("Admin.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.Admin.svg")); + // + // propertyGridControl1 + // + propertyGridControl1.Dock = DockStyle.Right; + propertyGridControl1.Location = new Point(1487, 70); + propertyGridControl1.Name = "propertyGridControl1"; + propertyGridControl1.OptionsView.AllowReadOnlyRowAppearance = DevExpress.Utils.DefaultBoolean.True; + propertyGridControl1.SelectedObject = tabbedView1; + propertyGridControl1.Size = new Size(600, 1061); + propertyGridControl1.TabIndex = 18; + // + // MainForm + // + Appearance.BackColor = Color.White; + Appearance.Options.UseBackColor = true; + AutoScaleDimensions = new SizeF(10F, 22F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(2087, 1131); + Controls.Add(propertyGridControl1); + Controls.Add(accordionControlFunction); + Controls.Add(tileNavPane); + Controls.Add(flyoutPanel1); + Margin = new Padding(4, 3, 4, 3); + Name = "MainForm"; + Text = "Form1"; + WindowState = FormWindowState.Maximized; + FormClosing += MainForm_FormClosing; + FormClosed += MainForm_FormClosed; + Load += MainForm_Load; + Shown += MainForm_Shown; + Resize += MainForm_Resize; + ((System.ComponentModel.ISupportInitialize)tileNavPane).EndInit(); + ((System.ComponentModel.ISupportInitialize)documentManager1).EndInit(); + ((System.ComponentModel.ISupportInitialize)tabbedView1).EndInit(); + ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit(); + ((System.ComponentModel.ISupportInitialize)flyoutPanel1).EndInit(); + flyoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).EndInit(); + ((System.ComponentModel.ISupportInitialize)svgImgItem32).EndInit(); + ((System.ComponentModel.ISupportInitialize)accordionControlFunction).EndInit(); + ((System.ComponentModel.ISupportInitialize)svgImgGroup32).EndInit(); + ((System.ComponentModel.ISupportInitialize)propertyGridControl1).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraBars.Navigation.TileNavPane tileNavPane; + private DevExpress.XtraBars.Navigation.NavButton nbTitle; + private DevExpress.XtraBars.Docking2010.DocumentManager documentManager1; + private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView1; + private DevExpress.XtraBars.Navigation.NavButton nbMin; + private DevExpress.XtraBars.Navigation.NavButton nbNormal; + private DevExpress.XtraBars.Navigation.NavButton nbClose; + private DevExpress.XtraBars.Navigation.NavButton nbBasicData; + private DevExpress.XtraBars.Navigation.NavButton nbRapidModeling; + private DevExpress.Utils.FlyoutPanel flyoutPanel1; + private DevExpress.Utils.FlyoutPanelControl flyoutPanelControl1; + private DevExpress.Utils.SvgImageCollection svgImgItem32; + private DevExpress.XtraBars.Navigation.NavButton nbModelAnalysis; + private DevExpress.XtraBars.Navigation.NavButton nbModelEvaluation; + private DevExpress.XtraBars.Navigation.NavButton nbSmartHardware; + private DevExpress.XtraBars.Docking.DockManager dockManager1; + private DevExpress.XtraToolbox.ToolboxItem toolboxItem3; + private DevExpress.XtraToolbox.ToolboxItem toolboxItem5; + private DevExpress.XtraBars.Navigation.AccordionControl accordionControlFunction; + private DevExpress.Utils.SvgImageCollection svgImgGroup32; + private DevExpress.XtraBars.Navigation.NavButton navButton2; + private DevExpress.XtraBars.Navigation.NavButton navButton3; + private DevExpress.XtraVerticalGrid.PropertyGridControl propertyGridControl1; + } +} diff --git "a/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.cs" "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.cs" new file mode 100644 index 0000000..edd2099 --- /dev/null +++ "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.cs" @@ -0,0 +1,874 @@ +using DevExpress.Utils.Svg; +using DevExpress.XtraBars.Docking; +using DevExpress.XtraBars.Docking2010.Views; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraBars.Ribbon; +using DevExpress.XtraEditors; +using HStation.WinFrmUI.Xhs.PumpProduct; +using System.Drawing.Drawing2D; +using System.IO; +using Yw.WinFrmUI; +using Yw.WinFrmUI.Page; + +namespace HStation.Desktop +{ + public partial class MainForm : RibbonForm + { + public MainForm() + { + InitializeComponent(); + + this.accordionControlFunction.GroupHeight = 50; + this.accordionControlFunction.ItemHeight = 35; + this.accordionControlFunction.Appearance.Group.Default.Font = new Font("微软雅黑", 10.5f); + this.accordionControlFunction.Appearance.Item.Default.Font = new Font("微软雅黑", 9.5f); + this.accordionControlFunction.AllowItemSelection = true; + + this.accordionControlFunction.Appearance.AccordionControl.BackColor = Color.White; + this.accordionControlFunction.Appearance.AccordionControl.BorderColor = Color.White; + //this.accordionControlFunction.ResizeMode = AccordionControlResizeMode.None; + this.accordionControlFunction.AllowHtmlText = true; + this.accordionControlFunction.HtmlTemplates.HamburgerHeaderPanel.Template = @"<div class='hamburger-header-background'></div>"; + this.accordionControlFunction.HtmlTemplates.HamburgerHeaderPanel.Styles = @".hamburger-header-background {background-color: #ffffff; height: 100%;width: 100%;}"; + + this.tabbedView1.Style = DockingViewStyle.Classic; + this.tabbedView1.Appearance.BackColor = Color.White; + //this.tabbedView1.AppearancePage.Header.BackColor = Color.White; + this.tabbedView1.AppearancePage.HeaderSelected.Font = new Font("微软雅黑", 10f, FontStyle.Bold); + + // this.tabbedView1.CustomDrawTabHeader += TabbedView1_CustomDrawTabHeader; + + + } + + HatchBrush myHatchBrush1 = new HatchBrush(HatchStyle.BackwardDiagonal, Color.LightGray, Color.AliceBlue); + private void TabbedView1_CustomDrawTabHeader(object sender, DevExpress.XtraTab.TabHeaderCustomDrawEventArgs e) + { + e.Cache.FillRectangle(myHatchBrush1, e.Bounds); + e.DefaultDrawText(); + e.DefaultDrawImage(); + e.DefaultDrawButtons(); + e.Handled = true; + } + + #region TileNavPane 相关处理 + + //移动窗体 + private void tileNavPane_MouseDown(object sender, MouseEventArgs e) + { + if (e.Clicks >= 2) + { + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } + } + else + { + var hit_info = this.tileNavPane.CalcHitInfo(e.Location); + if (hit_info.InButton) + { + return; + } + this.DragMove(); + } + } + + //标题点击 + private void nbTitle_ElementClick(object sender, NavElementEventArgs e) + { + } + + //最大化最小化窗体 + private void nbNormal_ElementClick(object sender, NavElementEventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } + } + + //最小化窗体 + private void nbMin_ElementClick(object sender, NavElementEventArgs e) + { + this.WindowState = FormWindowState.Minimized; + } + + //关闭窗体 + private void nabClose_ElementClick(object sender, NavElementEventArgs e) + { + this.Close(); + } + + //功能点击事件 + private void tileNavPane_ElementClick(object sender, NavElementEventArgs e) + { + if (e.Element is not NavButton btn) + return; + if (!btn.Enabled) + return; + if (btn.Tag is not string tag) + return; + PageGuid pguid = null; + if (this.tabbedView1.ActiveDocument != null) + { + pguid = this.tabbedView1.ActiveDocument.Tag as PageGuid; + } + SelectModular(tag, pguid); + } + + #endregion TileNavPane 相关处理 + + #region 窗体事件 + + //界面记载事件 + private void MainForm_Load(object sender, EventArgs e) + { + } + + //界面显示事件 + private void MainForm_Shown(object sender, EventArgs e) + { + //var guid = new PageGuid() + //{ + // Modular = "PBS", + // MoudingType = eMoudingType.Tab, + // Function = "Home" + //}; + //if (!IsExistPage(guid, true)) + //{ + //} + + SelectModular("BasicData"); + } + + //界面正在退出时确认 + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + if (XtraMessageBox.Show("是否关闭程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + //界面退出 + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) + { + } + + //窗体尺寸改变 + private void MainForm_Resize(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + { + } + else + { + } + } + + #endregion 窗体事件 + + #region TabbedView 相关事件处理程序 + + //选中 + private void tabbedView1_DocumentSelected(object sender, DocumentEventArgs e) + { + if (e.Document == null) + return; + var pguid = e.Document.Tag as PageGuid; + if (pguid == null) + return; + SelectModular(pguid.Modular, pguid); + } + + //添加 + private void tabbedView1_DocumentAdded(object sender, DocumentEventArgs e) + { + if (this.tabbedView1.Documents.Count > 1) + { + if (!this.tabbedView1.DocumentGroupProperties.ShowTabHeader) + { + } + } + } + + //激活 + private void tabbedView1_DocumentActivated(object sender, DocumentEventArgs e) + { + var page = e.Document.Control as DocumentPage; + if (page == null) + { + return; + } + } + + //关闭 此时控件已经为空 + private void tabbedView1_DocumentClosed(object sender, DocumentEventArgs e) + { + } + + #endregion TabbedView 相关事件处理程序 + + #region Page + + //是否存在Page + private bool IsExistPage(PageGuid pguid, bool isActivePage) + { + if (pguid == null) + { + return false; + } + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + foreach (DockPanel panel in this.dockManager1.Panels) + { + if (panel.Tag != null) + { + if (panel.Tag is PageGuid) + { + if ((panel.Tag as PageGuid).ToString() == pguid.ToString()) + { + if (isActivePage) + { + panel.Show(); + } + return true; + } + } + } + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + foreach (BaseDocument doc in this.tabbedView1.Documents) + { + if (doc.Tag != null) + { + if (doc.Tag is PageGuid) + { + if ((doc.Tag as PageGuid).ToString() == pguid.ToString()) + { + if (isActivePage) + { + this.tabbedView1.Controller.Activate(doc); + } + return true; + } + } + } + } + } + + return false; + } + + //更新数据 + private void RefreshPageData(PageGuid pguid) + { + if (pguid == null) + { + return; + } + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + if (panel.ControlContainer.Controls.Count > 0) + { + var page = panel.ControlContainer.Controls[0] as DocumentPage; + if (page != null) + { + page.RefreshData(); + } + } + return; + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + var page = doc.Control as DocumentPage; + if (page != null) + { + page.RefreshData(); + } + return; + } + } + } + + //更新PageTitle + private void UpdatePageTitle(PageGuid pguid, PageTitle title) + { + if (pguid == null || title == null) + return; + + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + panel.Text = title.Caption; + panel.ImageOptions.Image = title.HeaderImage; + panel.ImageOptions.SvgImage = title.HeaderSvgImage; + panel.ImageOptions.SvgImageSize = title.SvgImageSize; + if (panel.ControlContainer.Controls.Count > 0) + { + var page = panel.ControlContainer.Controls[0] as DocumentPage; + if (page != null) + { + page.PageTitle = title; + } + } + return; + } + } + + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + doc.Caption = title.Caption; + doc.ImageOptions.Image = title.HeaderImage; + doc.ImageOptions.SvgImage = title.HeaderSvgImage; + doc.ImageOptions.SvgImageSize = title.SvgImageSize; + var page = doc.Control as DocumentPage; + if (page != null) + { + page.PageTitle = title; + } + return; + } + } + } + + //创建Page + private bool CreatePage(DocumentPage page, PageGuid pguid) + { + if (page == null || pguid == null) + { + return false; + } + page.PageGuid = pguid; + page.Dock = DockStyle.Fill; + page.IsExistPageEvent += IsExistPage; + page.CreatePageEvent += CreatePage; + page.RefreshPageDataEvent += RefreshPageData; + page.UpdatePageTitleEvent += UpdatePageTitle; + page.ClosePageEvent += ClosePage; + page.RegistEvents(); + switch (pguid.MoudingType) + { + case eMoudingType.Dock: + { + this.dockManager1.BeginUpdate(); + DockPanel docPnl = null; + if (pguid.DockType == eDockType.Left) + { + docPnl = this.dockManager1.AddPanel(DockingStyle.Left); + } + else if (pguid.DockType == eDockType.Right) + { + docPnl = this.dockManager1.AddPanel(DockingStyle.Right); + } + + docPnl.Footer = Directory.GetCurrentDirectory(); + if (page.PageTitle != null) + { + docPnl.Text = page.PageTitle.Caption; + docPnl.ImageOptions.Image = page.PageTitle.HeaderImage; + docPnl.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; + docPnl.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; + docPnl.Options.ShowCloseButton = page.PageTitle.AllowClose; + } + docPnl.ControlContainer.Controls.Add(page); + docPnl.Tag = pguid; + this.dockManager1.EndUpdate(); + docPnl.Show(); + } + break; + + case eMoudingType.Tab: + { + this.tabbedView1.BeginUpdate(); + var doc = this.tabbedView1.AddDocument(page); + doc.Footer = Directory.GetCurrentDirectory(); + if (page.PageTitle != null) + { + doc.Caption = page.PageTitle.Caption; + doc.ImageOptions.Image = page.PageTitle.HeaderImage; + doc.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; + doc.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; + doc.Properties.AllowClose = page.PageTitle.AllowClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; + } + doc.Tag = pguid; + this.tabbedView1.EndUpdate(); + this.tabbedView1.Controller.Activate(doc); + } + break; + + default: break; + } + page.InitialDataSource(); + return true; + } + + //关闭Page + private void ClosePage(PageGuid pguid) + { + switch (pguid.MoudingType) + { + case eMoudingType.Dock: + { + if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0) + { + var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (panel != null) + { + if (panel.Visibility != DockVisibility.Hidden) + panel.Close();//会触发正在关闭和关闭事件 + //this.dockManager1.RemovePanel(panel);//不会触发正在关闭和关闭事件 + } + } + } + break; + + case eMoudingType.Tab: + { + if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + { + var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + if (doc != null) + { + this.tabbedView1.Controller.Close(doc);//会触发正在关闭和关闭事件 + } + } + } + break; + + default: break; + } + } + + #endregion Page + + #region Modular + + private string _sel_modular = string.Empty; + + //选择模块 + private void SelectModular(string modular, PageGuid pguid = null) + { + if (_sel_modular != modular) + { + foreach (NavButton btn in this.tileNavPane.Buttons) + { + if (btn.Tag == null) + continue; + if (btn.Tag is string tag) + { + if (tag == modular) + { + btn.Appearance.BackColor = Color.FromArgb(50, 121, 197); + btn.Appearance.ForeColor = Color.White; + } + else + { + btn.Appearance.BackColor = Color.White; + btn.Appearance.ForeColor = Color.Black; + } + } + } + + //初始功能列表 + this.accordionControlFunction.Elements.Clear(); + var list = GetAccordionElementList(modular); + if (list != null && list.Count > 0) + { + foreach (var element in list) + { + var accEle = GetAccordionControlElement(element); + this.accordionControlFunction.Elements.Add(accEle); + } + } + _sel_modular = modular; + } + + //选择功能 + if (pguid != null) + { + foreach (var item in this.accordionControlFunction.Elements) + { + if (SelectAccordionControlElement(item, pguid)) + break; + } + } + } + + //获取模块元素 + private DevExpress.XtraBars.Navigation.AccordionControlElement GetAccordionControlElement(AccordionElement ele) + { + var dev_ele = new DevExpress.XtraBars.Navigation.AccordionControlElement(); + dev_ele.Name = ele.Id; + dev_ele.Text = ele.Caption; + dev_ele.Image = ele.Image; + dev_ele.ImageOptions.SvgImage = ele.SvgImage; + dev_ele.ImageOptions.SvgImageSize = ele.SvgImageSize; + dev_ele.AllowGlyphSkinning = ele.AllowGlyphSkinning ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; + dev_ele.Tag = ele; + dev_ele.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item; + dev_ele.Click += delegate { ele.Click?.Invoke(); }; + if (ele.Elements != null && ele.Elements.Count > 0) + { + dev_ele.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group; + foreach (var item in ele.Elements) + { + dev_ele.Elements.Add(GetAccordionControlElement(item)); + } + } + return dev_ele; + } + + //选择功能元素 + private bool SelectAccordionControlElement(DevExpress.XtraBars.Navigation.AccordionControlElement ctrl_ele, PageGuid pguid) + { + if (ctrl_ele == null) + return false; + if (pguid == null) + return false; + if (ctrl_ele.Tag is AccordionElement ele) + { + if (ele.PageGuid != null && ele.PageGuid.ToString() == pguid.ToString()) + { + this.accordionControlFunction.SelectedElement = ctrl_ele; + if (ctrl_ele.OwnerElement != null) + { + ctrl_ele.OwnerElement.Expanded = true; + this.accordionControlFunction.Refresh(); + } + return true; + } + else + { + if (ctrl_ele.Elements != null && ctrl_ele.Elements.Count > 0) + { + foreach (var item in ctrl_ele.Elements) + { + SelectAccordionControlElement(item, pguid); + } + } + } + } + + return false; + } + + + //获取 + private List<AccordionElement> GetAccordionElementList(string modular) + { + var list = new List<AccordionElement>(); + if (modular == "BasicData") + { + var place_mgr_ele = new AccordionElement() + { + Id = "place", + Caption = "场所管理", + SvgImage = svgImgGroup32[0], + SvgImageSize = new Size(24, 24), + AllowGlyphSkinning = true, + Elements = new List<AccordionElement>() + { + Get("行政区域",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "DistrictMgr", + }, svgImgItem32[0], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + var page = new DocumentPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page, guid); + } + }), + Get("场所建筑",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "PlaceMgr", + }, svgImgItem32[1], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + var page = new DocumentPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page, guid); + } + }), + Get("场所设施", new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "FacilityMgr", + }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) => + { + if (!IsExistPage(guid, true)) + { + var page = new DocumentPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page, guid); + } + }) + } + }; + + var we_mgr_ele = new AccordionElement() + { + Id = "we", + Caption = "当量管理", + SvgImage = svgImgGroup32[1], + SvgImageSize = new Size(24, 24), + AllowGlyphSkinning = true, + Elements = new List<AccordionElement>() { + Get("用水器具",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "WaterUtensilMgr", + }, svgImgItem32[4], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("用水当量",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "WaterWEMgr", + }, svgImgItem32[5], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }) + } + }; + + var asset_mgr_ele = new AccordionElement() + { + Id = "asset", + Caption = "产品管理", + SvgImage = svgImgGroup32[2], + SvgImageSize = new Size(24, 24), + AllowGlyphSkinning = true, + Elements = new List<AccordionElement>() { + Get("厂商管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "AssetsManufacturerMgr", + }, svgImgItem32[6], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + var page = new DocumentPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page, guid); + } + }), + Get("水泵管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "AssetsPumpMgr", + }, svgImgItem32[7], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + var page=new PumpProductMainPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page,guid); + } + }), + Get("成套设备",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "AssetsKitMgr", + }, svgImgItem32[8], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }) + } + }; + + var system_config_ele = new AccordionElement() + { + Id = "asset", + Caption = "系统配置", + SvgImage = svgImgGroup32[3], + SvgImageSize = new Size(24, 24), + AllowGlyphSkinning = true, + Elements = new List<AccordionElement>() { + Get("类型管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "SystemTypeMgr", + }, svgImgItem32[9], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("分类管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "SystemCatalogMgr", + }, svgImgItem32[10], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("属性管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "SystemPropMgr", + }, svgImgItem32[11], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("字典类型",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "SystemDictMgr", + }, svgImgItem32[12], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + } + }; + + var auth_config_ele = new AccordionElement() + { + Id = "asset", + Caption = "权限配置", + SvgImage = svgImgGroup32[4], + SvgImageSize = new Size(24, 24), + AllowGlyphSkinning = true, + Elements = new List<AccordionElement>() { + Get("角色管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "RoleMgr", + }, svgImgItem32[13], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("用户管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "UserMgr", + }, svgImgItem32[14], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + Get("菜单管理",new PageGuid() + { + Modular = "BasicData", + MoudingType = eMoudingType.Tab, + Function = "MenuMgr", + }, svgImgItem32[15], new Size(18, 18), (caption,guid,svg,size) => + { + if (!IsExistPage(guid, true)) + { + } + }), + } + }; + + list.Add(place_mgr_ele); + list.Add(we_mgr_ele); + list.Add(asset_mgr_ele); + list.Add(system_config_ele); + list.Add(auth_config_ele); + } + return list; + } + + private AccordionElement Get(string caption, PageGuid guid, SvgImage svg_img, Size size, Action<string, PageGuid, SvgImage, Size> action, bool glyph_skinning = true) + { + var ele = new AccordionElement(); + if (guid == null) + { + ele.Id = Guid.NewGuid().ToString(); + } + else + { + ele.Id = guid.ToString(); + ele.Click = delegate { action(caption, guid, svg_img, size); }; + } + ele.PageGuid = guid; + ele.Caption = caption; + ele.SvgImage = svg_img; + ele.SvgImageSize = size; + ele.AllowGlyphSkinning = glyph_skinning; + return ele; + } + + #endregion Modular + } +} \ No newline at end of file diff --git "a/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.resx" "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.resx" new file mode 100644 index 0000000..a2c415f --- /dev/null +++ "b/Desktop/HStation.Desktop.PBS.Core/MainForm - \345\244\215\345\210\266\0502\051.resx" @@ -0,0 +1,699 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> + <data name="nbTitle.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rCVPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbBasicData.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qCtPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbRapidModeling.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7q6dPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbModelAnalysis.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWjPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbModelEvaluation.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWMPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbSmartHardware.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWkPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbMin.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFICAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJlbW92ZSI+DQogICAgPHBhdGggZD0iTTI3LDE4SDVj + LTAuNiwwLTEtMC41LTEtMXYtMmMwLTAuNiwwLjQtMSwxLTFoMjJjMC41LDAsMSwwLjQsMSwxdjJDMjgs + MTcuNSwyNy41LDE4LDI3LDE4eiIgY2xhc3M9IlJlZCIgLz4NCiAgPC9nPg0KPC9zdmc+Cw== +</value> + </data> + <data name="nbNormal.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IldpbmRvdyI+DQogICAgPHBhdGggZD0iTTMwLDEwVjVj + MC0wLjUtMC41LTEtMS0xSDNDMi41LDQsMiw0LjUsMiw1djVIMzB6IiBjbGFzcz0iQmx1ZSIgLz4NCiAg + ICA8cGF0aCBkPSJNMjgsMTB2MTZINFYxMEgydjE3YzAsMC41LDAuNSwxLDEsMWgyNmMwLjUsMCwxLTAu + NSwxLTFWMTBIMjh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= +</value> + </data> + <data name="nbClose.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs + YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy + Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N + CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu + NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w + LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt + MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks + Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44 + LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs= +</value> + </data> + <metadata name="documentManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>259, 17</value> + </metadata> + <metadata name="svgImgItem32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>659, 17</value> + </metadata> + <data name="svgImgItem32.MapPin.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7pyHPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.BuildingEnergy.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rCLPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.CityNext.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rCGPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.MapLayers.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qCePC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.font-icon61846.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+74aWPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.Ruler.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rWePC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.PostUpdate.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qOzPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.Pump" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFgIAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgd2lkdGg9IjMycHgiIGhl + aWdodD0iMzJweCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0 + cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 + L3hsaW5rIiBjbGFzcz0iaWNvbiI+DQogIDxwYXRoIGQ9Ik0xMDI0LjUxMiA3Ni44aC01MTJjLTU4LjU5 + MzI4IDAuMDUxMi0xMTUuNDQ1NzYgMTEuNTYwOTYtMTY4Ljk5MDcyIDM0LjIxMTg0LTUxLjgyNDY0IDIx + LjkyMzg0LTk4LjM2NTQ0IDUzLjI5OTItMTM4LjMyMTkyIDkzLjI1NTY4cy03MS4zMzE4NCA4Ni40OTcy + OC05My4yNTU2OCAxMzguMzIxOTJDODkuMjQxNiAzOTYuMjY3NTIgNzcuNzMxODQgNDUzLjI2MzM2IDc3 + LjczMTg0IDUxMnMxMS41MDk3NiAxMTUuNzQyNzIgMzQuMjExODQgMTY5LjQxMDU2YTQzMi43ODg0OCA0 + MzIuNzg4NDggMCAwIDAgMjMuOTkyMzIgNDguMTg5NDRIMFY5NDcuMmg1MTJ2LTAuMDEwMjRjMC4zMDcy + IDAuMDEwMjQgMC42MjQ2NCAwLjAxMDI0IDAuOTMxODQgMC4wMTAyNCA1OC43MzM1NjggMCAxMTUuNzMy + NDgtMTEuNTA5NzYgMTY5LjQwODUxMi0zNC4yMTE4NCA1MS44MjQ2NC0yMS45MjM4NCA5OC4zNjg1MTIt + NTMuMjk5MiAxMzguMzIxOTItOTMuMjU0NjU2Qzg2MC42MjA4IDc3OS43NzYgODkxLjk5NjE2IDczMy4y + MzUyIDkxMy45MiA2ODEuNDEwNTZjMjIuNzAyMDgtNTMuNjY3ODQgMzQuMjExODQtMTEwLjY3MzkyIDM0 + LjIxMTg0LTE2OS40MTA1NiAwLTc3LjM3MzQ0LTE5Ljk4OTUwNC0xNTEuNzA1Ni01OC4xOTM5Mi0yMTcu + NmgxMzQuNTc0MDhWNzYuOHogbS01NjMuNzEyIDgxOS4yaC00MDkuNlY3ODAuOGgxODcuNzYwNjRhMzg2 + LjAwNjAxNiAzODYuMDA2MDE2IDAgMCAxLTQyLjI3MDcyLTUxLjJjLTQyLjcyMTI4LTYxLjg5MDU2LTY3 + Ljc1ODA4LTEzNi44NzgwOC02Ny43NTgwOC0yMTcuNiAwLTIxMS43MzI0OCAxNzIuMjU3MjgtMzg0IDM4 + NC0zODRoNDYwLjM4MDE2djExNS4ySDc5MS43ODc1MmwzMC4xNjcwNCA0MC44MTY2NGM0OS4wNDY1Mjgg + NjYuMzY1NDQgNzQuOTc3MjggMTQ1LjIwMzIgNzQuOTc3MjggMjI3Ljk4MzM2IDAgMjExLjc0MjcyLTE3 + Mi4yNTcyOCAzODQtMzg0IDM4NC0wLjMwNzIgMC0wLjYyNDY0IDAtMC45MzE4NC0wLjAxMDI0IiBmaWxs + PSIjMDQwMDAwIiAvPg0KICA8cGF0aCBkPSJNNDMwLjM0MDA5NiA1MTEuMTY5NTM2Yy0wLjQ3MTA0IDQ1 + LjI0MzM5MiAzNi45MTUyIDgyLjI5NjgzMiA4My41MTUzOTIgODIuNzQ5NDQgNDQuNjU4Njg4LTIuMTUy + NDQ4IDc5Ljg2NTg1Ni0zNy43MTM5MiA4MC4zMTY0MTYtODEuMTMxNTIgMC40NTk3NzYtNDMuNDIwNjcy + LTMzLjk5NDc1Mi03OS42NjgyMjQtNzguNjA0Mjg4LTgyLjcwMzM2LTQ2LjU5NjA5Ni0wLjQ2Mzg3Mi04 + NC43NTM0MDggMzUuODQ0MDk2LTg1LjIyNzUyIDgxLjA4NTQ0eiIgZmlsbD0iIzA0MDAwMCIgLz4NCiAg + PHBhdGggZD0iTTUxMi4yNTYgNzQxLjM3NmMtNjEuMjY4OTkyIDAtMTE4Ljg2ODk5Mi0yMy44NTkyLTE2 + Mi4xOTM0MDgtNjcuMTgyNTkyQzMwNi43MzkyIDYzMC44NzAwMTYgMjgyLjg4IDU3My4yNjc5NjggMjgy + Ljg4IDUxMmMwLTYxLjI2ODk5MiAyMy44NTkyLTExOC44NzAwMTYgNjcuMTgyNTkyLTE2Mi4xOTM0MDhD + MzkzLjM4NTk4NCAzMDYuNDgzMiA0NTAuOTg3MDA4IDI4Mi42MjQgNTEyLjI1NiAyODIuNjI0YzYxLjI2 + Nzk2OCAwIDExOC44NzAwMTYgMjMuODU5MiAxNjIuMTkzNDA4IDY3LjE4MjU5MkM3MTcuNzcyOCAzOTMu + MTI5OTg0IDc0MS42MzIgNDUwLjczMTAwOCA3NDEuNjMyIDUxMmMwIDYxLjI2Nzk2OC0yMy44NTkyIDEx + OC44NzAwMTYtNjcuMTgyNTkyIDE2Mi4xOTM0MDhDNjMxLjEyNjAxNiA3MTcuNTE2OCA1NzMuNTIzOTY4 + IDc0MS4zNzYgNTEyLjI1NiA3NDEuMzc2eiBtMC00MDcuNTUyYy05OC4yNDY2NTYgMC0xNzguMTc2IDc5 + LjkyOTM0NC0xNzguMTc2IDE3OC4xNzZzNzkuOTI5MzQ0IDE3OC4xNzYgMTc4LjE3NiAxNzguMTc2IDE3 + OC4xNzYtNzkuOTI5MzQ0IDE3OC4xNzYtMTc4LjE3Ni03OS45MjkzNDQtMTc4LjE3Ni0xNzguMTc2LTE3 + OC4xNzZ6IiBmaWxsPSIjMDQwMDAwIiAvPg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.Kit" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANcTAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgd2lkdGg9IjMyLjAzMTI1 + cHgiIGhlaWdodD0iMzJweCIgdmlld0JveD0iMCAwIDEwMjUgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxu + cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y + Zy8xOTk5L3hsaW5rIiBjbGFzcz0iaWNvbiI+DQogIDxwYXRoIGQ9Ik04MjQuNTk2NDggMjA4LjgzNDU2 + VjYxLjU0MjRIMzc5LjIyODE2Yy01MC45NjQ0OCAwLjA0MDk2LTEwMC40MjM2OCAxMC4wNTU2OC0xNDYu + OTk1MiAyOS43NTc0NC00NS4wODY3MiAxOS4wNjY4OC04NS41NjU0NCA0Ni4zNTY0OC0xMjAuMzMwMjQg + ODEuMTIxMjgtMzQuNzU0NTYgMzQuNzU0NTYtNjIuMDQ0MTYgNzUuMjMzMjgtODEuMTExMDQgMTIwLjMy + QzExLjAzODcyIDMzOS40MjUyOCAxLjAyNCAzODkuMDA3MzYgMS4wMjQgNDQwLjEwNDk2czEwLjAxNDcy + IDEwMC42Njk0NCAyOS43Njc2OCAxNDcuMzYzODRjMTkuMDY2ODggNDUuMDc2NDggNDYuMzU2NDggODUu + NTU1MiA4MS4xMTEwNCAxMjAuMzIgMTcuMzI2MDggMTcuMzI2MDggMzYuMDg1NzYgMzIuNzk4NzIgNTYu + MTA0OTYgNDYuMzI1NzZhMzc4LjIyODczNiAzNzguMjI4NzM2IDAgMCAwIDY0LjIyNTI4IDM0Ljc5NDQ5 + NmMwLjc4ODQ4IDAuMzM3OTIgMS41ODcyIDAuNjY1NiAyLjM3NTY4IDAuOTgzMDQgMTIuOTYzODQgNS4z + ODYyNCAyNi4xMzI0OCAxMC4wMTQ3MiAzOS41MDU5MiAxMy44ODY0NjQgNi4zODk3NiAxLjg2MjY1NiA2 + LjY4NjcyIDMuNTQzMDQgMTMuMTY4NjQgNS4wNDgzMmEzMzEuODA2NzIgMzMxLjgwNjcyIDAgMCAxLTI0 + LjI4OTI4LTUzLjQ3MzI4Yy0xOC42MjY1Ni02LjUzNDE0NC0zMC4zNjE2LTE0LjY5NTQyNC00Ny4zMjky + OC0yNC4yOTAzMDQtNS4yMTIxNi0yLjk0OTEyLTEwLjM0MjQtNi4wMzEzNi0xNS4zODA0OC05LjI0NTY5 + NmEzMzYuNjY4NjcyIDMzNi42Njg2NzIgMCAwIDEtODEuOTcxMi03My44MzE0MjRDNzIuNzk2MTYgNTkw + Ljg5OTIgNDUuNTY4IDUxOC42MTUwNCA0NS41NjggNDQwLjEwNDk2YzAtMTg0LjE4Njg4IDE0OS44NDE5 + Mi0zMzQuMDI4OCAzMzQuMDI4OC0zMzQuMDI4OGg0MDAuNDY0ODk2djEwMC4yMDg2NEg2MjIuMTYxOTJs + MS42MTc5MiAyLjE5MTM2IDIwMC44MTY2NCAwLjM1ODR6IiBmaWxsPSIjMDQwMDAwIiAvPg0KICA8cGF0 + aCBkPSJNODM3LjE4MjQ2NCA0MTEuMDg0OGgtMTAuMjE5NTJsMTguNTEzOTIgMjUuMDQ3MDRhMzcwLjA4 + Mzg0IDM3MC4wODM4NCAwIDAgMC04LjI5NDQtMjUuMDQ3MDR6IG0tMTAxLjU5MjA2NC0xMDAuMjA4NjRo + MTkxLjQwNjA4VjE2My45NDI0SDQ4MS42MjgxNmMtNTAuOTY0NDggMC4wNDA5Ni0xMDAuNDIzNjggMTAu + MDU1NjgtMTQ2Ljk5NTIgMjkuNzU3NDQtNDUuMDg2NzIgMTkuMDY2ODgtODUuNTY1NDQgNDYuMzU2NDgt + MTIwLjMzMDI0IDgxLjEyMTI4LTM0Ljc1NDU2IDM0Ljc1NDU2LTYyLjA0NDE2IDc1LjIzMzI4LTgxLjEx + MTA0IDEyMC4zMkMxMTMuNDM4NzIgNDQxLjgyNTI4IDEwMy40MjQgNDkxLjQwNzM2IDEwMy40MjQgNTQy + LjUwNDk2YzAgMzYuMDc0NDk2IDQuOTk3MTIgNzEuNDAyNDk2IDE0Ljg4ODk2IDEwNS40ODIyNCA0LjEx + NjQ4IDE0LjE4MzQyNCA5LjA3MjY0IDI4LjE2IDE0Ljg3ODcyIDQxLjg4MTZhMzc3LjQxMTU4NCAzNzcu + NDExNTg0IDAgMCAwIDM0LjgxNiA2NC4yNDU3NmMxMy41MTY4IDIwLjAxOTIgMjguOTc5MiAzOC43NDgx + NiA0Ni4yOTUwNCA1Ni4wNzQyNCAxNy4zMjYwOCAxNy4zMjYwOCAzNi4wODU3NiAzMi43OTg3MiA1Ni4x + MDQ5NiA0Ni4zMjU3NmEzNzguMjI4NzM2IDM3OC4yMjg3MzYgMCAwIDAgNjQuMjI1MjggMzQuNzk0NDk2 + YzEzLjcyMTYgNS44MDYwOCAxNi40MzUyIDEwLjc2MjI0IDMwLjYxNzYgMTQuODY5NTA0LTI4Ljg4NzA0 + LTIzLjAxOTUyLTUyLjg1ODg4LTUwLjcyODk2LTcyLjgwNjQtODEuOTYwOTYtOS44OTE4NC02LjMxODA4 + LTkuMTg1MjgtMTMuMTM3OTItMTguMzI5Ni0yMC40MzkwNGEzMzYuNzE3ODI0IDMzNi43MTc4MjQgMCAw + IDEtNTMuNDAxNi01My4zOTIzODQgMzM1LjczNDc4NCAzMzUuNzM0Nzg0IDAgMCAxLTIwLjQyODgtMjgu + NTY4NTc2Yy0zMy4xMTYxNi01MS44MzQ4OC01Mi4zMTYxNi0xMTMuMzc4MzA0LTUyLjMxNjE2LTE3OS4z + MTI2NCAwLTE4NC4xODY4OCAxNDkuODQxOTItMzM0LjAyODggMzM0LjAyODgtMzM0LjAyODhoNDAwLjQ2 + NDg5NnYxMDAuMjA4NjRINzI0LjU2MTkybDEuNjE3OTIgMi4xOTEzNmg5LjQxMDU2eiIgZmlsbD0iIzA0 + MDAwMCIgLz4NCiAgPHBhdGggZD0iTTEwMjUuMDI0IDI2Ni4zNDI0SDU3OS42NTU2OGMtNTAuOTY1NTA0 + IDAuMDQwOTYtMTAwLjQyMzY4IDEwLjA1NTY4LTE0Ni45OTUyIDI5Ljc1NzQ0LTQ1LjA4NjcyIDE5LjA2 + Njg4LTg1LjU2NTQ0IDQ2LjM1NjQ4LTEyMC4zMzAyNCA4MS4xMjEyOC0zNC43NTQ1NiAzNC43NTQ1Ni02 + Mi4wNDQxNiA3NS4yMzMyOC04MS4xMTEwNCAxMjAuMzItMTkuNzUyOTYgNDYuNjg0MTYtMjkuNzY3Njgg + OTYuMjY2MjQtMjkuNzY3NjggMTQ3LjM2Mzg0IDAgMjkuMzA2ODggMy4yOTcyOCA1OC4xMTIgOS44NDA2 + NCA4Ni4xNTkzNiAxLjUwNTI4IDYuNDgxOTIgMy4xODQ2NCAxMi45MjI4OCA1LjA0ODMyIDE5LjMyMjg4 + YTM3My42MjI3ODQgMzczLjYyMjc4NCAwIDAgMCAxMy44OTU2OCAzOS41MDU5MmMwLjMxNzQ0IDAuNzg5 + NTA0IDAuNjQ1MTIgMS41ODcyIDAuOTgzMDQgMi4zNzU2OGEzNzcuNDExNTg0IDM3Ny40MTE1ODQgMCAw + IDAgMzQuODE2IDY0LjI0NTc2YzEzLjUxNjggMjAuMDE5MiAyOC45NzkyIDM4Ljc0ODE2IDQ2LjI5NTA0 + IDU2LjA3NDI0IDM0Ljc2NDggMzQuNzUzNTM2IDc1LjI0MzUyIDYyLjA1NDQgMTIwLjMzMDI0IDgxLjEy + MTI4IDQ2LjY4NDE2IDE5Ljc0MjcyIDk2LjI2NjI0IDI5Ljc1ODQ2NCAxNDcuMzYzODQgMjkuNzU4NDY0 + IDUxLjA5NzYgMCAxMDAuNjcwNDY0LTEwLjAxNDcyIDE0Ny4zNTM2LTI5Ljc1ODQ2NCA0NS4wODY3Mi0x + OS4wNjY4OCA4NS41NjU0NC00Ni4zNjY3MiAxMjAuMzMwMjQtODEuMTIxMjggMzQuNzU0NTYtMzQuNzY0 + OCA2Mi4wNTU0MjQtNzUuMjQzNTIgODEuMTIxMjgtMTIwLjMzMDI0IDE5Ljc0MjcyLTQ2LjY4NTE4NCAy + OS43NTg0NjQtOTYuMjU2IDI5Ljc1ODQ2NC0xNDcuMzUzNiAwLTY3LjI5NzI4LTE3LjM5Nzc2LTEzMS45 + NjI4OC01MC42MjY1Ni0xODkuMjg2NEgxMDI1LjAyNFYyNjYuMzQyNHogbS00NC41MzM3NiAxNDQuNzQy + NGgtMTU3LjkwMDhsMTguNTEzOTIgMjUuMDQ3MDQgNy43MjA5NiAxMC40NTUwNGM0Mi42NzAwOCA1Ny43 + MzMxMiA2NS4yMTg1NiAxMjYuMzEwNCA2NS4yMTg1NiAxOTguMzE4MDggMCAxODQuMTc2NjQtMTQ5Ljg0 + MTkyIDMzNC4wMjg4LTMzNC4wMTg1NiAzMzQuMDI4OC03OC41MTAwOCAwLTE1MC44MDQ0OC0yNy4yMzk0 + MjQtMjA3Ljg4MjI0LTcyLjc1NTJhMzM2LjQzMTEwNCAzMzYuNDMxMTA0IDAgMCAxLTczLjgzMDQtODEu + OTYwOTYgMzMzLjMzMjQ4IDMzMy4zMzI0OCAwIDAgMS05LjI1Njk2LTE1LjM5MDcyIDMzMS44MDY3MiAz + MzEuODA2NzIgMCAwIDEtMjQuMjg5MjgtNTMuNDczMjhjLTEyLjE1NDg4LTM0LjU4MTUwNC0xOC43Njk5 + Mi03MS43NjE5Mi0xOC43Njk5Mi0xMTAuNDQ4NjQgMC0xODQuMTg2ODggMTQ5Ljg0MTkyLTMzNC4wMjg4 + IDMzNC4wMjg4LTMzNC4wMjg4aDQwMC40NjU5MnYxMDAuMjA4NjR6IG0tMjUwLjA4MTI4LTEwMi40QTM3 + My40MzUzOTIgMzczLjQzNTM5MiAwIDAgMCA3MTEuNjggMjY2LjM0MjRoLTUxLjEwNzg0YTMzMi4wMTg2 + ODggMzMyLjAxODY4OCAwIDAgMSAyMi44MTQ3MiA0NC41MzM3NmgzOC40MjA0OGwtMS42MTc5Mi0yLjE5 + MTM2aDEwLjIxOTUyeiIgZmlsbD0iIzA0MDAwMCIgLz4NCiAgPHBhdGggZD0iTTU5OS4zODcxMzYgNDI5 + LjQyNjY4OGMtMTQyLjAyMDYwOC0xLjcwMzkzNi0xNzYuNjU0MzM2IDc3LjAxNzA4OC0xNzYuNjU0MzM2 + IDc3LjAxNzA4OGw4Mi4wNTEwNzIgODEuODE3NmExMDMuODM0NjI0IDEwMy44MzQ2MjQgMCAwIDAtMjIu + NjI0MjU2IDU0LjcwMjA4bC0xMjEuNTY2MjA4LTEuMzk1NzEyYy0xLjYyNzEzNiAxNDEuOTQyNzg0IDc3 + LjA5Mjg2NCAxNzYuNDI0OTYgNzcuMDkyODY0IDE3Ni40MjQ5Nmw4My4yMTUzNi04My4zNzEwMDhjMTQu + NDg4NTc2IDExLjU0NDU3NiAzMi4xNTQ2MjQgMTkuMzcxMDA4IDUxLjYwMDM4NCAyMS42OTU0ODhsLTEu + NDcxNDg4IDEyMy45Njc0ODhjMTQxLjg2NzAwOCAxLjYyODE2IDE3Ni40OTk3MTItNzcuMDE0MDE2IDE3 + Ni40OTk3MTItNzcuMDE0MDE2bC04Mi45MDUwODgtODIuOTA0MDY0YzEyLjE2NTEyLTE0LjQxMTc3NiAy + MC4zNzg2MjQtMzIuMjMxNDI0IDIzLjE2OTAyNC01MS44MzI4MzJsMTIzLjgxMDgxNiAxLjM5NTcxMmMx + LjYyNjExMi0xNDEuODY5MDU2LTc3LjE2OTY2NC0xNzYuNTAyNzg0LTc3LjE2OTY2NC0xNzYuNTAyNzg0 + bC04MS41MDkzNzYgODEuNTg1MTUyYTEwMi4yMjU5MiAxMDIuMjI1OTIgMCAwIDAtNTQuOTMzNTA0LTI0 + LjI1MDM2OGwxLjM5NDY4OC0xMjEuMzM0Nzg0eiBtNDkuMzU2OCAyMjYuMTY1NzZjLTAuMzg2MDQ4IDM0 + LjY2MzQyNC0yOC43OTU5MDQgNjIuNDQ5NjY0LTYzLjQ1NzI4IDYyLjA2MzYxNi0zNC42NjEzNzYtMC4z + ODcwNzItNjIuNDQ2NTkyLTI4Ljc5NjkyOC02Mi4wNjE1NjgtNjMuNDU4MzA0czI4Ljc5NTkwNC02Mi40 + NDQ1NDQgNjMuNDU3MjgtNjIuMDYyNTkyYzM0LjY1OTMyOCAwLjM4NzA3MiA2Mi40NDU1NjggMjguNzk3 + OTUyIDYyLjA2MTU2OCA2My40NTcyOHoiIGZpbGw9IiMwNDAwMDAiIC8+DQogIDxwYXRoIGQ9Ik01NDUu + NDAxODU2IDY1NC40MjkxODRjLTAuMjM0NDk2IDIzLjE0ODU0NCAxOC4zMzk4NCA0Mi4xMDg5MjggNDEu + NDkyNDggNDIuMzQyNCAyMi4xODkwNTYtMS4xMDE4MjQgMzkuNjc3OTUyLTE5LjI5NjI1NiAzOS45MDQy + NTYtNDEuNTE1MDA4IDAuMjI4MzUyLTIyLjIxMzYzMi0xNi44ODk4NTYtNDAuNzYyMzY4LTM5LjA1MzMx + Mi00Mi4zMTU3NzYtMjMuMTUwNTkyLTAuMjM4NTkyLTQyLjEwNjg4IDE4LjMzOTg0LTQyLjM0MzQyNCA0 + MS40ODgzODR6IiBmaWxsPSIjMDQwMDAwIiAvPg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.Puzzle.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qqGPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.GroupList.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+74WoPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.CommandPrompt.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7p2WPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.Dictionary.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qCtPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.PersonalFolder.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rClPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.GuestUser.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rmXPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgItem32.PassiveAuthentication.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+74yqPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <metadata name="svgImgGroup32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>455, 17</value> + </metadata> + <data name="svgImgGroup32.EMI.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7pyxPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgGroup32.CC.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7p+wPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgGroup32.Manage.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qSSPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgGroup32.ExploitProtectionSettings.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+74mZPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> + <data name="svgImgGroup32.Admin.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz + MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy + NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9 + Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7p+vPC90ZXh0 + Pg0KPC9zdmc+Cw== +</value> + </data> +</root> \ No newline at end of file diff --git a/Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs b/Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs index 02aa44f..89da19b 100644 --- a/Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs +++ b/Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs @@ -42,26 +42,19 @@ nbMin = new DevExpress.XtraBars.Navigation.NavButton(); nbNormal = new DevExpress.XtraBars.Navigation.NavButton(); nbClose = new DevExpress.XtraBars.Navigation.NavButton(); - documentManager1 = new DevExpress.XtraBars.Docking2010.DocumentManager(components); - tabbedView1 = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(components); dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components); - flyoutPanel1 = new DevExpress.Utils.FlyoutPanel(); - flyoutPanelControl1 = new DevExpress.Utils.FlyoutPanelControl(); svgImgItem32 = new DevExpress.Utils.SvgImageCollection(components); accordionControlFunction = new DevExpress.XtraBars.Navigation.AccordionControl(); toolboxItem3 = new DevExpress.XtraToolbox.ToolboxItem(); toolboxItem5 = new DevExpress.XtraToolbox.ToolboxItem(); svgImgGroup32 = new DevExpress.Utils.SvgImageCollection(components); + xtraTabContrl = new DevExpress.XtraTab.XtraTabControl(); ((System.ComponentModel.ISupportInitialize)tileNavPane).BeginInit(); - ((System.ComponentModel.ISupportInitialize)documentManager1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)tabbedView1).BeginInit(); ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)flyoutPanel1).BeginInit(); - flyoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).BeginInit(); ((System.ComponentModel.ISupportInitialize)svgImgItem32).BeginInit(); ((System.ComponentModel.ISupportInitialize)accordionControlFunction).BeginInit(); ((System.ComponentModel.ISupportInitialize)svgImgGroup32).BeginInit(); + ((System.ComponentModel.ISupportInitialize)xtraTabContrl).BeginInit(); SuspendLayout(); // // tileNavPane @@ -79,14 +72,14 @@ tileNavPane.AppearanceDisabled.Options.UseBackColor = true; tileNavPane.AppearanceDisabled.Options.UseBorderColor = true; tileNavPane.AppearanceDisabled.Options.UseForeColor = true; - tileNavPane.AppearanceHovered.BackColor = Color.FromArgb(1, 96, 188); - tileNavPane.AppearanceHovered.BorderColor = Color.FromArgb(1, 96, 188); + tileNavPane.AppearanceHovered.BackColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceHovered.BorderColor = Color.FromArgb(50, 121, 197); tileNavPane.AppearanceHovered.ForeColor = Color.White; tileNavPane.AppearanceHovered.Options.UseBackColor = true; tileNavPane.AppearanceHovered.Options.UseBorderColor = true; tileNavPane.AppearanceHovered.Options.UseForeColor = true; - tileNavPane.AppearanceSelected.BackColor = Color.FromArgb(1, 96, 188); - tileNavPane.AppearanceSelected.BorderColor = Color.FromArgb(1, 96, 188); + tileNavPane.AppearanceSelected.BackColor = Color.FromArgb(50, 121, 197); + tileNavPane.AppearanceSelected.BorderColor = Color.FromArgb(50, 121, 197); tileNavPane.AppearanceSelected.ForeColor = Color.White; tileNavPane.AppearanceSelected.Options.UseBackColor = true; tileNavPane.AppearanceSelected.Options.UseBorderColor = true; @@ -185,10 +178,6 @@ // // nbRapidModeling // - nbRapidModeling.AppearanceHovered.BackColor = Color.FromArgb(1, 96, 188); - nbRapidModeling.AppearanceHovered.BorderColor = Color.FromArgb(1, 96, 188); - nbRapidModeling.AppearanceHovered.Options.UseBackColor = true; - nbRapidModeling.AppearanceHovered.Options.UseBorderColor = true; nbRapidModeling.Caption = "蹇�熷缓妯�"; nbRapidModeling.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbRapidModeling.ImageOptions.SvgImage"); nbRapidModeling.ImageOptions.SvgImageSize = new Size(24, 24); @@ -271,50 +260,10 @@ nbClose.Name = "nbClose"; nbClose.ElementClick += nabClose_ElementClick; // - // documentManager1 - // - documentManager1.ContainerControl = this; - documentManager1.View = tabbedView1; - documentManager1.ViewCollection.AddRange(new DevExpress.XtraBars.Docking2010.Views.BaseView[] { tabbedView1 }); - // - // tabbedView1 - // - tabbedView1.DocumentProperties.AllowPin = true; - tabbedView1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light; - tabbedView1.DocumentSelected += tabbedView1_DocumentSelected; - tabbedView1.DocumentAdded += tabbedView1_DocumentAdded; - tabbedView1.DocumentActivated += tabbedView1_DocumentActivated; - tabbedView1.DocumentClosed += tabbedView1_DocumentClosed; - // // dockManager1 // dockManager1.Form = this; 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" }); - // - // flyoutPanel1 - // - flyoutPanel1.AnimationRate = 100; - flyoutPanel1.Controls.Add(flyoutPanelControl1); - flyoutPanel1.Location = new Point(706, 209); - flyoutPanel1.Margin = new Padding(4, 5, 4, 5); - flyoutPanel1.Name = "flyoutPanel1"; - flyoutPanel1.Options.CloseOnOuterClick = true; - flyoutPanel1.OptionsBeakPanel.BeakLocation = DevExpress.Utils.BeakPanelBeakLocation.Top; - flyoutPanel1.OptionsButtonPanel.ButtonPanelHeight = 47; - flyoutPanel1.ParentForm = this; - flyoutPanel1.Size = new Size(286, 157); - flyoutPanel1.TabIndex = 5; - // - // flyoutPanelControl1 - // - flyoutPanelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; - flyoutPanelControl1.Dock = DockStyle.Fill; - flyoutPanelControl1.FlyoutPanel = flyoutPanel1; - flyoutPanelControl1.Location = new Point(0, 0); - flyoutPanelControl1.Margin = new Padding(4, 5, 4, 5); - flyoutPanelControl1.Name = "flyoutPanelControl1"; - flyoutPanelControl1.Size = new Size(286, 157); - flyoutPanelControl1.TabIndex = 0; // // svgImgItem32 // @@ -373,6 +322,58 @@ svgImgGroup32.Add("ExploitProtectionSettings.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.ExploitProtectionSettings.svg")); svgImgGroup32.Add("Admin.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImgGroup32.Admin.svg")); // + // xtraTabContrl + // + xtraTabContrl.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; + xtraTabContrl.Appearance.BackColor = Color.White; + xtraTabContrl.Appearance.BorderColor = Color.White; + xtraTabContrl.Appearance.ForeColor = Color.Black; + xtraTabContrl.Appearance.Options.UseBackColor = true; + xtraTabContrl.Appearance.Options.UseBorderColor = true; + xtraTabContrl.Appearance.Options.UseForeColor = true; + xtraTabContrl.AppearancePage.Header.BackColor = Color.White; + xtraTabContrl.AppearancePage.Header.BorderColor = Color.White; + xtraTabContrl.AppearancePage.Header.ForeColor = Color.Black; + xtraTabContrl.AppearancePage.Header.Options.UseBackColor = true; + xtraTabContrl.AppearancePage.Header.Options.UseBorderColor = true; + xtraTabContrl.AppearancePage.Header.Options.UseForeColor = true; + xtraTabContrl.AppearancePage.HeaderActive.BackColor = Color.White; + xtraTabContrl.AppearancePage.HeaderActive.BorderColor = Color.White; + xtraTabContrl.AppearancePage.HeaderActive.ForeColor = Color.Black; + xtraTabContrl.AppearancePage.HeaderActive.Options.UseBackColor = true; + xtraTabContrl.AppearancePage.HeaderActive.Options.UseBorderColor = true; + xtraTabContrl.AppearancePage.HeaderActive.Options.UseForeColor = true; + xtraTabContrl.AppearancePage.HeaderDisabled.BackColor = Color.White; + xtraTabContrl.AppearancePage.HeaderDisabled.BorderColor = Color.White; + xtraTabContrl.AppearancePage.HeaderDisabled.ForeColor = Color.Black; + xtraTabContrl.AppearancePage.HeaderDisabled.Options.UseBackColor = true; + xtraTabContrl.AppearancePage.HeaderDisabled.Options.UseBorderColor = true; + xtraTabContrl.AppearancePage.HeaderDisabled.Options.UseForeColor = true; + xtraTabContrl.AppearancePage.HeaderHotTracked.BackColor = Color.White; + xtraTabContrl.AppearancePage.HeaderHotTracked.BorderColor = Color.White; + xtraTabContrl.AppearancePage.HeaderHotTracked.ForeColor = Color.Black; + xtraTabContrl.AppearancePage.HeaderHotTracked.Options.UseBackColor = true; + xtraTabContrl.AppearancePage.HeaderHotTracked.Options.UseBorderColor = true; + xtraTabContrl.AppearancePage.HeaderHotTracked.Options.UseForeColor = true; + xtraTabContrl.AppearancePage.PageClient.BackColor = Color.White; + xtraTabContrl.AppearancePage.PageClient.BorderColor = Color.White; + xtraTabContrl.AppearancePage.PageClient.ForeColor = Color.Black; + xtraTabContrl.AppearancePage.PageClient.Options.UseBackColor = true; + xtraTabContrl.AppearancePage.PageClient.Options.UseBorderColor = true; + xtraTabContrl.AppearancePage.PageClient.Options.UseForeColor = true; + xtraTabContrl.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + xtraTabContrl.BorderStylePage = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + xtraTabContrl.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InActiveTabPageHeader; + xtraTabContrl.Dock = DockStyle.Fill; + xtraTabContrl.Location = new Point(211, 70); + xtraTabContrl.LookAndFeel.SkinMaskColor = Color.White; + xtraTabContrl.LookAndFeel.UseDefaultLookAndFeel = false; + xtraTabContrl.Name = "xtraTabContrl"; + xtraTabContrl.Size = new Size(1876, 1061); + xtraTabContrl.TabIndex = 19; + xtraTabContrl.SelectedPageChanged += xtraTabContrl_SelectedPageChanged; + xtraTabContrl.CloseButtonClick += xtraTabContrl_CloseButtonClick; + // // MainForm // Appearance.BackColor = Color.White; @@ -380,9 +381,9 @@ AutoScaleDimensions = new SizeF(10F, 22F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(2087, 1131); + Controls.Add(xtraTabContrl); Controls.Add(accordionControlFunction); Controls.Add(tileNavPane); - Controls.Add(flyoutPanel1); Margin = new Padding(4, 3, 4, 3); Name = "MainForm"; Text = "Form1"; @@ -393,15 +394,11 @@ Shown += MainForm_Shown; Resize += MainForm_Resize; ((System.ComponentModel.ISupportInitialize)tileNavPane).EndInit(); - ((System.ComponentModel.ISupportInitialize)documentManager1).EndInit(); - ((System.ComponentModel.ISupportInitialize)tabbedView1).EndInit(); ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit(); - ((System.ComponentModel.ISupportInitialize)flyoutPanel1).EndInit(); - flyoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).EndInit(); ((System.ComponentModel.ISupportInitialize)svgImgItem32).EndInit(); ((System.ComponentModel.ISupportInitialize)accordionControlFunction).EndInit(); ((System.ComponentModel.ISupportInitialize)svgImgGroup32).EndInit(); + ((System.ComponentModel.ISupportInitialize)xtraTabContrl).EndInit(); ResumeLayout(false); } @@ -409,15 +406,11 @@ private DevExpress.XtraBars.Navigation.TileNavPane tileNavPane; private DevExpress.XtraBars.Navigation.NavButton nbTitle; - private DevExpress.XtraBars.Docking2010.DocumentManager documentManager1; - private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView1; private DevExpress.XtraBars.Navigation.NavButton nbMin; private DevExpress.XtraBars.Navigation.NavButton nbNormal; private DevExpress.XtraBars.Navigation.NavButton nbClose; private DevExpress.XtraBars.Navigation.NavButton nbBasicData; private DevExpress.XtraBars.Navigation.NavButton nbRapidModeling; - private DevExpress.Utils.FlyoutPanel flyoutPanel1; - private DevExpress.Utils.FlyoutPanelControl flyoutPanelControl1; private DevExpress.Utils.SvgImageCollection svgImgItem32; private DevExpress.XtraBars.Navigation.NavButton nbModelAnalysis; private DevExpress.XtraBars.Navigation.NavButton nbModelEvaluation; @@ -429,5 +422,6 @@ private DevExpress.Utils.SvgImageCollection svgImgGroup32; private DevExpress.XtraBars.Navigation.NavButton navButton2; private DevExpress.XtraBars.Navigation.NavButton navButton3; + private DevExpress.XtraTab.XtraTabControl xtraTabContrl; } } diff --git a/Desktop/HStation.Desktop.PBS.Core/MainForm.cs b/Desktop/HStation.Desktop.PBS.Core/MainForm.cs index 3cead9d..e379baa 100644 --- a/Desktop/HStation.Desktop.PBS.Core/MainForm.cs +++ b/Desktop/HStation.Desktop.PBS.Core/MainForm.cs @@ -4,12 +4,10 @@ using DevExpress.XtraBars.Navigation; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraEditors; -using HStation.WinFrmUI; -using HStation.WinFrmUI.Assets; -using HStation.WinFrmUI.Basic; -using HStation.WinFrmUI.PBS; -using HStation.WinFrmUI.WE; +using DevExpress.XtraTab; +using DevExpress.XtraTab.ViewInfo; using HStation.WinFrmUI.Xhs.PumpProduct; +using System.Drawing.Drawing2D; using System.IO; using Yw.WinFrmUI; using Yw.WinFrmUI.Page; @@ -30,29 +28,21 @@ this.accordionControlFunction.Appearance.AccordionControl.BackColor = Color.White; this.accordionControlFunction.Appearance.AccordionControl.BorderColor = Color.White; - //this.accordionControlFunction.ResizeMode = AccordionControlResizeMode.None; this.accordionControlFunction.AllowHtmlText = true; this.accordionControlFunction.HtmlTemplates.HamburgerHeaderPanel.Template = @"<div class='hamburger-header-background'></div>"; this.accordionControlFunction.HtmlTemplates.HamburgerHeaderPanel.Styles = @".hamburger-header-background {background-color: #ffffff; height: 100%;width: 100%;}"; - this.tabbedView1.Style = DockingViewStyle.Classic; - this.tabbedView1.Appearance.BackColor = Color.White; - this.tabbedView1.AppearancePage.Header.BackColor = Color.White; - this.tabbedView1.AppearancePage.HeaderSelected.Font = new Font("微软雅黑", 10f, FontStyle.Bold); + this.xtraTabContrl.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True; } + HatchBrush myHatchBrush1 = new HatchBrush(HatchStyle.BackwardDiagonal, Color.LightGray, Color.AliceBlue); private void TabbedView1_CustomDrawTabHeader(object sender, DevExpress.XtraTab.TabHeaderCustomDrawEventArgs e) { - // 阻止默认绘制 - e.Handled = true; - - // 设置圆角为0,去除圆角效果 - //e.Cache.RoundRect = false; - - // 使用默认绘制方法绘制其他元素,如背景、文本和按钮 - e.DefaultDrawBackground(); + e.Cache.FillRectangle(myHatchBrush1, e.Bounds); e.DefaultDrawText(); + e.DefaultDrawImage(); e.DefaultDrawButtons(); + e.Handled = true; } #region TileNavPane 相关处理 @@ -122,9 +112,9 @@ if (btn.Tag is not string tag) return; PageGuid pguid = null; - if (this.tabbedView1.ActiveDocument != null) + if (this.xtraTabContrl.SelectedTabPage != null) { - pguid = this.tabbedView1.ActiveDocument.Tag as PageGuid; + pguid = this.xtraTabContrl.SelectedTabPage.Tag as PageGuid; } SelectModular(tag, pguid); } @@ -188,40 +178,26 @@ #region TabbedView 相关事件处理程序 //选中 - private void tabbedView1_DocumentSelected(object sender, DocumentEventArgs e) + private void xtraTabContrl_SelectedPageChanged(object sender, TabPageChangedEventArgs e) { - if (e.Document == null) + if (e.Page == null) return; - var pguid = e.Document.Tag as PageGuid; + var pguid = e.Page.Tag as PageGuid; if (pguid == null) return; SelectModular(pguid.Modular, pguid); } - //添加 - private void tabbedView1_DocumentAdded(object sender, DocumentEventArgs e) + //关闭 + private void xtraTabContrl_CloseButtonClick(object sender, EventArgs e) { - if (this.tabbedView1.Documents.Count > 1) + var arg = e as ClosePageButtonEventArgs; + var last_index = this.xtraTabContrl.SelectedTabPageIndex - 1; + this.xtraTabContrl.TabPages.Remove(arg.Page as XtraTabPage); + if (last_index > 0) { - if (!this.tabbedView1.DocumentGroupProperties.ShowTabHeader) - { - } + this.xtraTabContrl.SelectedTabPageIndex = last_index; } - } - - //激活 - private void tabbedView1_DocumentActivated(object sender, DocumentEventArgs e) - { - var page = e.Document.Control as DocumentPage; - if (page == null) - { - return; - } - } - - //关闭 此时控件已经为空 - private void tabbedView1_DocumentClosed(object sender, DocumentEventArgs e) - { } #endregion TabbedView 相关事件处理程序 @@ -256,9 +232,9 @@ } } - if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + if (this.xtraTabContrl.TabPages != null && this.xtraTabContrl.TabPages.Count > 0) { - foreach (BaseDocument doc in this.tabbedView1.Documents) + foreach (XtraTabPage doc in this.xtraTabContrl.TabPages) { if (doc.Tag != null) { @@ -268,7 +244,7 @@ { if (isActivePage) { - this.tabbedView1.Controller.Activate(doc); + this.xtraTabContrl.SelectedTabPage = doc; } return true; } @@ -304,12 +280,12 @@ } } - if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + if (this.xtraTabContrl.TabPages != null && this.xtraTabContrl.TabPages.Count > 0) { - var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + var doc = this.xtraTabContrl.TabPages.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); if (doc != null) { - var page = doc.Control as DocumentPage; + var page = doc.Controls[0] as DocumentPage; if (page != null) { page.RefreshData(); @@ -346,16 +322,16 @@ } } - if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + if (this.xtraTabContrl.TabPages != null && this.xtraTabContrl.TabPages.Count > 0) { - var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + var doc = this.xtraTabContrl.TabPages.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); if (doc != null) { - doc.Caption = title.Caption; + doc.Text = title.Caption; doc.ImageOptions.Image = title.HeaderImage; doc.ImageOptions.SvgImage = title.HeaderSvgImage; doc.ImageOptions.SvgImageSize = title.SvgImageSize; - var page = doc.Control as DocumentPage; + var page = doc.Controls[0] as DocumentPage; if (page != null) { page.PageTitle = title; @@ -413,20 +389,20 @@ case eMoudingType.Tab: { - this.tabbedView1.BeginUpdate(); - var doc = this.tabbedView1.AddDocument(page); - doc.Footer = Directory.GetCurrentDirectory(); + var sel_page = new XtraTabPage(); + page.Dock = DockStyle.Fill; + sel_page.Controls.Add(page); + this.xtraTabContrl.TabPages.Add(sel_page); if (page.PageTitle != null) { - doc.Caption = page.PageTitle.Caption; - doc.ImageOptions.Image = page.PageTitle.HeaderImage; - doc.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; - doc.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; - doc.Properties.AllowClose = page.PageTitle.AllowClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; + sel_page.Text = page.PageTitle.Caption; + sel_page.ImageOptions.Image = page.PageTitle.HeaderImage; + sel_page.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage; + sel_page.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize; + //doc.Properties.AllowClose = page.PageTitle.AllowClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; } - doc.Tag = pguid; - this.tabbedView1.EndUpdate(); - this.tabbedView1.Controller.Activate(doc); + sel_page.Tag = pguid; + this.xtraTabContrl.SelectedTabPage = sel_page; } break; @@ -458,12 +434,12 @@ case eMoudingType.Tab: { - if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0) + if (this.xtraTabContrl.TabPages != null && this.xtraTabContrl.TabPages.Count > 0) { - var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); + var doc = this.xtraTabContrl.TabPages.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString()); if (doc != null) { - this.tabbedView1.Controller.Close(doc);//会触发正在关闭和关闭事件 + this.xtraTabContrl.TabPages.Remove(doc); } } } @@ -492,7 +468,7 @@ { if (tag == modular) { - btn.Appearance.BackColor = Color.FromArgb(1, 96, 188); + btn.Appearance.BackColor = Color.FromArgb(50, 121, 197); btn.Appearance.ForeColor = Color.White; } else @@ -586,6 +562,7 @@ return false; } + //获取 private List<AccordionElement> GetAccordionElementList(string modular) { @@ -672,8 +649,6 @@ { if (!IsExistPage(guid, true)) { - var page = new WaterUtensilMainPage(); - CreatePage(page, guid); } }), Get("用水当量",new PageGuid() @@ -707,8 +682,12 @@ { if (!IsExistPage(guid, true)) { - var page = new AssetsManufacturerMainPage(); - CreatePage(page, guid); + var page = new DocumentPage(); + page.PageGuid = guid; + page.PageTitle.Caption = caption; + page.PageTitle.HeaderSvgImage = svg; + page.PageTitle.SvgImageSize = size; + CreatePage(page, guid); } }), Get("水泵管理",new PageGuid() @@ -737,9 +716,7 @@ { if (!IsExistPage(guid, true)) { - var page = new PackageManageMainPage(); - CreatePage(page, guid); - } + } }) } }; @@ -761,9 +738,7 @@ { if (!IsExistPage(guid, true)) { - var page=new SysTypeManageMainPanel(); - CreatePage(page,guid); - } + } }), Get("分类管理",new PageGuid() { @@ -774,8 +749,6 @@ { if (!IsExistPage(guid, true)) { - var page=new SysCatalogManageMainPanel(); - CreatePage(page,guid); } }), Get("属性管理",new PageGuid() @@ -787,8 +760,6 @@ { if (!IsExistPage(guid, true)) { - var page=new SysPropManageMainPanel(); - CreatePage(page,guid); } }), Get("字典类型",new PageGuid() @@ -800,8 +771,6 @@ { if (!IsExistPage(guid, true)) { - var page=new HStation.WinFrmUI.Dict.DictManageMainPanel(); - CreatePage(page,guid); } }), } @@ -881,5 +850,8 @@ } #endregion Modular + + + } } \ No newline at end of file diff --git a/Desktop/HStation.Desktop.PBS.Core/MainForm.resx b/Desktop/HStation.Desktop.PBS.Core/MainForm.resx index a2c415f..b33e916 100644 --- a/Desktop/HStation.Desktop.PBS.Core/MainForm.resx +++ b/Desktop/HStation.Desktop.PBS.Core/MainForm.resx @@ -264,14 +264,11 @@ LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs= </value> </data> - <metadata name="documentManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> - <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>259, 17</value> - </metadata> <metadata name="svgImgItem32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>659, 17</value> + <value>417, 17</value> </metadata> <data name="svgImgItem32.MapPin.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> @@ -619,7 +616,7 @@ </value> </data> <metadata name="svgImgGroup32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>455, 17</value> + <value>213, 17</value> </metadata> <data name="svgImgGroup32.EMI.svg" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.Designer.cs index 879d8b1..b02c353 100644 --- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.Designer.cs @@ -182,10 +182,11 @@ // // dockManager1 // + dockManager1.AllowGlyphSkinning = true; dockManager1.DockingOptions.ShowCloseButton = false; dockManager1.Form = this; dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanel1 }); - dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light; + dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Classic; 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" }); // // dockPanel1 @@ -204,10 +205,10 @@ // dockPanel1_Container // dockPanel1_Container.Controls.Add(AssetsPumpSeriesTreeListCtrl1); - dockPanel1_Container.Location = new Point(0, 34); + dockPanel1_Container.Location = new Point(4, 38); dockPanel1_Container.Margin = new Padding(4, 5, 4, 5); dockPanel1_Container.Name = "dockPanel1_Container"; - dockPanel1_Container.Size = new Size(201, 793); + dockPanel1_Container.Size = new Size(191, 785); dockPanel1_Container.TabIndex = 0; // // AssetsPumpSeriesTreeListCtrl1 @@ -218,7 +219,7 @@ AssetsPumpSeriesTreeListCtrl1.Location = new Point(0, 0); AssetsPumpSeriesTreeListCtrl1.Margin = new Padding(6, 8, 6, 8); AssetsPumpSeriesTreeListCtrl1.Name = "AssetsPumpSeriesTreeListCtrl1"; - AssetsPumpSeriesTreeListCtrl1.Size = new Size(201, 793); + AssetsPumpSeriesTreeListCtrl1.Size = new Size(191, 785); AssetsPumpSeriesTreeListCtrl1.TabIndex = 0; // // gridControl1 diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.cs index e8c6307..b2a0c2d 100644 --- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/PumpProductMainPage.cs @@ -15,6 +15,8 @@ this.gridView1.RegistCustomDrawRowIndicator(); this.AssetsPumpSeriesTreeListCtrl1.FocusedChangedEvent += AssetsPumpSeriesTreeListCtrl1_FocusedChangedEvent; this.AssetsPumpSeriesTreeListCtrl1.AddAssetsPumpMain += BtnAdd_ItemClickAsync; + this.dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light; + } private readonly List<AssetsPumpMainViewModel> _allBindingList = new(); diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs index b3bb3ab..b9eb1fb 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs @@ -13,12 +13,22 @@ public SimulationWorkingHelper() { } /// <summary> + /// 姘村姏淇℃伅 + /// </summary> + public Yw.Model.HydroModelInfo HydroInfo + { + get { return _hydroInfo; } + private set { _hydroInfo = value; } + } + private Yw.Model.HydroModelInfo _hydroInfo = null; + + /// <summary> /// 宸ュ喌 /// </summary> public HydroWorkingVmo Working { get { return _working; } - set { _working = value; } + private set { _working = value; } } private HydroWorkingVmo _working = null; @@ -28,7 +38,7 @@ public HydroCheckResult CheckResult { get { return _checkResult; } - set { _checkResult = value; } + private set { _checkResult = value; } } private HydroCheckResult _checkResult = null; @@ -38,19 +48,35 @@ public HydroCalcuResult CalcuResult { get { return _calcuResult; } - set { _calcuResult = value; } + private set { _calcuResult = value; } } private HydroCalcuResult _calcuResult = null; /// <summary> /// 鍒濆鍖栨暟鎹� /// </summary> - public void InitialData(HydroWorkingVmo working, HydroCheckResult checkResult, HydroCalcuResult calcuResult) + public void InitialData + ( + Yw.Model.HydroModelInfo hydroInfo, + HydroWorkingVmo working, + HydroCheckResult checkResult, + HydroCalcuResult calcuResult + ) { + this.HydroInfo = hydroInfo; this.Working = working; this.CheckResult = checkResult; this.CalcuResult = calcuResult; } + /// <summary> + /// 閲嶇疆宸ュ喌 + /// </summary> + public void ResetWorking(HydroWorkingVmo working) + { + this.Working = working; + } + + } } 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 f97b87c..64cf438 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 @@ -1,7 +1,9 @@ 锘縰sing DevExpress.Diagram.Core.Native; using DevExpress.Mvvm.Native; +using DevExpress.Utils.MVVM; using DevExpress.XtraMap; using HStation.WinFrmUI.PhartRelation; +using Mapster; using NPOI.SS.Formula.Functions; using System.Diagnostics; using Yw.Hydro; @@ -2079,6 +2081,8 @@ _hydroInfo.UpdateWorkingInfo(vm.WorkingInfo); allMonitorValueList.UpdateMonitorValue(vm.MonitorInfo); + var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + var working = new HydroWorkingVmo(); working.ModelID = _hydroInfo.ID; working.Name = working.Name; @@ -2088,14 +2092,12 @@ working.Description = working.Description; var workingHelper = GetWorkingHelper(); - - //鏍¢獙 var checkResult = _hydroInfo.Check(); if (!checkResult.Succeed) { ShowCheckCtrl(checkResult); - workingHelper.InitialData(working, checkResult, null); + workingHelper.InitialData(hydroInfo, working, checkResult, null); TipFormHelper.ShowError("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); return; } @@ -2104,7 +2106,7 @@ //await Task.Delay(3000); var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); WaitFormHelper.HideWaitForm(); - workingHelper.InitialData(working, checkResult, calcuResult); + workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) { if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0) @@ -2206,7 +2208,8 @@ dlg.SetBindingData(workingHelper.Working); dlg.ReloadDataEvent += (rhs) => { - workingHelper.Working = rhs; + this.barBtnAddWorking.Enabled = false; + workingHelper.ResetWorking(rhs); this.AppendWorkingEvent?.Invoke(rhs); }; dlg.ShowDialog(); @@ -2405,7 +2408,10 @@ private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + var workingHelper = GetWorkingHelper(); + var dlg = new SimulationSingleWorkingEnergyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.ShowDialog(); } #endregion @@ -2414,25 +2420,25 @@ private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - //if (_visual == null) - //{ - // XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); - // return; - //} - //if (!(_visual is Yw.Model.HydroNodeInfo)) - //{ - // XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); - // return; - //} - //var network = _hydroInfo.ToNetwork(); - //var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - //var allNodeList = network.GetAllNodes(); - //var node = allNodeList.Find(x => x.Id == _visual.Code); - //var allPathList = network.AnalyzeDownstreamPath(node, calcuResult); - //var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult); - //var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList(); + if (_visual == null) + { + XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); + return; + } + if (!(_visual is Yw.Model.HydroNodeInfo)) + { + XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); + return; + } + var network = _hydroInfo.ToNetwork(); + var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.Simple); + var allNodeList = network.GetAllNodes(); + var node = allNodeList.Find(x => x.Id == _visual.Code); + var allPathList = network.AnalyzeDownstreamPath(node, calcuResult); + var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult); + var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList(); var dlg = new HydroSingleLossCurveDlg(); - dlg.SetBindingData(null); + dlg.SetBindingData(allLossList); dlg.ShowDialog(); } @@ -2442,8 +2448,17 @@ private void barBtnWorkingLossScale_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + var workingHelper = GetWorkingHelper(); + if (workingHelper.Working == null) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var network = workingHelper.HydroInfo.ToNetwork(); + var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); + var allEnergyPointList = network.AnalyzeEnergy(calcuResult); var dlg = new HydroSingleLossScaleDlg(); - dlg.SetBindingData(); + dlg.SetBindingData(workingHelper.HydroInfo, allEnergyPointList); dlg.ShowDialog(); } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs index e234b70..9c9ac6a 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs @@ -1553,7 +1553,7 @@ dlg.SetBindingData(workingHelper.Working); dlg.ReloadDataEvent += (rhs) => { - workingHelper.Working = rhs; + workingHelper.ResetWorking(rhs); }; dlg.ShowDialog(); } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.Designer.cs new file mode 100644 index 0000000..316b787 --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.Designer.cs @@ -0,0 +1,354 @@ +锘縩amespace HStation.WinFrmUI +{ + partial class SimulationSingleWorkingEnergyCtrl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + panelControl1 = new PanelControl(); + singlePumpCalcCtrl1 = new Xhs.SinglePumpCalcCtrl(); + txtE = new TextEdit(); + txtP = new TextEdit(); + txtH = new TextEdit(); + txtQ = new TextEdit(); + hydroPumpRunStatusListCtrl1 = new HydroPumpRunListCtrl(); + hydroEnergyTotalViewCtrl1 = new HydroEnergyTotalViewCtrl(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + splitterItem1 = new DevExpress.XtraLayout.SplitterItem(); + layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + groupForSinglePumpInfo = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)panelControl1).BeginInit(); + panelControl1.SuspendLayout(); + ((ISupportInitialize)txtE.Properties).BeginInit(); + ((ISupportInitialize)txtP.Properties).BeginInit(); + ((ISupportInitialize)txtH.Properties).BeginInit(); + ((ISupportInitialize)txtQ.Properties).BeginInit(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)splitterItem1).BeginInit(); + ((ISupportInitialize)layoutControlGroup2).BeginInit(); + ((ISupportInitialize)layoutControlItem2).BeginInit(); + ((ISupportInitialize)groupForSinglePumpInfo).BeginInit(); + ((ISupportInitialize)layoutControlItem4).BeginInit(); + ((ISupportInitialize)layoutControlItem5).BeginInit(); + ((ISupportInitialize)layoutControlItem6).BeginInit(); + ((ISupportInitialize)layoutControlItem7).BeginInit(); + ((ISupportInitialize)emptySpaceItem1).BeginInit(); + ((ISupportInitialize)layoutControlGroup1).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)layoutControlItem3).BeginInit(); + SuspendLayout(); + // + // layoutControl1 + // + layoutControl1.Controls.Add(panelControl1); + layoutControl1.Controls.Add(txtE); + layoutControl1.Controls.Add(txtP); + layoutControl1.Controls.Add(txtH); + layoutControl1.Controls.Add(txtQ); + layoutControl1.Controls.Add(hydroPumpRunStatusListCtrl1); + layoutControl1.Controls.Add(hydroEnergyTotalViewCtrl1); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 0); + layoutControl1.Name = "layoutControl1"; + layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1056, 309, 650, 400); + layoutControl1.Root = Root; + layoutControl1.Size = new Size(1012, 603); + layoutControl1.TabIndex = 0; + layoutControl1.Text = "layoutControl1"; + // + // panelControl1 + // + panelControl1.BorderStyle = BorderStyles.Simple; + panelControl1.Controls.Add(singlePumpCalcCtrl1); + panelControl1.Location = new Point(232, 71); + panelControl1.Name = "panelControl1"; + panelControl1.Padding = new Padding(1); + panelControl1.Size = new Size(778, 530); + panelControl1.TabIndex = 11; + // + // singlePumpCalcCtrl1 + // + singlePumpCalcCtrl1.Dock = DockStyle.Fill; + singlePumpCalcCtrl1.Location = new Point(3, 3); + singlePumpCalcCtrl1.Margin = new Padding(2, 2, 2, 2); + singlePumpCalcCtrl1.Name = "singlePumpCalcCtrl1"; + singlePumpCalcCtrl1.Size = new Size(772, 524); + singlePumpCalcCtrl1.TabIndex = 0; + // + // txtE + // + txtE.Location = new Point(734, 35); + txtE.Name = "txtE"; + txtE.Properties.ReadOnly = true; + txtE.Properties.UseReadOnlyAppearance = false; + txtE.Size = new Size(106, 20); + txtE.StyleController = layoutControl1; + txtE.TabIndex = 5; + // + // txtP + // + txtP.Location = new Point(584, 35); + txtP.Name = "txtP"; + txtP.Properties.ReadOnly = true; + txtP.Properties.UseReadOnlyAppearance = false; + txtP.Size = new Size(106, 20); + txtP.StyleController = layoutControl1; + txtP.TabIndex = 4; + // + // txtH + // + txtH.Location = new Point(434, 35); + txtH.Name = "txtH"; + txtH.Properties.ReadOnly = true; + txtH.Properties.UseReadOnlyAppearance = false; + txtH.Size = new Size(106, 20); + txtH.StyleController = layoutControl1; + txtH.TabIndex = 3; + // + // txtQ + // + txtQ.Location = new Point(284, 35); + txtQ.Name = "txtQ"; + txtQ.Properties.ReadOnly = true; + txtQ.Properties.UseReadOnlyAppearance = false; + txtQ.Size = new Size(106, 20); + txtQ.StyleController = layoutControl1; + txtQ.TabIndex = 2; + // + // hydroPumpRunStatusListCtrl1 + // + hydroPumpRunStatusListCtrl1.Location = new Point(5, 148); + hydroPumpRunStatusListCtrl1.Name = "hydroPumpRunStatusListCtrl1"; + hydroPumpRunStatusListCtrl1.Size = new Size(210, 450); + hydroPumpRunStatusListCtrl1.TabIndex = 6; + // + // hydroEnergyTotalViewCtrl1 + // + hydroEnergyTotalViewCtrl1.Location = new Point(14, 35); + hydroEnergyTotalViewCtrl1.Name = "hydroEnergyTotalViewCtrl1"; + hydroEnergyTotalViewCtrl1.Size = new Size(192, 73); + hydroEnergyTotalViewCtrl1.TabIndex = 0; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { splitterItem1, layoutControlGroup2, groupForSinglePumpInfo, layoutControlGroup1, layoutControlItem3 }); + Root.Name = "Root"; + Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + Root.Size = new Size(1012, 603); + Root.TextVisible = false; + // + // splitterItem1 + // + splitterItem1.AllowHotTrack = true; + splitterItem1.Location = new Point(220, 0); + splitterItem1.Name = "splitterItem1"; + splitterItem1.Size = new Size(10, 603); + // + // layoutControlGroup2 + // + layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 }); + layoutControlGroup2.Location = new Point(0, 122); + layoutControlGroup2.Name = "layoutControlGroup2"; + layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + layoutControlGroup2.Size = new Size(220, 481); + layoutControlGroup2.Text = "姘存车鍒楄〃"; + // + // layoutControlItem2 + // + layoutControlItem2.Control = hydroPumpRunStatusListCtrl1; + layoutControlItem2.Location = new Point(0, 0); + layoutControlItem2.Name = "layoutControlItem2"; + layoutControlItem2.Size = new Size(214, 454); + layoutControlItem2.TextSize = new Size(0, 0); + layoutControlItem2.TextVisible = false; + // + // groupForSinglePumpInfo + // + groupForSinglePumpInfo.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4, layoutControlItem5, layoutControlItem6, layoutControlItem7, emptySpaceItem1 }); + groupForSinglePumpInfo.Location = new Point(230, 0); + groupForSinglePumpInfo.Name = "groupForSinglePumpInfo"; + groupForSinglePumpInfo.Size = new Size(782, 69); + groupForSinglePumpInfo.Text = "姘存车"; + // + // layoutControlItem4 + // + layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem4.Control = txtQ; + layoutControlItem4.Location = new Point(0, 0); + layoutControlItem4.MaxSize = new Size(150, 24); + layoutControlItem4.MinSize = new Size(150, 24); + layoutControlItem4.Name = "layoutControlItem4"; + layoutControlItem4.Size = new Size(150, 24); + layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem4.Text = "娴侀噺:"; + layoutControlItem4.TextSize = new Size(28, 14); + // + // layoutControlItem5 + // + layoutControlItem5.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem5.Control = txtH; + layoutControlItem5.Location = new Point(150, 0); + layoutControlItem5.MaxSize = new Size(150, 24); + layoutControlItem5.MinSize = new Size(150, 24); + layoutControlItem5.Name = "layoutControlItem5"; + layoutControlItem5.Size = new Size(150, 24); + layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem5.Text = "鎵▼:"; + layoutControlItem5.TextSize = new Size(28, 14); + // + // layoutControlItem6 + // + layoutControlItem6.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem6.Control = txtP; + layoutControlItem6.Location = new Point(300, 0); + layoutControlItem6.MaxSize = new Size(150, 24); + layoutControlItem6.MinSize = new Size(150, 24); + layoutControlItem6.Name = "layoutControlItem6"; + layoutControlItem6.Size = new Size(150, 24); + layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem6.Text = "鍔熺巼:"; + layoutControlItem6.TextSize = new Size(28, 14); + // + // layoutControlItem7 + // + layoutControlItem7.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem7.Control = txtE; + layoutControlItem7.Location = new Point(450, 0); + layoutControlItem7.MaxSize = new Size(150, 24); + layoutControlItem7.MinSize = new Size(150, 24); + layoutControlItem7.Name = "layoutControlItem7"; + layoutControlItem7.Size = new Size(150, 24); + layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem7.Text = "鏁堢巼:"; + layoutControlItem7.TextSize = new Size(28, 14); + // + // emptySpaceItem1 + // + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new Point(600, 0); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.Size = new Size(158, 24); + emptySpaceItem1.TextSize = new Size(0, 0); + // + // layoutControlGroup1 + // + layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 }); + layoutControlGroup1.Location = new Point(0, 0); + layoutControlGroup1.Name = "layoutControlGroup1"; + layoutControlGroup1.Size = new Size(220, 122); + layoutControlGroup1.Text = "鎬昏兘鑰�"; + // + // layoutControlItem1 + // + layoutControlItem1.Control = hydroEnergyTotalViewCtrl1; + layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.MinSize = new Size(110, 77); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Size = new Size(196, 77); + layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem1.TextSize = new Size(0, 0); + layoutControlItem1.TextVisible = false; + // + // layoutControlItem3 + // + layoutControlItem3.Control = panelControl1; + layoutControlItem3.Location = new Point(230, 69); + layoutControlItem3.Name = "layoutControlItem3"; + layoutControlItem3.Size = new Size(782, 534); + layoutControlItem3.TextSize = new Size(0, 0); + layoutControlItem3.TextVisible = false; + // + // SimulationSingleWorkingEnergyCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(layoutControl1); + Name = "SimulationSingleWorkingEnergyCtrl"; + Size = new Size(1012, 603); + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)panelControl1).EndInit(); + panelControl1.ResumeLayout(false); + ((ISupportInitialize)txtE.Properties).EndInit(); + ((ISupportInitialize)txtP.Properties).EndInit(); + ((ISupportInitialize)txtH.Properties).EndInit(); + ((ISupportInitialize)txtQ.Properties).EndInit(); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)splitterItem1).EndInit(); + ((ISupportInitialize)layoutControlGroup2).EndInit(); + ((ISupportInitialize)layoutControlItem2).EndInit(); + ((ISupportInitialize)groupForSinglePumpInfo).EndInit(); + ((ISupportInitialize)layoutControlItem4).EndInit(); + ((ISupportInitialize)layoutControlItem5).EndInit(); + ((ISupportInitialize)layoutControlItem6).EndInit(); + ((ISupportInitialize)layoutControlItem7).EndInit(); + ((ISupportInitialize)emptySpaceItem1).EndInit(); + ((ISupportInitialize)layoutControlGroup1).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)layoutControlItem3).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private TextEdit txtE; + private TextEdit txtP; + private TextEdit txtH; + private TextEdit txtQ; + private HydroPumpRunListCtrl hydroPumpRunStatusListCtrl1; + private HydroEnergyTotalViewCtrl hydroEnergyTotalViewCtrl1; + private DevExpress.XtraLayout.SplitterItem splitterItem1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlGroup groupForSinglePumpInfo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private PanelControl panelControl1; + private Xhs.SinglePumpCalcCtrl singlePumpCalcCtrl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + } +} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.cs new file mode 100644 index 0000000..834e2b2 --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.cs @@ -0,0 +1,109 @@ +锘縰sing DevExpress.XtraEditors; +using NPOI.OpenXmlFormats.Dml; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Yw.EPAnet; + +namespace HStation.WinFrmUI +{ + public partial class SimulationSingleWorkingEnergyCtrl : DevExpress.XtraEditors.XtraUserControl + { + public SimulationSingleWorkingEnergyCtrl() + { + InitializeComponent(); + this.layoutControl1.SetupLayoutControl(); + this.hydroPumpRunStatusListCtrl1.SelectedChangedEvent += HydroPumpRunStatusListCtrl1_SelectedChangedEvent; + } + + private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private Dictionary<string, HydroCalcuVisualResult> _allCalcuResultVisualDict = null;//鎵�鏈夎绠楃粨鏋滃彲瑙佸瓧鍏� + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) + { + if (hydroInfo == null) + { + return; + } + if (calcuResult == null) + { + return; + } + if (!calcuResult.Succeed) + { + return; + } + var allCalcuResultVisualDict = calcuResult.GetVisualDict(); + SetBindingData(hydroInfo, allCalcuResultVisualDict); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict) + { + if (hydroInfo == null) + { + return; + } + if (allCalcuResultVisualDict == null || allCalcuResultVisualDict.Count < 1) + { + return; + } + _hydroInfo = hydroInfo; + _allCalcuResultVisualDict = allCalcuResultVisualDict; + this.hydroEnergyTotalViewCtrl1.SetBindingData(hydroInfo, allCalcuResultVisualDict); + this.hydroPumpRunStatusListCtrl1.SetBindingData(hydroInfo); + } + + //娉甸�夋嫨鏀瑰彉 + private void HydroPumpRunStatusListCtrl1_SelectedChangedEvent(Yw.Model.HydroPumpInfo pump) + { + if (_hydroInfo == null) + { + return; + } + if (_allCalcuResultVisualDict == null || _allCalcuResultVisualDict.Count < 1) + { + return; + } + if (pump == null) + { + return; + } + this.groupForSinglePumpInfo.Text = pump.Name; + this.txtQ.EditValue = null; + this.txtH.EditValue = null; + this.txtP.EditValue = null; + this.txtE.EditValue = null; + if (_allCalcuResultVisualDict.ContainsKey(pump.Code)) + { + var calcuResult = _allCalcuResultVisualDict[pump.Code] as HydroCalcuPumpResult; + if (calcuResult != null) + { + if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open) + { + this.txtQ.EditValue = calcuResult.CalcuQ.HasValue ? $"{Math.Round(calcuResult.CalcuQ.Value, 1)}m鲁/h" : null; + this.txtH.EditValue = calcuResult.CalcuH.HasValue ? $"{Math.Round(calcuResult.CalcuH.Value, 2)}m" : null; + this.txtP.EditValue = calcuResult.CalcuP.HasValue ? $"{Math.Round(calcuResult.CalcuP.Value, 1)}kW" : null; + this.txtE.EditValue = calcuResult.CalcuE.HasValue ? $"{Math.Round(calcuResult.CalcuE.Value, 1)}%" : null; + } + var matching = AssetsMatchingParasHelper.Create(_hydroInfo, pump, _allCalcuResultVisualDict.Values.ToList()); + this.singlePumpCalcCtrl1.SetBindindData(matching); + } + } + + + } + + } +} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.resx @@ -0,0 +1,120 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.Designer.cs new file mode 100644 index 0000000..4678e50 --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.Designer.cs @@ -0,0 +1,94 @@ +锘縩amespace HStation.WinFrmUI +{ + partial class SimulationSingleWorkingEnergyDlg + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl(); + ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); + ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); + simulationSingleWorkingEnergyCtrl1 = new SimulationSingleWorkingEnergyCtrl(); + ((ISupportInitialize)ribbon).BeginInit(); + SuspendLayout(); + // + // ribbon + // + ribbon.ExpandCollapseItem.Id = 0; + ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem }); + ribbon.Location = new Point(0, 0); + ribbon.MaxItemId = 1; + ribbon.Name = "ribbon"; + ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); + ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left; + ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False; + ribbon.Size = new Size(1039, 32); + // + // ribbonPage1 + // + ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 }); + ribbonPage1.Name = "ribbonPage1"; + ribbonPage1.Text = "ribbonPage1"; + // + // ribbonPageGroup1 + // + ribbonPageGroup1.Name = "ribbonPageGroup1"; + ribbonPageGroup1.Text = "ribbonPageGroup1"; + // + // simulationSingleWorkingEnergyCtrl1 + // + simulationSingleWorkingEnergyCtrl1.Dock = DockStyle.Fill; + simulationSingleWorkingEnergyCtrl1.Location = new Point(0, 32); + simulationSingleWorkingEnergyCtrl1.Name = "simulationSingleWorkingEnergyCtrl1"; + simulationSingleWorkingEnergyCtrl1.Size = new Size(1039, 631); + simulationSingleWorkingEnergyCtrl1.TabIndex = 3; + // + // SimulationSingleWorkingEnergyDlg + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(1039, 663); + Controls.Add(simulationSingleWorkingEnergyCtrl1); + Controls.Add(ribbon); + FormBorderStyle = FormBorderStyle.SizableToolWindow; + Name = "SimulationSingleWorkingEnergyDlg"; + Ribbon = ribbon; + RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; + StartPosition = FormStartPosition.CenterParent; + Text = "鑳借�楀垎鏋�"; + ((ISupportInitialize)ribbon).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private DevExpress.XtraBars.Ribbon.RibbonControl ribbon; + private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; + private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; + private SimulationSingleWorkingEnergyCtrl simulationSingleWorkingEnergyCtrl1; + } +} \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.cs new file mode 100644 index 0000000..7ea1ccf --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.cs @@ -0,0 +1,21 @@ +锘縩amespace HStation.WinFrmUI +{ + public partial class SimulationSingleWorkingEnergyDlg : DevExpress.XtraBars.Ribbon.RibbonForm + { + public SimulationSingleWorkingEnergyDlg() + { + InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) + { + this.simulationSingleWorkingEnergyCtrl1.SetBindingData(hydroInfo, calcuResult); + } + + + } +} \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx @@ -0,0 +1,120 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs index 93e9243..1a7adbf 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs @@ -17,6 +17,7 @@ this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteSimulationEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSimulationEvent; this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteWorkingEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteWorkingEvent; this.xhsProjectSimulationFunctionMgrCtrl1.ProjectSiteWorkingCheckedEvent += XhsProjectSimulationFunctionMgrCtrl1_ProjectSiteWorkingCheckedEvent; + this.xhsProjectSimulationFunctionMgrCtrl1.CreateProjectSiteSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent; } private XhsProjectVmo _project = null;//椤圭洰 @@ -156,45 +157,18 @@ ctrl.UpdateWorkingCheckedList(working, hasChecked); } - - - //鍒涘缓椤圭洰鏂规浜嬩欢 - private void XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSchemeEvent(DevExpress.Utils.Svg.SvgImage svgImage) + //椤圭洰绔欐柟妗堝垱寤轰簨浠� + private async void XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent + (XhsProjectVmo project, XhsProjectSiteVmo projectSite, DevExpress.Utils.Svg.SvgImage svgImage) { - //if (_projectSite == null) - //{ - // return; - //} - //var dlg = new AddXhsProjectSimulationSchemeDlg(); - //await dlg.SetBindingData(_projectSite.ID); - //dlg.ReloadDataEvent += (scheme) => - //{ - // this.xhsProjectSimulationFunctionMgrCtrl1.AppendScheme(scheme); - //}; - //dlg.ShowDialog(); - var dlg = new AddXhsSchemeDlg(); - // await dlg.SetBindingData(_project, _projectSite, _hydroInfo); + await dlg.SetBindingData(project, projectSite, null); dlg.ShowDialog(); } - //鏄剧ず椤圭洰鏂规浜嬩欢 - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSchemeEvent(XhsSchemeVmo arg1, DevExpress.Utils.Svg.SvgImage arg2) - { - } - //姣旇緝椤圭洰宸ュ喌浜嬩欢 - private void XhsProjectSimulationFunctionMgrCtrl1_CompareProjectWorkingEvent(DevExpress.Utils.Svg.SvgImage obj) - { - } - - //鏄剧ず椤圭洰宸ュ喌浜嬩欢 - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectWorkingEvent(HydroWorkingVmo arg1, DevExpress.Utils.Svg.SvgImage arg2) - { - - } #endregion diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj index 9746e64..f486a6b 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj @@ -195,6 +195,9 @@ <Compile Update="04-pump\03-calc\SinglePumpCalcCtrl.cs"> <SubType>Form</SubType> </Compile> + <Compile Update="03-simulation\09-energy\01-single\SimulationSingleWorkingEnergyDlg.cs"> + <SubType>Form</SubType> + </Compile> <Compile Update="Properties\Resources.Designer.cs"> <DesignTime>True</DesignTime> <AutoGen>True</AutoGen> diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user index 588c20c..c30bcef 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user @@ -226,6 +226,9 @@ <Compile Update="03-simulation\07-l3d\XhsProjectSimulationL3dCtrl.cs"> <SubType>UserControl</SubType> </Compile> + <Compile Update="03-simulation\09-energy\01-single\SimulationSingleWorkingEnergyCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> <Compile Update="03-simulation\XhsProjectSimulationMgrPage.cs"> <SubType>UserControl</SubType> </Compile> diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs index 61e3a69..fa5f770 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs @@ -60,6 +60,7 @@ // chartControl1 // xyDiagram1.AxisX.GridLines.Visible = true; + xyDiagram1.AxisX.MinorCount = 1; xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false; xyDiagram1.AxisX.Tickmarks.MinorVisible = false; xyDiagram1.AxisX.Title.Text = "璺濈"; diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs index 8eee264..c8dfcc3 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs @@ -13,19 +13,19 @@ /// </summary> public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList) { - allNodeLossList = new List<HydroNodeLossViewModel>() - { - new HydroNodeLossViewModel(){ Code="1",Elev=10,StartHead=666,EndHead=623,Distance=10}, - new HydroNodeLossViewModel(){ Code="2",Elev=20,StartHead=600,EndHead=567,Distance=30}, - new HydroNodeLossViewModel(){ Code="3",Elev=25,StartHead=544,EndHead=521,Distance=100}, - new HydroNodeLossViewModel(){ Code="4",Elev=19,StartHead=500,EndHead=789,Distance=110}, - new HydroNodeLossViewModel(){ Code="5",Elev=23,StartHead=700,EndHead=677,Distance=150}, - new HydroNodeLossViewModel(){ Code="6",Elev=22,StartHead=632,EndHead=600,Distance=200}, - new HydroNodeLossViewModel(){ Code="7",Elev=13,StartHead=550,EndHead=510,Distance=300}, - new HydroNodeLossViewModel(){ Code="8",Elev=13,StartHead=500,EndHead=345,Distance=500}, - new HydroNodeLossViewModel(){ Code="9",Elev=11,StartHead=300,EndHead=289,Distance=700}, - new HydroNodeLossViewModel(){ Code="10",Elev=10,StartHead=260,EndHead=150,Distance=820}, - }; + //allNodeLossList = new List<HydroNodeLossViewModel>() + //{ + // new HydroNodeLossViewModel(){ Code="1",Elev=10,StartHead=666,EndHead=623,Distance=10}, + // new HydroNodeLossViewModel(){ Code="2",Elev=20,StartHead=600,EndHead=567,Distance=30}, + // new HydroNodeLossViewModel(){ Code="3",Elev=25,StartHead=544,EndHead=521,Distance=100}, + // new HydroNodeLossViewModel(){ Code="4",Elev=19,StartHead=500,EndHead=789,Distance=110}, + // new HydroNodeLossViewModel(){ Code="5",Elev=23,StartHead=700,EndHead=677,Distance=150}, + // new HydroNodeLossViewModel(){ Code="6",Elev=22,StartHead=632,EndHead=600,Distance=200}, + // new HydroNodeLossViewModel(){ Code="7",Elev=13,StartHead=550,EndHead=510,Distance=300}, + // new HydroNodeLossViewModel(){ Code="8",Elev=13,StartHead=500,EndHead=345,Distance=500}, + // new HydroNodeLossViewModel(){ Code="9",Elev=11,StartHead=300,EndHead=289,Distance=700}, + // new HydroNodeLossViewModel(){ Code="10",Elev=10,StartHead=260,EndHead=150,Distance=820}, + //}; this.hydroSingleLossCurveCtrl1.SetBindingData(allNodeLossList); } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleHelper.cs new file mode 100644 index 0000000..d6320de --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleHelper.cs @@ -0,0 +1,82 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yw.WinFrmUI +{ + /// <summary> + /// + /// </summary> + public static class HydroCatalogLossScaleHelper + { + /// <summary> + /// 鑾峰彇鍒嗙被鎹熷け姣斾緥鍒楄〃 + /// </summary> + public static List<HydroCatalogLossScaleViewModel> GetAllCatalogLossScaleList(this Yw.Model.HydroModelInfo hydroInfo, List<Yw.EPAnet.EnergyPoint> allEnergyList) + { + if (hydroInfo == null) + { + return default; + } + var allScaleList = new List<HydroCatalogLossScaleViewModel>(); + if (allEnergyList != null && allEnergyList.Count > 0) + { + if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) + { + var allVisualIds = hydroInfo.Pipes.Select(x => x.Code).Distinct().ToList(); + var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); + var visualLossScale = new HydroCatalogLossScaleViewModel(); + visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Pipe; + visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe); + visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; + allScaleList.Add(visualLossScale); + } + if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0) + { + var allVisualIds = hydroInfo.Translations.Select(x => x.Code).Distinct().ToList(); + var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); + var visualLossScale = new HydroCatalogLossScaleViewModel(); + visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Translation; + visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation); + visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; + allScaleList.Add(visualLossScale); + } + if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) + { + var allVisualIds = hydroInfo.Valves.Select(x => x.Code).Distinct().ToList(); + var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); + var visualLossScale = new HydroCatalogLossScaleViewModel(); + visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Valve; + visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); + visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; + allScaleList.Add(visualLossScale); + } + if (hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0) + { + var allVisualIds = hydroInfo.Elbows.Select(x => x.Code).Distinct().ToList(); + var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); + var visualLossScale = new HydroCatalogLossScaleViewModel(); + visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Elbow; + visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Elbow); + visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; + allScaleList.Add(visualLossScale); + } + if (hydroInfo.Threelinks != null && hydroInfo.Threelinks.Count > 0) + { + var allVisualIds = hydroInfo.Threelinks.Select(x => x.Code).Distinct().ToList(); + var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); + var visualLossScale = new HydroCatalogLossScaleViewModel(); + visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Threelink; + visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Threelink); + visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; + allScaleList.Add(visualLossScale); + } + } + return allScaleList; + } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleViewModel.cs index 8483aaa..897c5ab 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleViewModel.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroCatalogLossScaleViewModel.cs @@ -11,6 +11,11 @@ public string Catalog { get; set; } /// <summary> + /// 鍒嗙被鍚嶇О + /// </summary> + public string CatalogName { get; set; } + + /// <summary> /// 鎹熷け /// </summary> public double Loss { get; set; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.Designer.cs index 9787baf..4221342 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.Designer.cs @@ -49,12 +49,12 @@ // chartControl1.Dock = DockStyle.Fill; chartControl1.Legend.LegendID = -1; - chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; chartControl1.Location = new Point(0, 0); chartControl1.Name = "chartControl1"; - series1.ArgumentDataMember = "Catalog"; + series1.ArgumentDataMember = "CatalogName"; series1.DataSource = bindingSource1; - doughnutSeriesLabel1.TextPattern = "{A}: {VP:P2}"; + doughnutSeriesLabel1.TextPattern = "{A}({V:N2}):{VP:P2}"; series1.Label = doughnutSeriesLabel1; series1.Name = "Series 1"; series1.SeriesID = 1; @@ -68,7 +68,6 @@ }; chartControl1.Size = new Size(884, 602); chartControl1.TabIndex = 0; - chartControl1.Click += chartControl1_Click; // // HydroSingleLossScaleCtrl // diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.cs index c6243e0..58a4be9 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleCtrl.cs @@ -15,9 +15,5 @@ this.bindingSource1.DataSource = allCatalogLossList; } - private void chartControl1_Click(object sender, EventArgs e) - { - - } } } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.Designer.cs index f467062..47fd3f2 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.Designer.cs @@ -32,7 +32,17 @@ ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); hydroSingleLossScaleCtrl1 = new HydroSingleLossScaleCtrl(); + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + hydroEnergyStatisticsBarCtrl1 = new HydroEnergyStatisticsBarCtrl(); + layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); ((ISupportInitialize)ribbon).BeginInit(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)layoutControlItem2).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); SuspendLayout(); // // ribbon @@ -45,7 +55,7 @@ ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left; ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False; - ribbon.Size = new Size(886, 32); + ribbon.Size = new Size(997, 32); // // ribbonPage1 // @@ -60,18 +70,66 @@ // // hydroSingleLossScaleCtrl1 // - hydroSingleLossScaleCtrl1.Dock = DockStyle.Fill; - hydroSingleLossScaleCtrl1.Location = new Point(0, 32); + hydroSingleLossScaleCtrl1.Location = new Point(2, 19); hydroSingleLossScaleCtrl1.Name = "hydroSingleLossScaleCtrl1"; - hydroSingleLossScaleCtrl1.Size = new Size(886, 555); - hydroSingleLossScaleCtrl1.TabIndex = 6; + hydroSingleLossScaleCtrl1.Size = new Size(993, 374); + hydroSingleLossScaleCtrl1.TabIndex = 0; + // + // layoutControl1 + // + layoutControl1.Controls.Add(hydroEnergyStatisticsBarCtrl1); + layoutControl1.Controls.Add(hydroSingleLossScaleCtrl1); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 32); + layoutControl1.Name = "layoutControl1"; + layoutControl1.Root = Root; + layoutControl1.Size = new Size(997, 591); + layoutControl1.TabIndex = 8; + layoutControl1.Text = "layoutControl1"; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem1 }); + Root.Name = "Root"; + Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + Root.Size = new Size(997, 591); + Root.TextVisible = false; + // + // hydroEnergyStatisticsBarCtrl1 + // + hydroEnergyStatisticsBarCtrl1.Location = new Point(2, 414); + hydroEnergyStatisticsBarCtrl1.Name = "hydroEnergyStatisticsBarCtrl1"; + hydroEnergyStatisticsBarCtrl1.Size = new Size(993, 175); + hydroEnergyStatisticsBarCtrl1.TabIndex = 2; + // + // layoutControlItem2 + // + layoutControlItem2.Control = hydroEnergyStatisticsBarCtrl1; + layoutControlItem2.Location = new Point(0, 395); + layoutControlItem2.Name = "layoutControlItem2"; + layoutControlItem2.Size = new Size(997, 196); + layoutControlItem2.Text = "鑳介噺缁熻"; + layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top; + layoutControlItem2.TextSize = new Size(48, 14); + // + // layoutControlItem1 + // + layoutControlItem1.Control = hydroSingleLossScaleCtrl1; + layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Size = new Size(997, 395); + layoutControlItem1.Text = "鍒嗙被缁熻"; + layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top; + layoutControlItem1.TextSize = new Size(48, 14); // // HydroSingleLossScaleDlg // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(886, 587); - Controls.Add(hydroSingleLossScaleCtrl1); + ClientSize = new Size(997, 623); + Controls.Add(layoutControl1); Controls.Add(ribbon); FormBorderStyle = FormBorderStyle.SizableToolWindow; Name = "HydroSingleLossScaleDlg"; @@ -80,6 +138,11 @@ StartPosition = FormStartPosition.CenterParent; Text = "鎹熷け姣斾緥"; ((ISupportInitialize)ribbon).EndInit(); + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)layoutControlItem2).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -90,5 +153,10 @@ private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; private HydroSingleLossScaleCtrl hydroSingleLossScaleCtrl1; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private HydroEnergyStatisticsBarCtrl hydroEnergyStatisticsBarCtrl1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.cs index 8794155..3e1f50c 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/HydroSingleLossScaleDlg.cs @@ -1,4 +1,6 @@ -锘縩amespace Yw.WinFrmUI +锘縰sing DevExpress.Xpo.Helpers; + +namespace Yw.WinFrmUI { public partial class HydroSingleLossScaleDlg : DevExpress.XtraBars.Ribbon.RibbonForm { @@ -6,22 +8,26 @@ { InitializeComponent(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.layoutControl1.SetupLayoutControl(); } /// <summary> /// /// </summary> - public void SetBindingData() + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<Yw.EPAnet.EnergyPoint> allEnergyList) { - var allList = new List<HydroCatalogLossScaleViewModel>() + if (hydroInfo == null) { - new HydroCatalogLossScaleViewModel(){ Catalog="寮ご",Loss=13}, - new HydroCatalogLossScaleViewModel(){Catalog="闃�闂�",Loss=39}, - new HydroCatalogLossScaleViewModel(){Catalog="绠¢亾",Loss=123} - }; - this.hydroSingleLossScaleCtrl1.SetBindingData(allList); + return; + } + var allLossList = hydroInfo.GetAllCatalogLossScaleList(allEnergyList); + this.hydroSingleLossScaleCtrl1.SetBindingData(allLossList); + var allStatisticsList = allEnergyList.GetStatisticsList(); + this.hydroEnergyStatisticsBarCtrl1.SetBindingData(allStatisticsList); } + + } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.Designer.cs new file mode 100644 index 0000000..02c70b8 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.Designer.cs @@ -0,0 +1,126 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class HydroPumpRunListCtrl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + components = new Container(); + DevExpress.XtraEditors.TableLayout.ItemTemplateBase itemTemplateBase1 = new DevExpress.XtraEditors.TableLayout.ItemTemplateBase(); + DevExpress.XtraEditors.TableLayout.TableColumnDefinition tableColumnDefinition1 = new DevExpress.XtraEditors.TableLayout.TableColumnDefinition(); + DevExpress.XtraEditors.TableLayout.TableColumnDefinition tableColumnDefinition2 = new DevExpress.XtraEditors.TableLayout.TableColumnDefinition(); + DevExpress.XtraEditors.TableLayout.TableColumnDefinition tableColumnDefinition3 = new DevExpress.XtraEditors.TableLayout.TableColumnDefinition(); + DevExpress.XtraEditors.TableLayout.TemplatedItemElement templatedItemElement1 = new DevExpress.XtraEditors.TableLayout.TemplatedItemElement(); + DevExpress.XtraEditors.TableLayout.TemplatedItemElement templatedItemElement2 = new DevExpress.XtraEditors.TableLayout.TemplatedItemElement(); + DevExpress.XtraEditors.TableLayout.TemplatedItemElement templatedItemElement3 = new DevExpress.XtraEditors.TableLayout.TemplatedItemElement(); + DevExpress.XtraEditors.TableLayout.TableRowDefinition tableRowDefinition1 = new DevExpress.XtraEditors.TableLayout.TableRowDefinition(); + ComponentResourceManager resources = new ComponentResourceManager(typeof(HydroPumpRunListCtrl)); + imageListBoxControl1 = new DevExpress.XtraEditors.ImageListBoxControl(); + hydroPumpRunViewModelBindingSource = new BindingSource(components); + image32 = new DevExpress.Utils.ImageCollection(components); + ((ISupportInitialize)imageListBoxControl1).BeginInit(); + ((ISupportInitialize)hydroPumpRunViewModelBindingSource).BeginInit(); + ((ISupportInitialize)image32).BeginInit(); + SuspendLayout(); + // + // imageListBoxControl1 + // + imageListBoxControl1.DataSource = hydroPumpRunViewModelBindingSource; + imageListBoxControl1.DisplayMember = "Name"; + imageListBoxControl1.Dock = DockStyle.Fill; + imageListBoxControl1.ImageIndexMember = "ImageIndex"; + imageListBoxControl1.ImageList = image32; + imageListBoxControl1.ImageMember = "ImageIndex"; + imageListBoxControl1.ItemHeight = 36; + imageListBoxControl1.Location = new Point(0, 0); + imageListBoxControl1.Name = "imageListBoxControl1"; + imageListBoxControl1.Size = new Size(285, 624); + imageListBoxControl1.TabIndex = 0; + tableColumnDefinition1.Length.Value = 40D; + tableColumnDefinition2.Length.Value = 171D; + tableColumnDefinition3.Length.Value = 70D; + itemTemplateBase1.Columns.Add(tableColumnDefinition1); + itemTemplateBase1.Columns.Add(tableColumnDefinition2); + itemTemplateBase1.Columns.Add(tableColumnDefinition3); + templatedItemElement1.ColumnIndex = 1; + templatedItemElement1.FieldName = "Name"; + templatedItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter; + templatedItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside; + templatedItemElement1.Text = "Name"; + templatedItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft; + templatedItemElement2.Appearance.Normal.ForeColor = Color.Silver; + templatedItemElement2.Appearance.Normal.Options.UseForeColor = true; + templatedItemElement2.ColumnIndex = 2; + templatedItemElement2.FieldName = "CurrentHz"; + templatedItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter; + templatedItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside; + templatedItemElement2.Text = "CurrentHz"; + templatedItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter; + templatedItemElement3.FieldName = "Image"; + templatedItemElement3.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter; + templatedItemElement3.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside; + templatedItemElement3.Text = "Image"; + templatedItemElement3.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter; + itemTemplateBase1.Elements.Add(templatedItemElement1); + itemTemplateBase1.Elements.Add(templatedItemElement2); + itemTemplateBase1.Elements.Add(templatedItemElement3); + itemTemplateBase1.Name = "template1"; + itemTemplateBase1.Rows.Add(tableRowDefinition1); + imageListBoxControl1.Templates.Add(itemTemplateBase1); + imageListBoxControl1.ValueMember = "Code"; + imageListBoxControl1.SelectedValueChanged += imageListBoxControl1_SelectedValueChanged; + // + // hydroPumpRunViewModelBindingSource + // + hydroPumpRunViewModelBindingSource.DataSource = typeof(HydroPumpRunViewModel); + // + // image32 + // + image32.ImageSize = new Size(32, 32); + image32.ImageStream = (DevExpress.Utils.ImageCollectionStreamer)resources.GetObject("image32.ImageStream"); + image32.Images.SetKeyName(0, "pump-run.png"); + image32.Images.SetKeyName(1, "pump-shut.png"); + // + // HydroPumpRunListCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(imageListBoxControl1); + Name = "HydroPumpRunListCtrl"; + Size = new Size(285, 624); + ((ISupportInitialize)imageListBoxControl1).EndInit(); + ((ISupportInitialize)hydroPumpRunViewModelBindingSource).EndInit(); + ((ISupportInitialize)image32).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraEditors.ImageListBoxControl imageListBoxControl1; + private DevExpress.Utils.ImageCollection image32; + private BindingSource hydroPumpRunViewModelBindingSource; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.cs new file mode 100644 index 0000000..53a5790 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.cs @@ -0,0 +1,64 @@ +锘縰sing DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Yw.WinFrmUI +{ + public partial class HydroPumpRunListCtrl : DevExpress.XtraEditors.XtraUserControl + { + public HydroPumpRunListCtrl() + { + InitializeComponent(); + } + + /// <summary> + /// 閫夋嫨鏀瑰彉浜嬩欢 + /// </summary> + public event Action<Yw.Model.HydroPumpInfo> SelectedChangedEvent; + + private List<HydroPumpRunViewModel> _allBindingList = null;//缁戝畾鍒楄〃 + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo) + { + SetBindingData(hydroInfo.Pumps); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(List<Yw.Model.HydroPumpInfo> pumps) + { + _allBindingList = new List<HydroPumpRunViewModel>(); + pumps?.ForEach(x => _allBindingList.Add(new HydroPumpRunViewModel(x))); + this.hydroPumpRunViewModelBindingSource.DataSource = _allBindingList; + this.hydroPumpRunViewModelBindingSource.ResetBindings(false); + } + + //閫夋嫨鏀瑰彉 + private void imageListBoxControl1_SelectedValueChanged(object sender, EventArgs e) + { + if (_allBindingList == null || _allBindingList.Count < 1) + { + return; + } + var item = this.imageListBoxControl1.SelectedItem; + var pump = item as HydroPumpRunViewModel; + if (pump == null) + { + return; + } + this.SelectedChangedEvent?.Invoke(pump.Vmo); + } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.resx new file mode 100644 index 0000000..91d6a51 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunListCtrl.resx @@ -0,0 +1,153 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="hydroPumpRunViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>122, 17</value> + </metadata> + <metadata name="image32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <assembly alias="DevExpress.Utils.v23.2" name="DevExpress.Utils.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> + <data name="image32.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMy4yLCBWZXJzaW9uPTIzLjIu + NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT + eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv + a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 + cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// + /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAACAAAAAgAAAACQUAAAAP + BQAAAJEDAAACvgEAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAARnQU1BAACxjwv8 + YQUAAAF1SURBVFhH7VXbbcMwDDRgF3AzRUfpKB2lf2myREbpKBmlFUVKJi2Sotx++oADEok8nqiHpxMn + RrHeXz4uX/Pj9TY/kcvPKNfr8k5yMazX9Q2L6oKjHDIAwZpI5X35Hu1E2AC0WxPgpNAMjO+bCRnorpxI + 4QKX2/KpxRZ2DcCea4kaKaUBmtC70TUgV+C3lFJUWJ1wDcjVz8885uxtTnKg5bkGuGv4TcNkTDGRbgHE + wTyFVuyNw3+assHvOw0JWG2FQsUExrRmQTuLeMB7jYI0JNAaYIVqrsE0TzI2esFbwc2gtlqLlGKjigUM + lJbzAj71rgp0t4B/E3JsfPUhA7zA/mT7Ty12xPtohQ4hFqEEuob5Wa6dabkXzvGK0aKnghfemES8wp5g + gtTstF834LNngF/ZXuwhA5BD6Q1wG0ps4PAdMmC86XzlXpzAfxhADXn4vC4JHDGQD6j5FsC1DKy84JAB + g6H7vsefDKQuQNFwu0+cqJimX0b9nRk3FaMvAAAAAElFTkSuQmCCywEAAIlQTkcNChoKAAAADUlIRFIA + AAAgAAAAIAgGAAAAc3p69AAAAARnQU1BAACxjwv8YQUAAAGCSURBVFhH7VXBEcMwCMsoHaWjdISM0E06 + SkfpKK3kwz5MADvuN7rT5YIFVohDtgsXzmLf9wf4Aj/C7wLvUm4OSLiB3NQrtsJ5AxSbZMs3eLYTcwYg + ZLu9Ao0iLcA99TNmxgYoMkkuRd4B8afVGeYGIOA79xIPlJQDsEYTUTeGBvQTpC2VFBdYjzoRG8CifvqP + xMJ3W5ISQOPlpQa066eEqzGvGL8C5txE2oCYNf6QpRgQte9dQh0Qj9rKjYoJXKnxzL5KkQwQ8YlKQQl1 + QNwa0BvV3IhvKRNjJEa8btgMqtiQkhIDolpsaACsLe82Seh2tQNEo1eg/wlnx/CUAb1Bd7Jxn43a0hEw + +2lNHUI9/8tniCvHcnbAusK4p94z2j7rA7CoN65kkWzjuCCAdV0zb78Rz3JkwB1qLiBYMRBONqzpv+nU + 4Vsx4M50xO2wyv9+BER/G8A9a9jDN57/BIUmcYY8oNEsYGz85BUQrxiIOP7eLZD0jwF2gQNort0XLjRs + 2w9oZulV76wILQAAAABJRU5ErkJgggs= +</value> + </data> +</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunViewModel.cs new file mode 100644 index 0000000..54a60ff --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/01-run/HydroPumpRunViewModel.cs @@ -0,0 +1,72 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yw.WinFrmUI +{ + /// <summary> + /// + /// </summary> + public class HydroPumpRunViewModel + { + /// <summary> + /// + /// </summary> + public HydroPumpRunViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroPumpRunViewModel(Yw.Model.HydroPumpInfo pump) + { + this.Code = pump.Code; + this.Name = pump.Name; + if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open) + { + this.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.pump_run_32; + this.CurrentHz = $"{Math.Round(pump.RatedHz * pump.SpeedRatio, 1)}hz"; + } + else + { + this.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.pump_shut_32; + } + this.Description = pump.Description; + + this.Vmo = pump; + } + + /// <summary> + /// 缂栫爜 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// 鍚嶇О + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鍥剧墖 + /// </summary> + public Image Image { get; set; } + + /// <summary> + /// 褰撳墠Hz + /// </summary> + public string CurrentHz { get; set; } + + /// <summary> + /// 璇存槑 + /// </summary> + public string Description { get; set; } + + /// <summary> + /// vmo + /// </summary> + public Yw.Model.HydroPumpInfo Vmo { get; set; } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs new file mode 100644 index 0000000..8e55480 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs @@ -0,0 +1,92 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class HydroEnergyStatisticsBarCtrl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + components = new Container(); + DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); + chartControl1 = new DevExpress.XtraCharts.ChartControl(); + bindingSource1 = new BindingSource(components); + ((ISupportInitialize)chartControl1).BeginInit(); + ((ISupportInitialize)xyDiagram1).BeginInit(); + ((ISupportInitialize)series1).BeginInit(); + ((ISupportInitialize)bindingSource1).BeginInit(); + SuspendLayout(); + // + // chartControl1 + // + xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; + xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram1.AxisY.WholeRange.AutoSideMargins = false; + xyDiagram1.AxisY.WholeRange.EndSideMargin = 0.94000000000000006D; + xyDiagram1.AxisY.WholeRange.StartSideMargin = 0D; + chartControl1.Diagram = xyDiagram1; + chartControl1.Dock = DockStyle.Fill; + chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Center; + chartControl1.Legend.LegendID = -1; + chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + chartControl1.Location = new Point(0, 0); + chartControl1.Name = "chartControl1"; + series1.ArgumentDataMember = "EnergyName"; + series1.DataSource = bindingSource1; + series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; + series1.Name = "Series 1"; + series1.SeriesID = 0; + series1.ValueDataMembersSerializable = "EnergyValue"; + chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] + { + series1 + }; + chartControl1.Size = new Size(1005, 485); + chartControl1.TabIndex = 0; + // + // bindingSource1 + // + bindingSource1.DataSource = typeof(HydroEnergyStatisticsItemViewModel); + // + // HydroEnergyStatisticsBarCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(chartControl1); + Name = "HydroEnergyStatisticsBarCtrl"; + Size = new Size(1005, 485); + ((ISupportInitialize)xyDiagram1).EndInit(); + ((ISupportInitialize)series1).EndInit(); + ((ISupportInitialize)chartControl1).EndInit(); + ((ISupportInitialize)bindingSource1).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraCharts.ChartControl chartControl1; + private BindingSource bindingSource1; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs new file mode 100644 index 0000000..1cf26ba --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs @@ -0,0 +1,42 @@ +锘縰sing DevExpress.Xpo.Helpers; +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Yw.WinFrmUI +{ + public partial class HydroEnergyStatisticsBarCtrl : DevExpress.XtraEditors.XtraUserControl + { + public HydroEnergyStatisticsBarCtrl() + { + InitializeComponent(); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(List<Yw.EPAnet.EnergyPoint> allEnergyList) + { + var allStatisticsList = allEnergyList.GetStatisticsList(); + SetBindingData(allStatisticsList); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(List<HydroEnergyStatisticsItemViewModel> allStatisticsList) + { + this.bindingSource1.DataSource = allStatisticsList; + this.bindingSource1.ResetBindings(false); + } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx new file mode 100644 index 0000000..e3e911f --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx @@ -0,0 +1,123 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="bindingSource1.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/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs new file mode 100644 index 0000000..b2f23a2 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs @@ -0,0 +1,68 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yw.WinFrmUI +{ + /// <summary> + /// + /// </summary> + public static class HydroEnergyStatisticsHelper + { + /// <summary> + /// 鑾峰彇缁熻鍒楄〃 + /// </summary> + public static List<HydroEnergyStatisticsItemViewModel> GetStatisticsList(this List<Yw.EPAnet.EnergyPoint> allEnergyList) + { + var allStatisticsList = new List<HydroEnergyStatisticsItemViewModel>(); + if (allEnergyList != null && allEnergyList.Count > 0) + { + var allEnergyGroupList = allEnergyList.GroupBy(x => x.EnergyType).ToList(); + foreach (var energyGroup in allEnergyGroupList) + { + var item = new HydroEnergyStatisticsItemViewModel(); + switch (energyGroup.Key) + { + case EPAnet.eEnergyType.Input: + { + item.EnergyType = eEnergyType.Input; + item.EnergyName = eEnergyType.Input.GetDisplayText(); + } + break; + case EPAnet.eEnergyType.Output: + { + item.EnergyType = eEnergyType.Output; + item.EnergyName = eEnergyType.Output.GetDisplayText(); + } + break; + case EPAnet.eEnergyType.Promote: + { + item.EnergyType = eEnergyType.Promote; + item.EnergyName = eEnergyType.Promote.GetDisplayText(); + } + break; + case EPAnet.eEnergyType.MinorLoss: + { + item.EnergyType = eEnergyType.MinorLoss; + item.EnergyName = eEnergyType.MinorLoss.GetDisplayText(); + } + break; + case EPAnet.eEnergyType.FrictionalLoss: + { + item.EnergyType = eEnergyType.FrictionalLoss; + item.EnergyName = eEnergyType.FrictionalLoss.GetDisplayText(); + } + break; + default: break; + } + item.EnergyValue = Math.Round(energyGroup.Sum(x => x.EnergyPower), 1); + allStatisticsList.Add(item); + } + } + return allStatisticsList.OrderBy(x => x.EnergyType).ToList(); + } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs new file mode 100644 index 0000000..24c1c7d --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs @@ -0,0 +1,23 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// + /// </summary> + public class HydroEnergyStatisticsItemViewModel + { + /// <summary> + /// 鑳介噺绫诲瀷 + /// </summary> + public eEnergyType EnergyType { get; set; } + + /// <summary> + /// 鑳介噺鍚嶇О + /// </summary> + public string EnergyName { get; set; } + + /// <summary> + /// 鑳介噺鍊� + /// </summary> + public double EnergyValue { get; set; } + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/eEnergyType.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/eEnergyType.cs new file mode 100644 index 0000000..2561f39 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/eEnergyType.cs @@ -0,0 +1,39 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳介噺绫诲瀷 + /// </summary> + public enum eEnergyType + { + /// <summary> + /// 閲嶅姏鍔胯兘杈撳叆锛氭按姹犮�佹按搴� + /// </summary> + [Display(Name = "杈撳叆鑳介噺")] + Input, + + /// <summary> + /// 姘存车鎻愬崌鑳介噺锛堣緭鍏ョ郴缁熺殑鏈夋晥鍔熺巼锛夛紝涓嶈�冭檻鏁堢巼 + /// </summary> + [Display(Name = "鎻愬崌鑳介噺")] + Promote, + + /// <summary> + /// 灞�閮ㄦ懇鎿﹂樆鍔涘甫鏉ョ殑鑳介噺鎹熷け锛氶榾闂ㄣ�佽繛鎺ヨ妭鐐广�佺閬撱�佽澶囷紙鎹㈢儹鍣ㄣ�佺┖鍘嬫満锛� + /// </summary> + [Display(Name = "灞�閮ㄦ崯澶�")] + MinorLoss, + + /// <summary> + /// 娌跨▼鎽╂摝闃诲姏甯︽潵鐨勮兘閲忔崯澶憋細绠¢亾 + /// </summary> + [Display(Name = "娌跨▼鎹熷け")] + FrictionalLoss, + + /// <summary> + /// 閲嶅姏鍔胯兘杈撳嚭锛氭按姹犮�佹按搴撱�佹墿鏁e櫒 + /// </summary> + [Display(Name = "杈撳嚭鑳介噺")] + Output, + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs new file mode 100644 index 0000000..5fdc204 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs @@ -0,0 +1,177 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class HydroEnergyTotalViewCtrl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + txtE = new DevExpress.XtraEditors.TextEdit(); + txtP = new DevExpress.XtraEditors.TextEdit(); + txtQ = new DevExpress.XtraEditors.TextEdit(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)txtE.Properties).BeginInit(); + ((ISupportInitialize)txtP.Properties).BeginInit(); + ((ISupportInitialize)txtQ.Properties).BeginInit(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)emptySpaceItem1).BeginInit(); + ((ISupportInitialize)layoutControlItem2).BeginInit(); + ((ISupportInitialize)layoutControlItem3).BeginInit(); + SuspendLayout(); + // + // layoutControl1 + // + layoutControl1.Controls.Add(txtE); + layoutControl1.Controls.Add(txtP); + layoutControl1.Controls.Add(txtQ); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 0); + layoutControl1.Name = "layoutControl1"; + layoutControl1.Root = Root; + layoutControl1.Size = new Size(238, 78); + layoutControl1.TabIndex = 0; + layoutControl1.Text = "layoutControl1"; + // + // txtE + // + txtE.Location = new Point(54, 50); + txtE.Name = "txtE"; + txtE.Properties.ReadOnly = true; + txtE.Properties.UseReadOnlyAppearance = false; + txtE.Size = new Size(182, 20); + txtE.StyleController = layoutControl1; + txtE.TabIndex = 6; + // + // txtP + // + txtP.Location = new Point(54, 26); + txtP.Name = "txtP"; + txtP.Properties.ReadOnly = true; + txtP.Properties.UseReadOnlyAppearance = false; + txtP.Size = new Size(182, 20); + txtP.StyleController = layoutControl1; + txtP.TabIndex = 5; + // + // txtQ + // + txtQ.Location = new Point(54, 2); + txtQ.Name = "txtQ"; + txtQ.Properties.ReadOnly = true; + txtQ.Properties.UseReadOnlyAppearance = false; + txtQ.Size = new Size(182, 20); + txtQ.StyleController = layoutControl1; + txtQ.TabIndex = 4; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, emptySpaceItem1, layoutControlItem2, layoutControlItem3 }); + Root.Name = "Root"; + Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + Root.Size = new Size(238, 78); + Root.TextVisible = false; + // + // layoutControlItem1 + // + layoutControlItem1.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem1.Control = txtQ; + layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Size = new Size(238, 24); + layoutControlItem1.Text = "鎬绘祦閲�:"; + layoutControlItem1.TextSize = new Size(40, 14); + // + // emptySpaceItem1 + // + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new Point(0, 72); + emptySpaceItem1.MinSize = new Size(1, 1); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.Size = new Size(238, 6); + emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + emptySpaceItem1.TextSize = new Size(0, 0); + // + // layoutControlItem2 + // + layoutControlItem2.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem2.Control = txtP; + layoutControlItem2.Location = new Point(0, 24); + layoutControlItem2.Name = "layoutControlItem2"; + layoutControlItem2.Size = new Size(238, 24); + layoutControlItem2.Text = "鎬诲姛鐜�:"; + layoutControlItem2.TextSize = new Size(40, 14); + // + // layoutControlItem3 + // + layoutControlItem3.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; + layoutControlItem3.Control = txtE; + layoutControlItem3.Location = new Point(0, 48); + layoutControlItem3.Name = "layoutControlItem3"; + layoutControlItem3.Size = new Size(238, 24); + layoutControlItem3.Text = "鎬绘晥鐜�:"; + layoutControlItem3.TextSize = new Size(40, 14); + // + // HydroEnergyTotalViewCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(layoutControl1); + Name = "HydroEnergyTotalViewCtrl"; + Size = new Size(238, 78); + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)txtE.Properties).EndInit(); + ((ISupportInitialize)txtP.Properties).EndInit(); + ((ISupportInitialize)txtQ.Properties).EndInit(); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)emptySpaceItem1).EndInit(); + ((ISupportInitialize)layoutControlItem2).EndInit(); + ((ISupportInitialize)layoutControlItem3).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraEditors.TextEdit txtP; + private DevExpress.XtraEditors.TextEdit txtQ; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraEditors.TextEdit txtE; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs new file mode 100644 index 0000000..5ac3545 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs @@ -0,0 +1,118 @@ +锘縰sing DevExpress.Office.Utils; +using DevExpress.Xpo.Helpers; +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Yw.EPAnet; +using Yw.WinFrmUI.Q3d; + +namespace Yw.WinFrmUI +{ + public partial class HydroEnergyTotalViewCtrl : DevExpress.XtraEditors.XtraUserControl + { + public HydroEnergyTotalViewCtrl() + { + InitializeComponent(); + this.layoutControl1.SetupLayoutControl(); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) + { + if (hydroInfo == null) + { + return; + } + if (calcuResult == null) + { + return; + } + if (!calcuResult.Succeed) + { + return; + } + + var allCalcuResultVisualDict = calcuResult.GetVisualDict(); + SetBindingData(hydroInfo, allCalcuResultVisualDict); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict) + { + if (hydroInfo == null) + { + return; + } + if (allCalcuResultVisualDict == null || allCalcuResultVisualDict.Count < 1) + { + return; + } + + double? totalQ = null; + double? totalP = null; + var allEfficiList = new List<double>(); + if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) + { + foreach (var pump in hydroInfo.Pumps) + { + if (!allCalcuResultVisualDict.ContainsKey(pump.Code)) + { + continue; + } + var calcuResult = allCalcuResultVisualDict[pump.Code] as HydroCalcuPumpResult; + if (calcuResult == null) + { + continue; + } + if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open) + { + if (calcuResult.CalcuQ.HasValue) + { + if (!totalQ.HasValue) + { + totalQ = 0; + } + totalQ += calcuResult.CalcuQ.Value; + } + if (calcuResult.CalcuP.HasValue) + { + if (!totalP.HasValue) + { + totalP = 0; + } + totalP += calcuResult.CalcuP.Value; + } + if (calcuResult.CalcuE.HasValue) + { + allEfficiList.Add(calcuResult.CalcuE.Value); + } + } + } + } + if (totalQ.HasValue) + { + this.txtQ.EditValue = $"{Math.Round(totalQ.Value, 1)}m鲁/h"; + } + if (totalP.HasValue) + { + this.txtP.EditValue = $"{Math.Round(totalP.Value, 1)}kW"; + } + if (allEfficiList.Count > 0) + { + this.txtE.EditValue = $"{Math.Round(allEfficiList.Average(), 1)}%"; + } + } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx @@ -0,0 +1,120 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroEnergyStatisticsItemViewModel.datasource b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroEnergyStatisticsItemViewModel.datasource new file mode 100644 index 0000000..5a1a33c --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroEnergyStatisticsItemViewModel.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="HydroEnergyStatisticsItemViewModel" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>Yw.WinFrmUI.HydroEnergyStatisticsItemViewModel, Yw.WinFrmUI.Hydro.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/Properties/DataSources/Yw.WinFrmUI.HydroPumpRunViewModel.datasource b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroPumpRunViewModel.datasource new file mode 100644 index 0000000..19ac6cb --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroPumpRunViewModel.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="HydroPumpRunViewModel" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>Yw.WinFrmUI.HydroPumpRunViewModel, Yw.WinFrmUI.Hydro.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/Properties/Resources.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.Designer.cs index dad678f..4cc783a 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.Designer.cs @@ -83,6 +83,26 @@ /// <summary> /// 鏌ユ壘 System.Drawing.Bitmap 绫诲瀷鐨勬湰鍦板寲璧勬簮銆� /// </summary> + internal static System.Drawing.Bitmap pump_run_32 { + get { + object obj = ResourceManager.GetObject("pump_run_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// <summary> + /// 鏌ユ壘 System.Drawing.Bitmap 绫诲瀷鐨勬湰鍦板寲璧勬簮銆� + /// </summary> + internal static System.Drawing.Bitmap pump_shut_32 { + get { + object obj = ResourceManager.GetObject("pump_shut_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// <summary> + /// 鏌ユ壘 System.Drawing.Bitmap 绫诲瀷鐨勬湰鍦板寲璧勬簮銆� + /// </summary> internal static System.Drawing.Bitmap succeed_128 { get { object obj = ResourceManager.GetObject("succeed_128", resourceCulture); diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.resx index 8822bf2..f6cfae6 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.resx +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/Resources.resx @@ -124,6 +124,12 @@ <data name="failed_64" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\failed_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> + <data name="pump_run_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\pump_run_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="pump_shut_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\pump_shut_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> <data name="succeed_128" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\succeed_128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_run_32.png b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_run_32.png new file mode 100644 index 0000000..ffb02c0 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_run_32.png Binary files differ diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_shut_32.png b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_shut_32.png new file mode 100644 index 0000000..aab3e02 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Resources/pump_shut_32.png Binary files differ diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user index 1d1841b..df21923 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user @@ -61,6 +61,15 @@ <Compile Update="18-loss\02-scale\HydroSingleLossScaleCtrl.cs"> <SubType>UserControl</SubType> </Compile> + <Compile Update="19-pump\01-run\HydroPumpRunListCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="20-energy\01-statistics\HydroEnergyStatisticsBarCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="20-energy\02-total\HydroEnergyTotalViewCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> <Compile Update="99-view\01-q3d\HydroQ3dViewPage.cs"> <SubType>UserControl</SubType> </Compile> -- Gitblit v1.9.3