Bläddra i källkod

报表饼图元素大小排序,颗粒列表去除元素后进行归一化

zhangjiaxin 2 år sedan
förälder
incheckning
5c5634981a

+ 59 - 24
OTSIncAReportApp/1-UI/OTSTemplateDesigner/Export_ReportTemplate.cs

@@ -1105,36 +1105,42 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
                     dr["Class"] = dt_ParticlesGridDevidePage.Rows[i_row]["typename"].ToString();
 
                     GetMaxElementFromDataTable(dt_ParticlesGridDevidePage, i_row, out List<string> list_max_elementname, out List<double> list_max_elementvale);
+
+                    double  colVal = 0;
+                    for (int i=0;i< list_max_elementvale.Count;i++)
+                    {
+                        colVal = colVal + Convert.ToDouble(list_max_elementvale[i]);
+                    }
                     //元素1
                     dr["ColName1"] = list_max_elementname[0];
-                    dr["ColVal1"] = list_max_elementvale[0].ToString();
+                    dr["ColVal1"] = ParameterNormalization(colVal, list_max_elementvale[0]);
                     //元素2
                     dr["ColName2"] = list_max_elementname[1];
-                    dr["ColVal2"] = list_max_elementvale[1].ToString();
+                    dr["ColVal2"] = ParameterNormalization(colVal, list_max_elementvale[1]);
                     //元素3
                     dr["ColName3"] = list_max_elementname[2];
-                    dr["ColVal3"] = list_max_elementvale[2].ToString();
+                    dr["ColVal3"] = ParameterNormalization(colVal, list_max_elementvale[2]);
                     //元素4
                     dr["ColName4"] = list_max_elementname[3];
-                    dr["ColVal4"] = list_max_elementvale[3].ToString();
+                    dr["ColVal4"] = ParameterNormalization(colVal, list_max_elementvale[3]);
                     //元素5
                     dr["ColName5"] = list_max_elementname[4];
-                    dr["ColVal5"] = list_max_elementvale[4].ToString();
+                    dr["ColVal5"] = ParameterNormalization(colVal, list_max_elementvale[4]);
                     //元素6
                     dr["ColName6"] = list_max_elementname[5];
-                    dr["ColVal6"] = list_max_elementvale[5].ToString();
+                    dr["ColVal6"] = ParameterNormalization(colVal, list_max_elementvale[5]);
                     //元素7
-                    dr["ColName7"] = list_max_elementname[7];
-                    dr["ColVal7"] = list_max_elementvale[7].ToString();
+                    dr["ColName7"] = list_max_elementname[6];
+                    dr["ColVal7"] = ParameterNormalization(colVal, list_max_elementvale[6]);
                     //元素8
-                    dr["ColName8"] = list_max_elementname[8];
-                    dr["ColVal8"] = list_max_elementvale[8].ToString();
+                    dr["ColName8"] = list_max_elementname[7];
+                    dr["ColVal8"] = ParameterNormalization(colVal, list_max_elementvale[7]);
                     //元素6
-                    dr["ColName9"] = list_max_elementname[9];
-                    dr["ColVal9"] = list_max_elementvale[9].ToString();
+                    dr["ColName9"] = list_max_elementname[8];
+                    dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[8]);
                     //元素6
-                    dr["ColName9"] = list_max_elementname[10];
-                    dr["ColVal9"] = list_max_elementvale[10].ToString();
+                    dr["ColName9"] = list_max_elementname[9];
+                    dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[9]);
 
                     DT_Largest20.Rows.Add(dr);
                 }
@@ -1142,6 +1148,21 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             #endregion
             return DT_Largest20;
         }
