private void draw() { int posY = 0; //ПОИСК КРАЙНИХ ИНДЕКСОВ СПИСКА ПО ДАТЕ foreach (devCommit tempCom in dataList) { if (tempCom.dattim.CompareTo(dPicker1.Value) >= 0) { a = dataList.IndexOf(tempCom); break; } } foreach (devCommit tempCom in dataList) { if (tempCom.dattim.CompareTo(dPicker2.Value) == 0) { b = dataList.IndexOf(tempCom); break; } else if (tempCom.dattim.CompareTo(dPicker2.Value) > 0) { b = dataList.IndexOf(tempCom) - 1; } } infoBox.Controls.Clear(); //ВЫВОД В ЗАВИСИМОСТИ ОТ ВЫБРАННОГО ТИПА //ВЫВОД ГРАФИКОВ/ДИАГРАММ if (typeCombo.SelectedIndex == 0 || typeCombo.SelectedIndex == 1) { foreach (ToolStripMenuItem curpar in par.DropDownItems) { if (!curpar.Checked || curpar.Text == "Отметить все") { continue; } Chart tempChart = new Chart(); ChartArea chartArea1 = new ChartArea(); Legend Legend1 = new Legend(); Title title = new Title(); title.Text = curpar.Text; title.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); chartArea1.Name = "chartArea_" + curpar.Name; Legend1.Name = "legend_" + curpar.Name; tempChart.Name = "chart_" + curpar.Name; tempChart.Text = curpar.Text; chartArea1.CursorX.IsUserEnabled = true; chartArea1.CursorX.IsUserSelectionEnabled = true; chartArea1.AxisX.ScaleView.Zoomable = true; chartArea1.AxisX.ScrollBar.IsPositionedInside = false; tempChart.Size = new System.Drawing.Size(infoBox.Width - 30, 320); tempChart.Location = new System.Drawing.Point(0, posY); posY += 350; tempChart.Legends.Add(Legend1); tempChart.Titles.Add(title); tempChart.ChartAreas.Add(chartArea1); infoBox.Controls.Add(tempChart); foreach (ToolStripMenuItem id in id_dev.DropDownItems) { if (!id.Checked || id.Text == "Отметить все") { continue; } Series ser = new Series(); ser.Legend = "legend_" + curpar.Name; ser.BorderWidth = 3; ser.LegendText = id.Text; ser.Name = "ser_" + curpar.Name + id.Text; ser.ChartArea = "chartArea_" + curpar.Name; if (typeCombo.SelectedIndex == 0) { ser.ChartType = SeriesChartType.Line; } else { ser.ChartType = SeriesChartType.Column; } tempChart.Series.Add(ser); } } for (int i = a, count = 0; i < b + 1; i++) { devCommit tempCom = dataList[i]; bool flag = false; foreach (ToolStripMenuItem s in id_dev.DropDown.Items) { if (s.Checked && s.Text == tempCom.dev_id.ToString()) { flag = true; } } if (!flag) { continue; } count++; foreach (ToolStripMenuItem tempItem in par.DropDownItems) { if (tempItem.Checked && tempItem.Text != "Отметить все") { Chart ch = (infoBox.Controls["chart_" + tempItem.Name] as Chart); Series s = (infoBox.Controls["chart_" + tempItem.Name] as Chart).Series["ser_" + tempItem.Name + tempCom.dev_id.ToString()]; s.Points.AddXY(tempCom.date, Convert.ToDouble(tempCom.GetField(tempItem.Name))); if (tempItem.Name == "temp") { Console.WriteLine(tempCom.temp); } if (s.Points.Count == 1) { //ch.ChartAreas["chartArea_" + tempItem.Name].AxisX.ScaleView.Zoom(0, 4); ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Maximum = Convert.ToDouble(tempCom.GetField(tempItem.Name)); ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Minimum = Convert.ToDouble(tempCom.GetField(tempItem.Name)); } if (ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Maximum < Convert.ToDouble(tempCom.GetField(tempItem.Name))) { ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Maximum = Convert.ToDouble(tempCom.GetField(tempItem.Name)); } else if (ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Minimum > Convert.ToDouble(tempCom.GetField(tempItem.Name))) { ch.ChartAreas["chartArea_" + tempItem.Name].AxisY.Minimum = Convert.ToDouble(tempCom.GetField(tempItem.Name)); } } } } } //ВЫВОД ТАБЛИЦЫ С ИНФОРМЦИЕЙ if (typeCombo.SelectedIndex == 2) { DataGridView data = new DataGridView(); data.Size = infoBox.Size; data.ColumnCount = 8; //data.RowCount = 1; data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; data.Columns[0].HeaderText = "ID"; data.Columns[0].Name = "dev_id"; data.Columns[1].HeaderText = "Дата"; data.Columns[0].Name = "date"; data.Columns[2].HeaderText = "Время"; data.Columns[0].Name = "time"; data.ColumnHeadersHeight = 80; int count = 3; foreach (ToolStripMenuItem curpar in par.DropDownItems) { if (!curpar.Checked || curpar.Text == "Отметить все") { continue; } data.Columns[count].HeaderText = curpar.Text; data.Columns[count].Name = curpar.Name; count++; } data.ColumnCount = count; int rowCount = 0; for (int i = a; i < b + 1; i++) { devCommit tempCom = dataList[i]; bool flag = false; foreach (ToolStripMenuItem s in id_dev.DropDown.Items) { if (s.Checked && s.Text == tempCom.dev_id.ToString()) { flag = true; } } if (!flag) { continue; } data.RowCount++; int colCount = 3; data.Rows[rowCount].Cells[0].Value = tempCom.dev_id; data.Rows[rowCount].Cells[1].Value = tempCom.date; data.Rows[rowCount].Cells[2].Value = tempCom.time; foreach (ToolStripMenuItem tempItem in par.DropDownItems) { if (tempItem.Checked && tempItem.Text != "Отметить все") { data.Rows[rowCount].Cells[colCount].Value = tempCom.GetField(tempItem.Name); colCount++; } } rowCount++; } //data.RowCount--; infoBox.Controls.Add(data); } }
private void reptForm_Load(object sender, EventArgs e) { data.Rows.Clear(); data.ColumnCount = 5; data.DefaultCellStyle.WrapMode = DataGridViewTriState.True; data.Columns[0].HeaderText = "ID"; data.Columns[1].HeaderText = "Дата"; data.Columns[2].HeaderText = "Время"; data.Columns[3].HeaderText = "Событие"; data.Columns[4].HeaderText = "Значение - Крит. значение"; data.Columns[0].Width = 40; data.Columns[3].Width = 300; int rowCount = 0; for (int i = a; i < b + 1; i++) { devCommit tempCom = dataList[i]; bool flag = false; foreach (ToolStripMenuItem s in id_dev.DropDown.Items) { if (s.Checked && s.Text == tempCom.dev_id.ToString()) { flag = true; } } if (!flag) { continue; } foreach (ToolStripMenuItem tempItem in par.DropDownItems) { if (tempItem.Checked && tempItem.Text != "Отметить все") { int whatHappened = 0; switch (tempItem.Name) { case "temp": if (tempCom.temp >= 0.95 * critParam.temp && tempCom.temp < critParam.temp) { whatHappened = 1; } else if (tempCom.temp >= critParam.temp) { whatHappened = 2; } break; case "vibr": if (tempCom.vibr >= 0.95 * critParam.vibr && tempCom.vibr < critParam.vibr) { whatHappened = 1; } else if (tempCom.vibr >= critParam.vibr) { whatHappened = 2; } break; case "loading": if (tempCom.loading >= 0.80 * critParam.loading && tempCom.loading < 0.95 * critParam.loading) { whatHappened = 1; } else if (tempCom.loading >= 0.95 * critParam.loading) { whatHappened = 2; } break; case "power": if (tempCom.power >= 0.95 * critParam.power && tempCom.power < critParam.power) { whatHappened = 1; } else if (tempCom.power >= critParam.power) { whatHappened = 2; } break; case "work_time": if (tempCom.work_time >= 0.85 * critParam.work_time && tempCom.work_time < critParam.work_time) { whatHappened = 1; } else if (tempCom.work_time >= critParam.work_time) { whatHappened = 2; } break; } if (whatHappened > 0) { data.RowCount++; data.Rows[rowCount].Height = 60; data.Rows[rowCount].Cells[0].Value = tempCom.dev_id; data.Rows[rowCount].Cells[1].Value = tempCom.date; data.Rows[rowCount].Cells[2].Value = tempCom.time; data.Rows[rowCount].Cells[3].Value = "Значение параметра \"" + tempItem.Text + "\" "; if (whatHappened == 1) { data.Rows[rowCount].Cells[3].Value += "приближается к критическому"; } else { data.Rows[rowCount].Cells[3].Value += "превысило критическое"; data.Rows[rowCount].Cells[3].Style.BackColor = Color.Red; } data.Rows[rowCount].Cells[4].Value = tempCom.GetField(tempItem.Name) + " - " + critParam.GetField(tempItem.Name); rowCount++; } } } } }