|
@@ -299,9 +299,106 @@ namespace OTSIncAReportApp.Control_ECharts
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- #endregion
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region echarts
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 按照颗粒类别重新显示chart图
|
|
|
+ /// </summary>
|
|
|
+
|
|
|
+ public void DisplayTheChartAgainByParticleCategory(ReportCondition sourceGridData)
|
|
|
+ {
|
|
|
+ string stdId = "";
|
|
|
+ int stdIdIndex = 0;
|
|
|
+ //find the stdId condition
|
|
|
+ var STDIdItm = sourceGridData.ConditionItemList.Find(s => s.iItemId == OTS_REPORT_PROP_GRID_ITEMS.STD_ID);
|
|
|
+ if (STDIdItm != null)
|
|
|
+ {
|
|
|
+ stdId = STDIdItm.itemDisplayVal.ToString();
|
|
|
+ stdIdIndex = STDIdItm.comboDownList.IndexOf(stdId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string sou = "";
|
|
|
+ int sel = 0;//选择颗粒范围(0为全部颗粒1为选择颗粒)
|
|
|
+ if (Report)
|
|
|
+ {
|
|
|
+ sou = m_DataMgr.ResultFilesList[m_DataMgr.GetWorkingResultId()].anotherFileName.ToString();
|
|
|
+ sel = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sou = m_conditionChoose.m_conditionData.GetPropItemDisplayValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE).ToString();
|
|
|
+ sel = m_ReportApp.m_conditionChoose.m_conditionData.GetComboDownListIndexByItemName(OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
|
|
|
+
|
|
|
+ }
|
|
|
+ Report = false;
|
|
|
+
|
|
|
+ if (m_ReportApp.more)
|
|
|
+ {
|
|
|
+ m_ReportApp.trans = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ m_ReportApp.trans = true;
|
|
|
+ }
|
|
|
+ m_ReportApp.more = true;
|
|
|
+ List<DataTable> list_dt = GetListJsonStr();
|
|
|
+
|
|
|
+ bool bl = false;
|
|
|
+ for (int i = 0; i < list_dt.Count; i++)
|
|
|
+ {
|
|
|
+ if (list_dt[i].Rows.Count > 0)
|
|
|
+ {
|
|
|
+ bl = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DataTable> listDt = new List<DataTable>();
|
|
|
+ for (int i = 0; i < list_dt.Count; i++)
|
|
|
+ {
|
|
|
+ DataTable dt = list_dt[i].Clone();
|
|
|
+ for (int a = 0; a < list_dt[i].Rows.Count; a++)
|
|
|
+ {
|
|
|
+ if (list_dt[i].Rows[a]["name"].ToString() != "")
|
|
|
+ {
|
|
|
+ dt.Rows.Add(list_dt[i].Rows[a].ItemArray);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ listDt.Add(dt);
|
|
|
+ }
|
|
|
+
|
|
|
+ prListData = listDt.Copy();
|
|
|
+ prListString.Clear();
|
|
|
+ for (int i = 0; i < list_dt.Count; i++)
|
|
|
+ {
|
|
|
+ ResultFile resultFile = m_DataMgr.ResultFilesList.Find(s => s.anotherFileName == sou.Split('+')[i]);
|
|
|
+ string str = resultFile.anotherFileName;
|
|
|
+ prListString.Add(str);
|
|
|
+ }
|
|
|
+
|
|
|
+ panel1.Dock = DockStyle.Fill;
|
|
|
+ chartControl1.Dock = DockStyle.Fill;
|
|
|
+ //int sel_pro = m_conditionChoose.m_conditionData.ProItemProIndex();
|
|
|
+ //if (sel_pro == 2)
|
|
|
+ //{
|
|
|
+ comboBox1.Visible = false;
|
|
|
+ Graphics_Stacking(list_dt[0],stdId);
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // comboBox1.Visible = true;
|
|
|
+ // Graphics();
|
|
|
+ //}
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- #region echarts
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通过m_list_chartstruct,组合json数据格式
|
|
@@ -545,27 +642,142 @@ namespace OTSIncAReportApp.Control_ECharts
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- private void Graphics_Stacking(DataTable dt)
|
|
|
+ private void Graphics_Stacking(DataTable dt,string stdId)
|
|
|
{
|
|
|
chartControl1.Series.Clear();
|
|
|
|
|
|
+ DataTable dataTable = new DataTable();
|
|
|
+ dataTable.Columns.Add("name");
|
|
|
+ dataTable.Columns.Add("size");
|
|
|
+
|
|
|
+ if (stdId != "All")
|
|
|
+ {
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ if (dt.Rows[i]["name"].ToString() == stdId)
|
|
|
+ {
|
|
|
+ for (int a = 7; a < dt.Columns.Count; a++)
|
|
|
+ {
|
|
|
+ DataRow dr = dataTable.NewRow();
|
|
|
+ dr["name"] = dt.Columns[a].ColumnName;
|
|
|
+ dr["size"] = Convert.ToInt16(dt.Rows[i][a]);
|
|
|
+ dataTable.Rows.Add(dr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (stdId == "All")
|
|
|
+ {
|
|
|
+ List<Series> seriesList = new List<Series>();
|
|
|
+
|
|
|
+ DataTable data = new DataTable();
|
|
|
+ data.Columns.Add("name");
|
|
|
+ data.Columns.Add("range");
|
|
|
+ data.Columns.Add("num");
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ for (int a = 7; a < dt.Columns.Count; a++)
|
|
|
+ {
|
|
|
+ DataRow dr = data.NewRow();
|
|
|
+ dr["name"] = dt.Rows[i]["name"].ToString();
|
|
|
+ dr["range"] = dt.Columns[a].ColumnName;
|
|
|
+ dr["num"] = dt.Rows[i][a].ToString();
|
|
|
+ data.Rows.Add(dr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ foreach (DataRow dr in data.DefaultView.ToTable(true, "name").Rows)
|
|
|
+ {
|
|
|
+ Series s = new Series(dr["name"].ToString(), ViewType.StackedBar)
|
|
|
+ {
|
|
|
+ LegendTextPattern = dr["name"].ToString(),
|
|
|
+ ArgumentScaleType = ScaleType.Qualitative,
|
|
|
+ };
|
|
|
+ foreach (DataRow drl in data.Select("name='" + dr["name"].ToString() + "'"))
|
|
|
+ s.Points.Add(new SeriesPoint(drl["range"].ToString(), int.Parse(drl["num"].ToString())));
|
|
|
+ s.LabelsVisibility = DefaultBoolean.False;
|
|
|
+ seriesList.Add(s);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (DataRow dr in data.DefaultView.ToTable(true, "name").Rows)
|
|
|
+ {
|
|
|
+ Series s = new Series(dr["name"].ToString(), ViewType.StackedBar)
|
|
|
+ {
|
|
|
+ LegendTextPattern = dr["name"].ToString(),
|
|
|
+ ArgumentScaleType = ScaleType.Qualitative,
|
|
|
+ };
|
|
|
+ foreach (DataRow drl in data.Select("name='" + dr["name"].ToString() + "'"))
|
|
|
+ s.Points.Add(new SeriesPoint(drl["range"].ToString(), int.Parse(drl["num"].ToString())));
|
|
|
+ s.LabelsVisibility = DefaultBoolean.False;
|
|
|
+ seriesList.Add(s);
|
|
|
+ }
|
|
|
+ foreach (Series sr in seriesList.ToArray())
|
|
|
+ chartControl1.Series.Add(sr);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 假设你已经有一个 ChartControl 实例,并且已经添加了一个饼图 Series
|
|
|
+ Series series = new Series(stdId, ViewType.Bar);
|
|
|
+
|
|
|
+ for (int a = 0; a < dataTable.Rows.Count; a++)
|
|
|
+ {
|
|
|
+ string name = dataTable.Rows[a]["name"].ToString();
|
|
|
+ double Cunt = Convert.ToDouble(dataTable.Rows[a]["size"]);
|
|
|
+ series.Points.Add(new SeriesPoint(name, Cunt));
|
|
|
+ }
|
|
|
+ series.LabelsVisibility = DefaultBoolean.True;
|
|
|
+ chartControl1.Series.Add(series);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "";
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisX.Title.Text = "";
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility = DefaultBoolean.True;
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisX.Title.Visibility = DefaultBoolean.True;
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisY.Title.Font = new Font("Tahoma", 9);
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisX.Title.Font = new Font("Tahoma", 9);
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisY.Title.Alignment = System.Drawing.StringAlignment.Far;
|
|
|
+ ((XYDiagram)chartControl1.Diagram).AxisX.Title.Alignment = System.Drawing.StringAlignment.Far;
|
|
|
+
|
|
|
+ //图例的位置定义
|
|
|
+ chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.Top;
|
|
|
+ chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.RightOutside;
|
|
|
+ chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
|
|
|
+ chartControl1.Legend.Direction = LegendDirection.TopToBottom;
|
|
|
+
|
|
|
+ //十字准线光标
|
|
|
+ chartControl1.CrosshairEnabled = DefaultBoolean.True;
|
|
|
+ chartControl1.CrosshairOptions.ShowValueLine = true;
|
|
|
+ chartControl1.CrosshairOptions.ShowArgumentLabels = true;
|
|
|
+ }
|
|
|
+ private void Graphics_Stacking(DataTable dt)
|
|
|
+ {
|
|
|
+ chartControl1.Series.Clear();
|
|
|
+
|
|
|
List<Series> seriesList = new List<Series>();
|
|
|
|
|
|
- DataTable data = new DataTable();
|
|
|
- data.Columns.Add("name");
|
|
|
+ DataTable data = new DataTable();
|
|
|
+ data.Columns.Add("name");
|
|
|
data.Columns.Add("range");
|
|
|
data.Columns.Add("num");
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int a = 7; a < dt.Columns.Count; a++)
|
|
|
- {
|
|
|
+ {
|
|
|
+ for (int a = 7; a < dt.Columns.Count; a++)
|
|
|
+ {
|
|
|
DataRow dr = data.NewRow();
|
|
|
- dr["name"] = dt.Rows[i]["name"].ToString();
|
|
|
- dr["range"] = dt.Columns[a].ColumnName;
|
|
|
- dr["num"] = dt.Rows[i][a].ToString();
|
|
|
- data.Rows.Add(dr);
|
|
|
+ dr["name"] = dt.Rows[i]["name"].ToString();
|
|
|
+ dr["range"] = dt.Columns[a].ColumnName;
|
|
|
+ dr["num"] = dt.Rows[i][a].ToString();
|
|
|
+ data.Rows.Add(dr);
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
foreach (DataRow dr in data.DefaultView.ToTable(true, "name").Rows)
|