+        private string ParameterNormalization(double a_mi,double m)
+        {
+            double ColVal = Convert.ToDouble(m / a_mi * 100);
+            if (ColVal == 0)
+            {
+                return "";
+            }
+            else
+            {
+                
+                return  Math.Round(ColVal, 2).ToString();
+            }
+
+        }
+
 
         public void Get_dev_kllb_data_frame(c_TemplateClass m_mbszclass, out DataTable file_pic, out List<DataTable> list_dt)
         {
@@ -1319,36 +1340,42 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
 
 
                     GetMaxElementFromDataTable(dt, i_row, out List<string> list_max_elementname, out List<double> list_max_elementvale);
+                    double colVal = 0;
+                    for (int i = 0; i < list_max_elementvale.Count; i++)
+                    {
+                        colVal = colVal + Convert.ToDouble(list_max_elementvale[i]);
+                    }
+
                     //元素1
                     dr["ColName1"] = list_max_elementname[0];
-                    dr["ColVal1"] = list_max_elementvale[0].ToString();
+                    dr["ColVal1"] = ParameterNormalization(colVal, list_max_elementvale[0]);
                     //元素2
                     dr["ColName2"] = list_max_elementname[1];
-                    dr["ColVal2"] = list_max_elementvale[1].ToString();
+                    dr["ColVal2"] = ParameterNormalization(colVal, list_max_elementvale[1]);
                     //元素3
                     dr["ColName3"] = list_max_elementname[2];
-                    dr["ColVal3"] = list_max_elementvale[2].ToString();
+                    dr["ColVal3"] = ParameterNormalization(colVal, list_max_elementvale[2]);
                     //元素4
                     dr["ColName4"] = list_max_elementname[3];
-                    dr["ColVal4"] = list_max_elementvale[3].ToString();
+                    dr["ColVal4"] = ParameterNormalization(colVal, list_max_elementvale[3]);
                     //元素5
                     dr["ColName5"] = list_max_elementname[4];
-                    dr["ColVal5"] = list_max_elementvale[4].ToString();
+                    dr["ColVal5"] = ParameterNormalization(colVal, list_max_elementvale[4]);
                     //元素6
                     dr["ColName6"] = list_max_elementname[5];
-                    dr["ColVal6"] = list_max_elementvale[5].ToString();
+                    dr["ColVal6"] = ParameterNormalization(colVal, list_max_elementvale[5]);
                     //元素6
                     dr["ColName7"] = list_max_elementname[6];
-                    dr["ColVal7"] = list_max_elementvale[6].ToString();
+                    dr["ColVal7"] = ParameterNormalization(colVal, list_max_elementvale[6]);
                     //元素6
                     dr["ColName8"] = list_max_elementname[7];
-                    dr["ColVal8"] = list_max_elementvale[7].ToString();
+                    dr["ColVal8"] = ParameterNormalization(colVal, list_max_elementvale[7]);
                     //元素6
                     dr["ColName9"] = list_max_elementname[8];
-                    dr["ColVal9"] = list_max_elementvale[8].ToString();
+                    dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[8]);
                     //元素6
                     dr["ColName10"] = list_max_elementname[9];
-                    dr["ColVal10"] = list_max_elementvale[9].ToString();
+                    dr["ColVal10"] = ParameterNormalization(colVal, list_max_elementvale[9]);
 
                     FrameGraphSubTable.Rows.Add(dr);
                 }
@@ -2002,6 +2029,14 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             DataTable dtp = particledata.GetParticleAllHaveXray(filedAndParticl);
             //DataTable dtp = particledata.GetParticleHaveXray(filedAndParticl);
 
+            for (int i=0;i<dtp.Rows.Count;i++)
+            {
+                if (Convert.ToInt32( dtp.Rows[i]["TypeId"])< 0 || dtp.Rows[i]["TypeName"].ToString()== "Invalid")
+                {
+                    dtp.Rows[i].Delete();
+                }
+            }
+            dtp.AcceptChanges();
             //创建一个临时表
             DataTable ret_dt = new DataTable();
             //然后额外存放三列,用于存放拆分后三个顶点的值

+ 49 - 9
OTSIncAReportApp/ReportTemplate/OTS_DEVReport.cs

@@ -244,8 +244,13 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
                 xrTa_ParticleSizeTable.Rows.Add(row);
 
             }
-            
+
             #region 大分类chart图
+
+            DataView dv = class_dt.DefaultView;
+            dv.Sort = "total DESC";
+            DataTable dt_class_dt = dv.ToTable();
+
             // 实例化饼图对象
             Series pieSeriesClass = new Series("颗粒尺寸大分类", ViewType.Pie);
             pieSeriesClass.ArgumentScaleType = ScaleType.Qualitative;
@@ -259,7 +264,7 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             pieSeriesClass.PointOptions.PointView = PointView.ArgumentAndValues;
             pieSeriesClass.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
             //设置数据源
-            pieSeriesClass.DataSource = class_dt;
+            pieSeriesClass.DataSource = dt_class_dt;
             pieSeriesClass.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
             // 饼图空间添加 新建的饼图对象
             xrChart_ParticelSizeCalss.Series.Add(pieSeriesClass);
