From f0248ee7a2b38db6e0540e937762c2e2201a04e1 Mon Sep 17 00:00:00 2001 From: yosxpeee Date: Sun, 18 Jul 2021 15:46:26 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AC=E3=83=99=E3=83=AB=E5=B8=AF=E3=81=94?= =?UTF-8?q?=E3=81=A8=E3=81=AE=E5=88=86=E6=9E=90=E3=82=92=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=20README=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dialog/DialogFleetAnalysis.Designer.cs | 446 +++++++++++++----- .../Window/Dialog/DialogFleetAnalysis.cs | 146 +++++- .../Window/Dialog/DialogFleetAnalysis.resx | 51 ++ README.md | 4 +- 4 files changed, 516 insertions(+), 131 deletions(-) diff --git a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.Designer.cs b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.Designer.cs index c29599152..e0379e0cf 100644 --- a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.Designer.cs +++ b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.Designer.cs @@ -29,11 +29,13 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series(); this.dataGridView_ShipTypes = new System.Windows.Forms.DataGridView(); this.Index = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ShipType = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -48,17 +50,41 @@ private void InitializeComponent() this.Reload_ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.chart_ShipTypes = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.tabControl_ShipType = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tabPage_ShipType_Data = new System.Windows.Forms.TabPage(); + this.tabPage_ShipType_Chart = new System.Windows.Forms.TabPage(); this.checkBox_LvMax = new System.Windows.Forms.CheckBox(); this.checkBox_LvAvg = new System.Windows.Forms.CheckBox(); this.checkBox_LvMin = new System.Windows.Forms.CheckBox(); + this.tabControl_Parent = new System.Windows.Forms.TabControl(); + this.tabPage_ShipType = new System.Windows.Forms.TabPage(); + this.tabPage_Level = new System.Windows.Forms.TabPage(); + this.tabControl_Level = new System.Windows.Forms.TabControl(); + this.tabPage_Level_Data = new System.Windows.Forms.TabPage(); + this.tabPage_Level_Chart = new System.Windows.Forms.TabPage(); + this.dataGridView_Level = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.chart_Level = new System.Windows.Forms.DataVisualization.Charting.Chart(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_ShipTypes)).BeginInit(); this.menuStrip1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.chart_ShipTypes)).BeginInit(); this.tabControl_ShipType.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); + this.tabPage_ShipType_Data.SuspendLayout(); + this.tabPage_ShipType_Chart.SuspendLayout(); + this.tabControl_Parent.SuspendLayout(); + this.tabPage_ShipType.SuspendLayout(); + this.tabPage_Level.SuspendLayout(); + this.tabControl_Level.SuspendLayout(); + this.tabPage_Level_Data.SuspendLayout(); + this.tabPage_Level_Chart.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_Level)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chart_Level)).BeginInit(); this.SuspendLayout(); // // dataGridView_ShipTypes @@ -82,7 +108,7 @@ private void InitializeComponent() this.dataGridView_ShipTypes.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; this.dataGridView_ShipTypes.RowTemplate.Height = 21; this.dataGridView_ShipTypes.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dataGridView_ShipTypes.Size = new System.Drawing.Size(662, 446); + this.dataGridView_ShipTypes.Size = new System.Drawing.Size(637, 464); this.dataGridView_ShipTypes.TabIndex = 1; // // Index @@ -156,11 +182,11 @@ private void InitializeComponent() // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(10, 24); + this.label1.Location = new System.Drawing.Point(543, 540); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(116, 12); + this.label1.Size = new System.Drawing.Size(145, 12); this.label1.TabIndex = 2; - this.label1.Text = "艦種別(Lv1の艦を除く)"; + this.label1.Text = "データはすべてLv1の艦を除外"; // // menuStrip1 // @@ -189,108 +215,109 @@ private void InitializeComponent() // // chart_ShipTypes // - chartArea4.AxisX.IsLabelAutoFit = false; - chartArea4.AxisX.LabelStyle.Font = new System.Drawing.Font("Yu Gothic UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - chartArea4.AxisY.Interval = 25D; - chartArea4.AxisY.IntervalOffset = 25D; - chartArea4.AxisY.IsLabelAutoFit = false; - chartArea4.AxisY.LineColor = System.Drawing.Color.Gainsboro; - chartArea4.AxisY.MajorGrid.IntervalOffset = 25D; - chartArea4.AxisY.MajorTickMark.Enabled = false; - chartArea4.AxisY.Maximum = 175D; - chartArea4.AxisY.MinorGrid.Enabled = true; - chartArea4.AxisY.MinorGrid.IntervalOffset = 5D; - chartArea4.AxisY.MinorGrid.LineColor = System.Drawing.Color.Gainsboro; - chartArea4.Name = "ChartArea1"; - this.chart_ShipTypes.ChartAreas.Add(chartArea4); - legend4.Name = "Legend1"; - this.chart_ShipTypes.Legends.Add(legend4); - this.chart_ShipTypes.Location = new System.Drawing.Point(6, 6); + chartArea3.AxisX.IsLabelAutoFit = false; + chartArea3.AxisX.LabelStyle.Font = new System.Drawing.Font("Yu Gothic UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + chartArea3.AxisY.Interval = 25D; + chartArea3.AxisY.IntervalOffset = 25D; + chartArea3.AxisY.IsLabelAutoFit = false; + chartArea3.AxisY.LineColor = System.Drawing.Color.Gainsboro; + chartArea3.AxisY.MajorGrid.IntervalOffset = 25D; + chartArea3.AxisY.MajorTickMark.Enabled = false; + chartArea3.AxisY.Maximum = 175D; + chartArea3.AxisY.MinorGrid.Enabled = true; + chartArea3.AxisY.MinorGrid.IntervalOffset = 5D; + chartArea3.AxisY.MinorGrid.LineColor = System.Drawing.Color.Gainsboro; + chartArea3.Name = "ChartArea1"; + this.chart_ShipTypes.ChartAreas.Add(chartArea3); + legend3.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top; + legend3.Name = "Legend1"; + this.chart_ShipTypes.Legends.Add(legend3); + this.chart_ShipTypes.Location = new System.Drawing.Point(3, 6); this.chart_ShipTypes.Name = "chart_ShipTypes"; - series10.BorderColor = System.Drawing.Color.Red; - series10.BorderWidth = 3; - series10.ChartArea = "ChartArea1"; - series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; - series10.Color = System.Drawing.Color.Transparent; - series10.CustomProperties = "AreaDrawingStyle=Polygon"; - series10.Legend = "Legend1"; - series10.MarkerBorderColor = System.Drawing.Color.Red; - series10.MarkerBorderWidth = 5; - series10.MarkerColor = System.Drawing.Color.Red; - series10.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Diamond; - series10.Name = "最大Lv"; - series11.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); - series11.BorderWidth = 3; - series11.ChartArea = "ChartArea1"; - series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; - series11.Color = System.Drawing.Color.Transparent; - series11.CustomProperties = "AreaDrawingStyle=Polygon"; - series11.Legend = "Legend1"; - series11.MarkerBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); - series11.MarkerBorderWidth = 5; - series11.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); - series11.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; - series11.Name = "平均Lv"; - series12.BorderColor = System.Drawing.Color.Aqua; - series12.BorderWidth = 3; - series12.ChartArea = "ChartArea1"; - series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; - series12.Color = System.Drawing.Color.Transparent; - series12.CustomProperties = "AreaDrawingStyle=Polygon"; - series12.Legend = "Legend1"; - series12.MarkerBorderColor = System.Drawing.Color.Aqua; - series12.MarkerBorderWidth = 5; - series12.MarkerColor = System.Drawing.Color.Aqua; - series12.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Square; - series12.Name = "最小Lv"; - this.chart_ShipTypes.Series.Add(series10); - this.chart_ShipTypes.Series.Add(series11); - this.chart_ShipTypes.Series.Add(series12); - this.chart_ShipTypes.Size = new System.Drawing.Size(656, 440); + series4.BorderColor = System.Drawing.Color.Red; + series4.BorderWidth = 3; + series4.ChartArea = "ChartArea1"; + series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; + series4.Color = System.Drawing.Color.Transparent; + series4.CustomProperties = "AreaDrawingStyle=Polygon"; + series4.Legend = "Legend1"; + series4.MarkerBorderColor = System.Drawing.Color.Red; + series4.MarkerBorderWidth = 5; + series4.MarkerColor = System.Drawing.Color.Red; + series4.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Diamond; + series4.Name = "最大Lv"; + series5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + series5.BorderWidth = 3; + series5.ChartArea = "ChartArea1"; + series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; + series5.Color = System.Drawing.Color.Transparent; + series5.CustomProperties = "AreaDrawingStyle=Polygon"; + series5.Legend = "Legend1"; + series5.MarkerBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + series5.MarkerBorderWidth = 5; + series5.MarkerColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + series5.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; + series5.Name = "平均Lv"; + series6.BorderColor = System.Drawing.Color.Aqua; + series6.BorderWidth = 3; + series6.ChartArea = "ChartArea1"; + series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Radar; + series6.Color = System.Drawing.Color.Transparent; + series6.CustomProperties = "AreaDrawingStyle=Polygon"; + series6.Legend = "Legend1"; + series6.MarkerBorderColor = System.Drawing.Color.Aqua; + series6.MarkerBorderWidth = 5; + series6.MarkerColor = System.Drawing.Color.Aqua; + series6.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Square; + series6.Name = "最小Lv"; + this.chart_ShipTypes.Series.Add(series4); + this.chart_ShipTypes.Series.Add(series5); + this.chart_ShipTypes.Series.Add(series6); + this.chart_ShipTypes.Size = new System.Drawing.Size(637, 461); this.chart_ShipTypes.TabIndex = 4; this.chart_ShipTypes.Text = "艦種別(Lv1の艦を除く)"; // // tabControl_ShipType // - this.tabControl_ShipType.Controls.Add(this.tabPage1); - this.tabControl_ShipType.Controls.Add(this.tabPage2); - this.tabControl_ShipType.Location = new System.Drawing.Point(12, 39); + this.tabControl_ShipType.Controls.Add(this.tabPage_ShipType_Data); + this.tabControl_ShipType.Controls.Add(this.tabPage_ShipType_Chart); + this.tabControl_ShipType.Location = new System.Drawing.Point(3, 3); this.tabControl_ShipType.Name = "tabControl_ShipType"; this.tabControl_ShipType.SelectedIndex = 0; - this.tabControl_ShipType.Size = new System.Drawing.Size(676, 478); + this.tabControl_ShipType.Size = new System.Drawing.Size(644, 496); this.tabControl_ShipType.TabIndex = 5; // - // tabPage1 - // - this.tabPage1.Controls.Add(this.dataGridView_ShipTypes); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(668, 452); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "データ"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.checkBox_LvMin); - this.tabPage2.Controls.Add(this.checkBox_LvAvg); - this.tabPage2.Controls.Add(this.checkBox_LvMax); - this.tabPage2.Controls.Add(this.chart_ShipTypes); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(668, 452); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "レーダーチャート"; - this.tabPage2.UseVisualStyleBackColor = true; + // tabPage_ShipType_Data + // + this.tabPage_ShipType_Data.Controls.Add(this.dataGridView_ShipTypes); + this.tabPage_ShipType_Data.Location = new System.Drawing.Point(4, 22); + this.tabPage_ShipType_Data.Name = "tabPage_ShipType_Data"; + this.tabPage_ShipType_Data.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_ShipType_Data.Size = new System.Drawing.Size(636, 470); + this.tabPage_ShipType_Data.TabIndex = 0; + this.tabPage_ShipType_Data.Text = "データ"; + this.tabPage_ShipType_Data.UseVisualStyleBackColor = true; + // + // tabPage_ShipType_Chart + // + this.tabPage_ShipType_Chart.BackColor = System.Drawing.Color.White; + this.tabPage_ShipType_Chart.Controls.Add(this.checkBox_LvMin); + this.tabPage_ShipType_Chart.Controls.Add(this.checkBox_LvAvg); + this.tabPage_ShipType_Chart.Controls.Add(this.checkBox_LvMax); + this.tabPage_ShipType_Chart.Controls.Add(this.chart_ShipTypes); + this.tabPage_ShipType_Chart.Location = new System.Drawing.Point(4, 22); + this.tabPage_ShipType_Chart.Name = "tabPage_ShipType_Chart"; + this.tabPage_ShipType_Chart.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_ShipType_Chart.Size = new System.Drawing.Size(636, 470); + this.tabPage_ShipType_Chart.TabIndex = 1; + this.tabPage_ShipType_Chart.Text = "レーダーチャート"; // // checkBox_LvMax // this.checkBox_LvMax.AutoSize = true; this.checkBox_LvMax.Checked = true; this.checkBox_LvMax.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox_LvMax.Location = new System.Drawing.Point(602, 405); + this.checkBox_LvMax.Location = new System.Drawing.Point(570, 420); this.checkBox_LvMax.Name = "checkBox_LvMax"; this.checkBox_LvMax.Size = new System.Drawing.Size(60, 16); this.checkBox_LvMax.TabIndex = 5; @@ -303,7 +330,7 @@ private void InitializeComponent() this.checkBox_LvAvg.AutoSize = true; this.checkBox_LvAvg.Checked = true; this.checkBox_LvAvg.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox_LvAvg.Location = new System.Drawing.Point(602, 419); + this.checkBox_LvAvg.Location = new System.Drawing.Point(570, 434); this.checkBox_LvAvg.Name = "checkBox_LvAvg"; this.checkBox_LvAvg.Size = new System.Drawing.Size(60, 16); this.checkBox_LvAvg.TabIndex = 6; @@ -316,7 +343,7 @@ private void InitializeComponent() this.checkBox_LvMin.AutoSize = true; this.checkBox_LvMin.Checked = true; this.checkBox_LvMin.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox_LvMin.Location = new System.Drawing.Point(602, 433); + this.checkBox_LvMin.Location = new System.Drawing.Point(570, 448); this.checkBox_LvMin.Name = "checkBox_LvMin"; this.checkBox_LvMin.Size = new System.Drawing.Size(60, 16); this.checkBox_LvMin.TabIndex = 7; @@ -324,11 +351,194 @@ private void InitializeComponent() this.checkBox_LvMin.UseVisualStyleBackColor = true; this.checkBox_LvMin.CheckedChanged += new System.EventHandler(this.checkBox_LvMin_CheckedChanged); // + // tabControl_Parent + // + this.tabControl_Parent.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl_Parent.Controls.Add(this.tabPage_ShipType); + this.tabControl_Parent.Controls.Add(this.tabPage_Level); + this.tabControl_Parent.Location = new System.Drawing.Point(12, 27); + this.tabControl_Parent.Multiline = true; + this.tabControl_Parent.Name = "tabControl_Parent"; + this.tabControl_Parent.SelectedIndex = 0; + this.tabControl_Parent.Size = new System.Drawing.Size(676, 510); + this.tabControl_Parent.TabIndex = 6; + // + // tabPage_ShipType + // + this.tabPage_ShipType.BackColor = System.Drawing.SystemColors.Control; + this.tabPage_ShipType.Controls.Add(this.tabControl_ShipType); + this.tabPage_ShipType.Location = new System.Drawing.Point(22, 4); + this.tabPage_ShipType.Name = "tabPage_ShipType"; + this.tabPage_ShipType.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_ShipType.Size = new System.Drawing.Size(650, 502); + this.tabPage_ShipType.TabIndex = 0; + this.tabPage_ShipType.Text = "艦種別"; + // + // tabPage_Level + // + this.tabPage_Level.BackColor = System.Drawing.SystemColors.Control; + this.tabPage_Level.Controls.Add(this.tabControl_Level); + this.tabPage_Level.Location = new System.Drawing.Point(22, 4); + this.tabPage_Level.Name = "tabPage_Level"; + this.tabPage_Level.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_Level.Size = new System.Drawing.Size(650, 502); + this.tabPage_Level.TabIndex = 1; + this.tabPage_Level.Text = "レベル帯別"; + // + // tabControl_Level + // + this.tabControl_Level.Controls.Add(this.tabPage_Level_Data); + this.tabControl_Level.Controls.Add(this.tabPage_Level_Chart); + this.tabControl_Level.Location = new System.Drawing.Point(3, 3); + this.tabControl_Level.Name = "tabControl_Level"; + this.tabControl_Level.SelectedIndex = 0; + this.tabControl_Level.Size = new System.Drawing.Size(651, 496); + this.tabControl_Level.TabIndex = 0; + // + // tabPage_Level_Data + // + this.tabPage_Level_Data.Controls.Add(this.dataGridView_Level); + this.tabPage_Level_Data.Location = new System.Drawing.Point(4, 22); + this.tabPage_Level_Data.Name = "tabPage_Level_Data"; + this.tabPage_Level_Data.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_Level_Data.Size = new System.Drawing.Size(643, 470); + this.tabPage_Level_Data.TabIndex = 0; + this.tabPage_Level_Data.Text = "データ"; + this.tabPage_Level_Data.UseVisualStyleBackColor = true; + // + // tabPage_Level_Chart + // + this.tabPage_Level_Chart.BackColor = System.Drawing.Color.White; + this.tabPage_Level_Chart.Controls.Add(this.chart_Level); + this.tabPage_Level_Chart.Location = new System.Drawing.Point(4, 22); + this.tabPage_Level_Chart.Name = "tabPage_Level_Chart"; + this.tabPage_Level_Chart.Padding = new System.Windows.Forms.Padding(3); + this.tabPage_Level_Chart.Size = new System.Drawing.Size(643, 470); + this.tabPage_Level_Chart.TabIndex = 1; + this.tabPage_Level_Chart.Text = "グラフ"; + // + // dataGridView_Level + // + this.dataGridView_Level.AllowUserToAddRows = false; + this.dataGridView_Level.AllowUserToDeleteRows = false; + this.dataGridView_Level.AllowUserToResizeRows = false; + this.dataGridView_Level.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dataGridView_Level.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.dataGridViewTextBoxColumn7, + this.dataGridViewTextBoxColumn8}); + this.dataGridView_Level.Location = new System.Drawing.Point(3, 3); + this.dataGridView_Level.MultiSelect = false; + this.dataGridView_Level.Name = "dataGridView_Level"; + this.dataGridView_Level.ReadOnly = true; + this.dataGridView_Level.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.dataGridView_Level.RowTemplate.Height = 21; + this.dataGridView_Level.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView_Level.Size = new System.Drawing.Size(637, 464); + this.dataGridView_Level.TabIndex = 2; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.FillWeight = 40F; + this.dataGridViewTextBoxColumn1.HeaderText = "区分"; + this.dataGridViewTextBoxColumn1.MinimumWidth = 40; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + this.dataGridViewTextBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn1.Width = 40; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "艦種"; + this.dataGridViewTextBoxColumn2.MinimumWidth = 100; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + this.dataGridViewTextBoxColumn2.Resizable = System.Windows.Forms.DataGridViewTriState.False; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.FillWeight = 60F; + this.dataGridViewTextBoxColumn3.HeaderText = "2-39"; + this.dataGridViewTextBoxColumn3.MinimumWidth = 60; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + this.dataGridViewTextBoxColumn3.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn3.Width = 60; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.FillWeight = 60F; + this.dataGridViewTextBoxColumn4.HeaderText = "40-59"; + this.dataGridViewTextBoxColumn4.MinimumWidth = 60; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + this.dataGridViewTextBoxColumn4.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn4.Width = 60; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.FillWeight = 60F; + this.dataGridViewTextBoxColumn5.HeaderText = "60-79"; + this.dataGridViewTextBoxColumn5.MinimumWidth = 60; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + this.dataGridViewTextBoxColumn5.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn5.Width = 60; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.FillWeight = 60F; + this.dataGridViewTextBoxColumn6.HeaderText = "80-99"; + this.dataGridViewTextBoxColumn6.MinimumWidth = 60; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + this.dataGridViewTextBoxColumn6.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn6.Width = 60; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.FillWeight = 60F; + this.dataGridViewTextBoxColumn7.HeaderText = "100-127"; + this.dataGridViewTextBoxColumn7.MinimumWidth = 60; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn7.Width = 60; + // + // dataGridViewTextBoxColumn8 + // + this.dataGridViewTextBoxColumn8.FillWeight = 60F; + this.dataGridViewTextBoxColumn8.HeaderText = "128-"; + this.dataGridViewTextBoxColumn8.MinimumWidth = 60; + this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + this.dataGridViewTextBoxColumn8.ReadOnly = true; + this.dataGridViewTextBoxColumn8.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridViewTextBoxColumn8.Width = 60; + // + // chart_Level + // + chartArea4.AxisX.Title = "レベル帯"; + chartArea4.AxisY.Title = "隻数"; + chartArea4.Name = "ChartArea1"; + this.chart_Level.ChartAreas.Add(chartArea4); + legend4.Name = "Legend1"; + this.chart_Level.Legends.Add(legend4); + this.chart_Level.Location = new System.Drawing.Point(3, 6); + this.chart_Level.Name = "chart_Level"; + this.chart_Level.Size = new System.Drawing.Size(637, 461); + this.chart_Level.TabIndex = 0; + this.chart_Level.Text = "chart1"; + // // DialogFleetAnalysis // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(700, 529); - this.Controls.Add(this.tabControl_ShipType); + this.ClientSize = new System.Drawing.Size(700, 561); + this.Controls.Add(this.tabControl_Parent); this.Controls.Add(this.label1); this.Controls.Add(this.menuStrip1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; @@ -344,9 +554,17 @@ private void InitializeComponent() this.menuStrip1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.chart_ShipTypes)).EndInit(); this.tabControl_ShipType.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); + this.tabPage_ShipType_Data.ResumeLayout(false); + this.tabPage_ShipType_Chart.ResumeLayout(false); + this.tabPage_ShipType_Chart.PerformLayout(); + this.tabControl_Parent.ResumeLayout(false); + this.tabPage_ShipType.ResumeLayout(false); + this.tabPage_Level.ResumeLayout(false); + this.tabControl_Level.ResumeLayout(false); + this.tabPage_Level_Data.ResumeLayout(false); + this.tabPage_Level_Chart.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_Level)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chart_Level)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -368,10 +586,26 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem Reload_ToolStripMenuItem; private System.Windows.Forms.DataVisualization.Charting.Chart chart_ShipTypes; private System.Windows.Forms.TabControl tabControl_ShipType; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.TabPage tabPage_ShipType_Data; + private System.Windows.Forms.TabPage tabPage_ShipType_Chart; private System.Windows.Forms.CheckBox checkBox_LvMin; private System.Windows.Forms.CheckBox checkBox_LvAvg; private System.Windows.Forms.CheckBox checkBox_LvMax; + private System.Windows.Forms.TabControl tabControl_Parent; + private System.Windows.Forms.TabPage tabPage_ShipType; + private System.Windows.Forms.TabPage tabPage_Level; + private System.Windows.Forms.TabControl tabControl_Level; + private System.Windows.Forms.TabPage tabPage_Level_Data; + private System.Windows.Forms.TabPage tabPage_Level_Chart; + private System.Windows.Forms.DataGridView dataGridView_Level; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.DataVisualization.Charting.Chart chart_Level; } } \ No newline at end of file diff --git a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.cs b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.cs index ad2f484da..5f4dc795c 100644 --- a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.cs +++ b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.cs @@ -21,16 +21,43 @@ public DialogFleetAnalysis() InitializeComponent(); } + private string GetLevelChartAxisString(int num) + { + string retStr = ""; + switch (num) + { + case 0: + retStr = "2-39"; + break; + case 1: + retStr = "40-59"; + break; + case 2: + retStr = "60-79"; + break; + case 3: + retStr = "80-99"; + break; + case 4: + retStr = "100-127"; + break; + case 5: + retStr = "128-"; + break; + default: + break; + } + return retStr; + } + private void UpdateView() { + //鎮守府の艦隊データを取得 var ships = KCDatabase.Instance.Ships.Values; - //var equipments = KCDatabase.Instance.Equipments.Values; - //var masterEquipments = KCDatabase.Instance.MasterEquipments; - //int masterCount = masterEquipments.Values.Count(eq => !eq.IsAbyssalEquipment); - - //var allCount = equipments.GroupBy(eq => eq.EquipmentID).ToDictionary(group => group.Key, group => group.Count()); - //var remainCount = new Dictionary(allCount); + //################################ + //# 艦種別 + //################################ //Lv1でない艦の数を数える var shipTypeCount = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level != 1)); //Lv1でない艦の平均レベルを算出する @@ -41,15 +68,15 @@ private void UpdateView() var shipTypeLevelMax = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Where(s => s.Level != 1).Max(s => s.Level)); //Lv1でない艦の取得経験値合計を算出する var shipTypeExpSum = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Where(s => s.Level != 1).Sum(s => s.ExpTotal)); - + foreach (var st in shipTypeCount.Keys) { //Console.WriteLine(st+ "|" + shipTypeCount[st]); dataGridView_ShipTypes.Rows.Add(); int maxRowNum = dataGridView_ShipTypes.Rows.Count; - dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[0].Value = maxRowNum; //デフォルトソートで困るので通番を入れておく(艦種のIDではない) + dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[0].Value = maxRowNum; //デフォルトソートで困るので連番を入れておく(艦種のIDではない) dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[1].Value = st; - dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[2].Value = shipTypeCount[st] ; + dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[2].Value = shipTypeCount[st]; dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[3].Value = Math.Round(shipTypeLevelAvg[st]); dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[4].Value = shipTypeLevelMin[st]; dataGridView_ShipTypes.Rows[maxRowNum - 1].Cells[5].Value = shipTypeLevelMax[st]; @@ -57,8 +84,8 @@ private void UpdateView() } //並び変え:1列目(通番)の昇順 - DataGridViewColumn sortColumn = dataGridView_ShipTypes.Columns[0]; - dataGridView_ShipTypes.Sort(sortColumn, ListSortDirection.Ascending); + DataGridViewColumn sortColumnShipType = dataGridView_ShipTypes.Columns[0]; + dataGridView_ShipTypes.Sort(sortColumnShipType, ListSortDirection.Ascending); //レーダーチャート for (int i = 0; i < dataGridView_ShipTypes.RowCount; i++) @@ -67,8 +94,57 @@ private void UpdateView() chart_ShipTypes.ChartAreas[0].AxisX.CustomLabels.Add(i, i, dataGridView_ShipTypes[1, i].Value.ToString()); //項目の値 chart_ShipTypes.Series[0].Points.Add(new DataPoint(0, Int32.Parse(dataGridView_ShipTypes[5, i].Value.ToString()))); //最大Lv - chart_ShipTypes.Series[1].Points.Add(new DataPoint(0, Int32.Parse(dataGridView_ShipTypes[3, i].Value.ToString()))); //平均Lv - chart_ShipTypes.Series[2].Points.Add(new DataPoint(0, Int32.Parse(dataGridView_ShipTypes[4, i].Value.ToString()))); //最小Lv + chart_ShipTypes.Series[1].Points.Add(new DataPoint(0, Int32.Parse(dataGridView_ShipTypes[3, i].Value.ToString()))); //平均Lv + chart_ShipTypes.Series[2].Points.Add(new DataPoint(0, Int32.Parse(dataGridView_ShipTypes[4, i].Value.ToString()))); //最小Lv + } + + //######################################## + //# レベル帯別 + //######################################## + //2-39 + var shipTypeLevelRange1 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 2 && s.Level <= 39)); + //40-59 + var shipTypeLevelRange2 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 40 && s.Level <= 59)); + //60-79 + var shipTypeLevelRange3 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 60 && s.Level <= 79)); + //80-99 + var shipTypeLevelRange4 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 80 && s.Level <= 99)); + //100-127 + var shipTypeLevelRange5 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 100 && s.Level <= 128)); + //128- + var shipTypeLevelRange6 = ships.GroupBy(s => s.MasterShip.ShipTypeName).ToDictionary(group => group.Key, group => group.Count(s => s.Level >= 128)); + + foreach (var st in shipTypeLevelRange1.Keys) + { + dataGridView_Level.Rows.Add(); + int maxRowNum = dataGridView_Level.Rows.Count; + dataGridView_Level.Rows[maxRowNum - 1].Cells[0].Value = maxRowNum; //デフォルトソートで困るので連番を入れておく + dataGridView_Level.Rows[maxRowNum - 1].Cells[1].Value = st; + dataGridView_Level.Rows[maxRowNum - 1].Cells[2].Value = shipTypeLevelRange1[st]; + dataGridView_Level.Rows[maxRowNum - 1].Cells[3].Value = shipTypeLevelRange2[st]; + dataGridView_Level.Rows[maxRowNum - 1].Cells[4].Value = shipTypeLevelRange3[st]; + dataGridView_Level.Rows[maxRowNum - 1].Cells[5].Value = shipTypeLevelRange4[st]; + dataGridView_Level.Rows[maxRowNum - 1].Cells[6].Value = shipTypeLevelRange5[st]; + dataGridView_Level.Rows[maxRowNum - 1].Cells[7].Value = shipTypeLevelRange6[st]; + } + + //並び変え:1列目(通番)の昇順 + DataGridViewColumn sortColumnLevel = dataGridView_Level.Columns[0]; + dataGridView_Level.Sort(sortColumnLevel, ListSortDirection.Ascending); + + //積み上げ棒グラフ + for (int i = 0; i < dataGridView_Level.RowCount; i++) + { + //Seriesを追加する + chart_Level.Series.Add(dataGridView_Level[1, i].Value.ToString()); + chart_Level.Series[i].ChartType = SeriesChartType.StackedColumn; + //DataPoint設定 + for (int j = 2; j < dataGridView_Level.ColumnCount; j++) + { + chart_Level.Series[i].Points.AddXY(GetLevelChartAxisString(j-2), Int32.Parse(dataGridView_Level[j, i].Value.ToString())); + int maxPointNum = chart_Level.Series[i].Points.Count; + chart_Level.Series[i].Points[maxPointNum - 1].ToolTip = dataGridView_Level[1, i].Value.ToString()+ ":" +dataGridView_Level[j, i].Value.ToString(); + } } } @@ -82,33 +158,57 @@ private void DialogFleetAnalysis_Load(object sender, EventArgs e) private void SaveCSV_ToolStripMenuItem_Click(object sender, EventArgs e) { var now = System.DateTime.Now; - string savedir = Directory.GetCurrentDirectory() + "\\Record\\FleetAnalysis_"+ now.ToString("yyyyMMddHHmmss") + ".csv"; - - StreamWriter sw = new StreamWriter(savedir, false, Encoding.Default); - sw.Write("通番,艦種,隻数,平均Lv,最小Lv,最大Lv,取得経験値,"); - sw.WriteLine(); + string dirNameParent = Directory.GetCurrentDirectory() + "\\FleetAnalysis"; + string dirNameDate = dirNameParent + "\\" +now.ToString("yyyyMMdd_HHmmss"); + + //ディレクトリ作成 + Directory.CreateDirectory(dirNameParent); + Directory.CreateDirectory(dirNameDate); + + //艦種別 + string savedir1 = dirNameDate + "\\ShipType.csv"; + StreamWriter sw1 = new StreamWriter(savedir1, false, Encoding.Default); + sw1.Write("通番,艦種,隻数,平均Lv,最小Lv,最大Lv,取得経験値,"); + sw1.WriteLine(); for (int i = 0; i < dataGridView_ShipTypes.RowCount; i++) { for (int j = 0; j < dataGridView_ShipTypes.ColumnCount; j++) { - sw.Write(dataGridView_ShipTypes[j, i].Value + ","); + sw1.Write(dataGridView_ShipTypes[j, i].Value + ","); } - sw.WriteLine(); + sw1.WriteLine(); } - sw.Close(); + sw1.Close(); + + //レベル帯別 + string savedir2 = dirNameDate + "\\Level.csv"; + StreamWriter sw2 = new StreamWriter(savedir2, false, Encoding.Default); + sw2.Write("区分,艦種,0-39,40-59,60-79,80-99,100-127,128-,"); + sw2.WriteLine(); + for (int i = 0; i < dataGridView_Level.RowCount; i++) + { + for (int j = 0; j < dataGridView_Level.ColumnCount; j++) + { + sw2.Write(dataGridView_Level[j, i].Value + ","); + } + sw2.WriteLine(); + } + sw2.Close(); - MessageBox.Show("保存完了:"+savedir); + MessageBox.Show("保存完了\n"+savedir1 +"\n"+ savedir2); } private void Reload_ToolStripMenuItem_Click(object sender, EventArgs e) { dataGridView_ShipTypes.Rows.Clear(); - chart_ShipTypes.ChartAreas[0].AxisX.CustomLabels.Clear(); chart_ShipTypes.Series[0].Points.Clear(); chart_ShipTypes.Series[1].Points.Clear(); chart_ShipTypes.Series[2].Points.Clear(); + dataGridView_Level.Rows.Clear(); + chart_Level.Series.Clear(); + UpdateView(); } diff --git a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.resx b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.resx index 283af31af..433756c5d 100644 --- a/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.resx +++ b/ElectronicObserver/Window/Dialog/DialogFleetAnalysis.resx @@ -162,4 +162,55 @@ 17, 17 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 37 + \ No newline at end of file diff --git a/README.md b/README.md index 61b650268..1e71c1d30 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,8 @@ ## このForkリポジトリでの更新履歴 -* 202107-- - * ツール:艦隊分析を追加(まだ粗削り) +* 20210718 + * ツール:艦隊分析を追加 * 任務:一部の任務のカテゴリが不明になっているのを修正 * 任務:一部の任務の進捗表示対応(クォータリー、イヤーリーの編成縛り演習任務など) * 20210713