@@ -270,6 +275,12 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             this.xrChart_ParticelSizeCalss.Legend.Border.Color = Color.Red;//红色边框
             #endregion
             #region 细分chart图
+
+            DataView dv2 = subdivde_dt.DefaultView;
+            dv2.Sort = "total DESC";
+            DataTable dt_subdivde_dt = dv2.ToTable();
+
+
             // 实例化饼图对象
             Series pieSeries = new Series("颗粒尺寸细化分类", ViewType.Pie);
             pieSeries.ArgumentScaleType = ScaleType.Qualitative;
@@ -283,7 +294,7 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             pieSeries.PointOptions.PointView = PointView.ArgumentAndValues;
             pieSeries.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
             //设置数据源
-            pieSeries.DataSource = subdivde_dt;
+            pieSeries.DataSource = dt_subdivde_dt;
             pieSeries.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
             // 饼图空间添加 新建的饼图对象
             xrChart_ParticelSizeSubdivision.Series.Add(pieSeries);
@@ -450,9 +461,24 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             xrChart_incaClass.Visible = true;
             xrLabel_inca_pic_class.Visible = true;
             DataTable data = export_ReportTemplate.ClassificationIntegration(TemplateClass, dev_sczs_text.Text);
-            for (int i=0;i< data.Rows.Count;i++)
+
+            for (int i=0;i<data.Rows.Count;i++)
             {
-                data.Rows[i]["Class"] = subscript.Getsubscriptstring(data.Rows[i]["Class"].ToString());
+                if (data.Rows[i]["Class"].ToString()== "Other")
+                {
+                    data.Rows[i].Delete();
+                }
+            }
+            data.AcceptChanges();
+
+            DataView dv = data.DefaultView;
+            dv.Sort = "Cunt DESC";
+            DataTable dt_data = dv.ToTable();
+
+
+            for (int i=0;i< dt_data.Rows.Count;i++)
+            {
+                dt_data.Rows[i]["Class"] = subscript.Getsubscriptstring(dt_data.Rows[i]["Class"].ToString());
             }
             // 实例化饼图对象
             Series pieSeriesClass = new Series("夹杂物面积比分类", ViewType.Pie);
@@ -467,7 +493,7 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             pieSeriesClass.PointOptions.PointView = PointView.ArgumentAndValues;
             pieSeriesClass.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
             //设置数据源
-            pieSeriesClass.DataSource = data;
+            pieSeriesClass.DataSource = dt_data;
             pieSeriesClass.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
             // 饼图空间添加 新建的饼图对象
             xrChart_incaClass.Series.Add(pieSeriesClass);
@@ -484,10 +510,24 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             xrLabel_inca_pic_subdivision.Visible = true;
 
             DataTable data = export_ReportTemplate.subdivisionIntegration(TemplateClass);
+
             for (int i=0;i<data.Rows.Count;i++)
             {
-                data.Rows[i]["TypeName"] = subscript.Getsubscriptstring(data.Rows[i]["TypeName"].ToString());
-                data.Rows[i]["GroupName"] = subscript.Getsubscriptstring(data.Rows[i]["GroupName"].ToString());
+                if (data.Rows[i]["TypeName"].ToString()== "Not Identified")
+                {
+                    data.Rows[i].Delete();
+                }
+            }
+            data.AcceptChanges();
+
+            DataView dv = data.DefaultView;
+            dv.Sort = "con DESC";
+            DataTable dt_data = dv.ToTable();
+
+            for (int i=0;i< dt_data.Rows.Count;i++)
+            {
+                dt_data.Rows[i]["TypeName"] = subscript.Getsubscriptstring(dt_data.Rows[i]["TypeName"].ToString());
+                dt_data.Rows[i]["GroupName"] = subscript.Getsubscriptstring(dt_data.Rows[i]["GroupName"].ToString());
             }
             // 实例化饼图对象
             Series pieSeriesClass = new Series("夹杂物面积比细分类", ViewType.Pie);
@@ -502,7 +542,7 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             pieSeriesClass.PointOptions.PointView = PointView.ArgumentAndValues;
             pieSeriesClass.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
             //设置数据源
-            pieSeriesClass.DataSource = data;
+            pieSeriesClass.DataSource = dt_data;
             pieSeriesClass.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
             // 饼图空间添加 新建的饼图对象
             xrChart_incaSubdivision.Series.Add(pieSeriesClass);