Browse Source

增加VDA19/ISO16232标准功能(导出),元素分析表BUG处理

zhangjiaxin 2 months ago
parent
commit
bec81310a0

+ 1 - 1
Bin/x64/Debug/Resources/XMLData/AppResource_ZH.xml

@@ -467,7 +467,7 @@
 	<Control name="xrLabel_inca_pic_subdivision" text="夹杂物细分类比" />
 
 	<Control name="dev_dimensiontable_2" text="尺寸计算基于:" />
-	<Control name="dev_dimensiontable" text="颗粒尺寸分析结果" />
+	<Control name="dev_dimensiontable" text="颗粒尺寸分析结果 ISO16232/VDA-19 Results" />
 	<Control name="dev_classify" text="分类" />
 	<Control name="dev_subdivision" text="二级分类" />
 	<Control name="dev_quantity" text="数量" />

+ 9 - 1
OTSIncAReportApp/1-UI/OTSReportExport/DataIntegration/BasicData.cs

@@ -33,6 +33,8 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
         private bool IsShereAClassificationGroup = false;
         private ResultFile resfile;
         private string FilePath = "";
+
+        private string VDA19String = "5,15,25,50,100,150,200,400,600,1000";
         /// <summary>
         /// 获取粒级表
         /// </summary>
@@ -95,7 +97,13 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
             string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
                  m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
             DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
-            string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
+
+            string sizestr = "";
+
+            if (m_mbszclass.M_VDA19.IsVDA19)
+                sizestr = VDA19String;
+            else
+                sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
 
             bool blBelow7 = false;
 

+ 16 - 4
OTSIncAReportApp/1-UI/OTSReportExport/DataIntegration/ElementalAnalysis.cs

@@ -175,7 +175,8 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
 						}
 						else
 						{
-							double ColVal = Convert.ToDouble(dlData / datotal * 100);
+							double ColVal = Convert.ToDouble(dlData / Convert.ToDouble(data[i].Rows[a]["Area"]));
+							//double ColVal = Convert.ToDouble(dlData / datotal * 100);
 							dr[data[0].Columns[j].ColumnName] = Math.Round(ColVal, 2);
 						}
 							//dr[data[0].Columns[j].ColumnName] = Math.Round(dlData, 2);
@@ -444,7 +445,9 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
 					DataTable ClassificationDetails = fielddata.GetAreaByIncA(AllAnalysisDetails[i].Rows[a]["TypeId"].ToString(), "");//获取单个分类的元素信息
 					DataRow dr2 = data.NewRow();
 
-                    if (ClassificationDetails.Rows.Count == 0)
+					double arar = Convert.ToDouble(AllAnalysisDetails[i].Rows[a]["ar"]);
+
+					if (ClassificationDetails.Rows.Count == 0)
                     {
                         for (int j = 4; j < data.Columns.Count; j++)
                         {
@@ -455,8 +458,17 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
 
 					foreach (DataRow dr in ClassificationDetails.Rows)
 					{
-						double doe = Convert.ToDouble(dr["pc"]);
-						dr2[dr["Name"].ToString()] = doe;
+						if (dr["pc"].ToString() != "")
+						{
+							double p = Math.Round(Convert.ToDouble(dr["pc"]) / arar, 2);
+							double doe = p;
+							dr2[dr["Name"].ToString()] = doe;
+						}
+						else
+						{
+							dr2[dr["Name"].ToString()] = 0;
+						}
+						
 					}
 					data.Rows.Add(dr2);
 				}

+ 20 - 20
OTSIncAReportApp/1-UI/OTSReportExport/OTSReport_Export.cs

@@ -793,26 +793,26 @@ namespace OTSIncAReportApp
                 return;
             }
 
-            try
-            {
-                if (m_mbszclass.M_VDA19.IsVDA19)
-                {
-                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
-                    Serial++;
-                    richTextBox1.SelectionColor = Color.Black;
-                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
-                    richTextBox1.AppendText(table["tcleannessa"].ToString() + "\n");
-                    richTextBox1.AppendText(table["loading"].ToString() + Math.Round(d1, length).ToString() + "%\n");
-                    DEVReport.SetTCleannessA();
-                    richTextBox1.ScrollToCaret();
-                }
-            }
-            catch
-            {
-                richTextBox1.SelectionColor = Color.Red;
-                richTextBox1.AppendText(table["tcleannessa_fail"].ToString() + "\n");
-                return;
-            }
+            //try
+            //{
+            //    if (m_mbszclass.M_VDA19.IsVDA19)
+            //    {
+            //        //double d1 = Convert.ToDouble(Serial / total) * 100.0;
+            //        //Serial++;
+            //        //richTextBox1.SelectionColor = Color.Black;
+            //        //richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+            //        //richTextBox1.AppendText(table["tcleannessa"].ToString() + "\n");
+            //        //richTextBox1.AppendText(table["loading"].ToString() + Math.Round(d1, length).ToString() + "%\n");
+            //        //DEVReport.SetTCleannessA();
+            //        //richTextBox1.ScrollToCaret();
+            //    }
+            //}
+            //catch
+            //{
+            //    richTextBox1.SelectionColor = Color.Red;
+            //    richTextBox1.AppendText(table["tcleannessa_fail"].ToString() + "\n");
+            //    return;
+            //}
 
             // 执行后台任务...  
             try

+ 827 - 40
OTSIncAReportApp/1-UI/OTSReportExport/Template/DataTemplate.cs

@@ -229,6 +229,12 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
 
         }
    
+
+        /// <summary>
+        /// 普通颗粒尺寸表(大分类)
+        /// </summary>
+        /// <param name="CompositeData"></param>
+        /// <param name="surface_dt2"></param>
         private void add_SetTableS(List<DataTable> CompositeData, DataTable surface_dt2)
         {
             XRTable xrTa_ParticleSizeTable = add_particleSizeS();
@@ -362,7 +368,6 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             }
             this.Detail.Controls.Add(xrTa_ParticleSizeTable);
             float fl = xrPageBreak1.LocationF.Y + 20;
-            //xrTa_ParticleSizeTable.LocationF = new PointF(10f, 940f);
             xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
 
             XRTable xrTable3 = add_particleSizeS_end();
@@ -385,10 +390,8 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
                             vs[a] += Convert.ToInt32(result);
                     }
                 }
-                //total += Convert.ToInt32(surface_dt2.Rows[i]["total"]);
             }
             setXRLabelData(xrTable3.Rows[0].Cells[0], GetlanguageData("dev_total", "总数量"));
-            //xrTable3.Rows[0].Cells[0].Text = "总数量";
             xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
             xrTable3.Rows[0].Cells[1].Text = total.ToString();
             xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
@@ -408,9 +411,360 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             this.Detail.Controls.Add(xrTable3);
         }
 
-  
+		/// <summary>
+		/// VDA19颗粒尺寸表(大分类)
+		/// </summary>
+		/// <param name="CompositeData"></param>
+		/// <param name="surface_dt2"></param>
+		private void add_Set_VDA19_TableS(List<DataTable> CompositeData, DataTable surface_dt2)
+		{
+			XRTable xrTa_ParticleSizeTable = add_VDA19_particleSizeS();
+			xrChart_ParticelSizeCalss.Visible = true;
+			xrChart_ParticelSizeSubdivision.Visible = true;
+			List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
+
+			List<List<string>> llstr = new List<List<string>>();
+			for (int i = 0; i < CompositeData[1].Rows.Count; i++)
+			{
+				List<string> strings = new List<string>();
+				for (int a = 4; a < CompositeData[1].Columns.Count; a++)
+				{
+					strings.Add(CompositeData[1].Rows[i][a].ToString());
+				}
+				llstr.Add(strings);
+			}
+			List<List<string>> llwrite = new List<List<string>>();
+			for (int i = 0; i < llstr.Count; i++)
+			{
+				List<string> strings = new List<string>();
+				for (int a = 0; a < 12; a++)
+				{
+					if (llstr[i].Count <= a)
+					{
+						strings.Add("");
+					}
+					else
+					{
+						strings.Add(llstr[i][a]);
+					}
+				}
+				llwrite.Add(strings);
+			}
+
+			for (int i = 0; i < CompositeData[1].Rows.Count; i++)
+			{
+				list_ParticelSizeData.Add(switch_ParticleSize(subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Name"].ToString()),
+					CompositeData[1].Rows[i]["total"].ToString(),
+					llwrite[i][0], llwrite[i][1], llwrite[i][2], llwrite[i][3], llwrite[i][4], llwrite[i][5], llwrite[i][6],
+					llwrite[i][7], llwrite[i][8], llwrite[i][9], llwrite[i][10], llwrite[i][11]));
+			}
+			setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[0], GetlanguageData("dev_classify", "分类"));//分类
+			setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[1], GetlanguageData("dev_subdivision", "二级分类"));//二级分类(子分类)
+			setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[2], GetlanguageData("dev_quantity", "数量"));//数量
+
+
+			setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], GetlanguageData("dev_dimensiontable", "颗粒尺寸分析结果 ISO16232/VDA-19 Results"));//颗粒尺寸分析结果
+			setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于"));//尺寸计算基于:
+
+			//dev_classify.Text = "分类";
+			xrTa_ParticleSizeTable.Rows[3].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[0].Font.Size);
+			//dev_subdivision.Text = "子分类";
+			xrTa_ParticleSizeTable.Rows[3].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[1].Font.Size);
+			//dev_quantity.Text = "数量";
+			xrTa_ParticleSizeTable.Rows[3].Cells[2].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[2].Font.Size);
+			for (int i = 0; i < CompositeData[0].Columns.Count; i++)
+			{
+				if (i > 9)
+				{
+					continue;
+				}
+				xrTa_ParticleSizeTable.Rows[3].Cells[i + 3].Text = CompositeData[0].Rows[0]["c" + (i + 1).ToString()].ToString();
+			}
+
+			xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
+			xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
+			int total = 0;
+			for (int i = 0; i < CompositeData[1].Rows.Count; i++)
+			{
+				XRTableRow row = new XRTableRow();
+				XRTableCell tCell_Class = new XRTableCell();
+				XRTableCell tCell_Name = new XRTableCell();
+				XRTableCell tCell_total = new XRTableCell();
+				XRTableCell tCell_size_1 = new XRTableCell();
+				XRTableCell tCell_size_2 = new XRTableCell();
+				XRTableCell tCell_size_3 = new XRTableCell();
+				XRTableCell tCell_size_4 = new XRTableCell();
+				XRTableCell tCell_size_5 = new XRTableCell();
+				XRTableCell tCell_size_6 = new XRTableCell();
+				XRTableCell tCell_size_7 = new XRTableCell();
 
-        private void add_SetTable(List<DataTable> CompositeData, DataTable surface_dt2)
+				XRTableCell tCell_size_8 = new XRTableCell();
+				XRTableCell tCell_size_9 = new XRTableCell();
+				XRTableCell tCell_size_10 = new XRTableCell();
+				//XRTableCell tCell_size_11 = new XRTableCell();
+				//XRTableCell tCell_size_12 = new XRTableCell();
+
+
+				tCell_Class.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[0].WidthF;
+				tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[1].WidthF;
+				tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[2].WidthF;
+				tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[3].WidthF;
+				tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[4].WidthF;
+				tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[5].WidthF;
+				tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[6].WidthF;
+				tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[7].WidthF;
+				tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[8].WidthF;
+				tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[9].WidthF;
+
+				tCell_size_8.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[10].WidthF;
+				tCell_size_9.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[11].WidthF;
+				tCell_size_10.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[12].WidthF;
+				//tCell_size_11.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[13].WidthF;
+				//tCell_size_12.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[14].WidthF;
+
+				XRTableCellData(row, tCell_Class, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Class");
+				XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
+				XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
+				XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
+				XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
+				XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
+				XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
+				XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
+				XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
+				XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
+
+				XRTableCellData(row, tCell_size_8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_8");
+				XRTableCellData(row, tCell_size_9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_9");
+				XRTableCellData(row, tCell_size_10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_10");
+				//XRTableCellData(row, tCell_size_11, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_11");
+				//XRTableCellData(row, tCell_size_12, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_12");
+				xrTa_ParticleSizeTable.Rows.Add(row);
+
+				if (CompositeData[1].Rows[i]["Name"].ToString() != "")
+				{
+					total += Convert.ToInt32(CompositeData[1].Rows[i]["total"]);
+				}
+
+			}
+			this.Detail.Controls.Add(xrTa_ParticleSizeTable);
+			float fl = xrPageBreak1.LocationF.Y + 20;
+			xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
+
+
+
+
+			XRTable xrTable3 = add_VDA19_particleSizeS_end();
+			xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
+
+			List<int> vs = new List<int>();
+			for (int i = 0; i < surface_dt2.Columns.Count - 4; i++)
+			{
+				vs.Add(0);
+			}
+
+			for (int i = 0; i < surface_dt2.Rows.Count; i++)
+			{
+				for (int a = 0; a < CompositeData[0].Columns.Count; a++)
+				{
+					if (surface_dt2.Rows[i]["c" + (a + 1).ToString()] != null)
+					{
+						bool isNumeric = double.TryParse(surface_dt2.Rows[i]["c" + (a + 1).ToString()].ToString(), out double result);
+						if (isNumeric)
+							vs[a] += Convert.ToInt32(result);
+					}
+				}
+			}
+			setXRLabelData(xrTable3.Rows[0].Cells[0], GetlanguageData("dev_total", "总数量"));
+			xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+			xrTable3.Rows[0].Cells[1].Text = total.ToString();
+			xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+
+			for (int i = 0; i < vs.Count; i++)
+			{
+				if (i > 9)
+				{
+					continue;
+				}
+				xrTable3.Rows[0].Cells[i + 2].Text = vs[i].ToString();
+				xrTable3.Rows[0].Cells[i + 2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+			}
+
+			NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
+
+			this.Detail.Controls.Add(xrTable3);
+
+
+            XRPageBreak();
+
+			XRTable VDA19_ResultTable = add_VDA19_ResultTable();
+			setXRLabelData(VDA19_ResultTable.Rows[0].Cells[0], GetlanguageData("dev_dimensiontable", "颗粒尺寸分析结果 ISO16232/VDA-19 Results"));//颗粒尺寸分析结果
+
+			//粒级名称
+			for (int i = 0; i < CompositeData[0].Columns.Count; i++)
+            {
+                VDA19_ResultTable.Rows[2].Cells[i + 2].Text = CompositeData[0].Rows[0][i].ToString();
+			}
+            //总数量
+            VDA19_ResultTable.Rows[3].Cells[1].Text = total.ToString();
+
+            List<string> strings1 = new List<string>();
+            strings1.Add("B");
+			strings1.Add("C");
+			strings1.Add("D");
+			strings1.Add("E");
+			strings1.Add("F");
+			strings1.Add("G");
+			strings1.Add("H");
+			strings1.Add("I");
+			strings1.Add("J");
+			strings1.Add("K");
+
+            //当前级别
+			List<string> List_Level = new List<string>();
+			int pos = 0;
+            string currentLevel = "";
+
+            bool isPass = true;
+			//粒级数量+粒级评级
+			for (int i = 4; i < surface_dt2.Columns.Count; i++)
+            {
+				int quantity = Convert.ToInt32(surface_dt2.Rows[0][i]);
+				VDA19_ResultTable.Rows[3].Cells[i - 2].Text = quantity.ToString();
+                string Level = VDA_Level(quantity);
+				VDA19_ResultTable.Rows[4].Cells[i - 3].Text = Level;
+                strings1[pos] = strings1[pos] + Level;
+                pos++;
+                List_Level.Add(Level);
+			}
+            for (int i = 0; i < strings1.Count; i++)
+            {
+                if (i != strings1.Count - 1)
+                    currentLevel = currentLevel + strings1[i] + "/";
+                else currentLevel = currentLevel + strings1[i];
+			}
+            VDA19_ResultTable.Rows[5].Cells[1].Text = "V("+ currentLevel+")";
+
+            VDA19_ResultTable.Rows[6].Cells[2].Text = isPassLevel(List_Level);
+
+            VDA19_ResultTable.LocationF = new PointF(10f, NeueStartposition);
+			NeueStartposition = VDA19_ResultTable.LocationF.Y + VDA19_ResultTable.SizeF.Height + 1;
+
+			this.Detail.Controls.Add(VDA19_ResultTable);
+
+		}
+        /// <summary>
+        /// 判断是否该级别是否合格
+        /// </summary>
+        /// <param name="a_Level"></param>
+        /// <returns></returns>
+        private string isPassLevel(List<string> a_List_Level)
+        {
+			List<int> List_Level = new List<int>();
+			List_Level.Add(10);
+			List_Level.Add(10);
+			List_Level.Add(10);
+			List_Level.Add(10);
+			List_Level.Add(5);
+			List_Level.Add(3);
+			List_Level.Add(1);
+			List_Level.Add(1);
+			List_Level.Add(0);
+			List_Level.Add(-1);
+
+            bool pos = true;
+            for (int i = 0; i < List_Level.Count; i++)
+            {
+				int level = -1;
+                if (a_List_Level[i] == "00")
+                    level = -1;
+                else
+                    level = Convert.ToInt32(a_List_Level[i]);
+
+                if (level > List_Level[i])
+                {
+                    pos = false;
+				}
+			}
+
+		
+            if (pos)
+            {
+                return "通过";
+            }
+            else
+            {
+                return "不通过";
+
+			}
+        }
+
+		/// <summary>
+		/// 输入颗粒数量返回VDA19/ISO 16232 级别(00 - 24)
+		/// </summary>
+		/// <param name="parameter">颗粒数量</param>
+		/// <returns></returns>
+		private string VDA_Level(int parameter)
+        {
+            if (parameter > 0 && parameter < 2)
+                return Convert.ToString(0);
+            else if (parameter > 1 && parameter < 4)
+                return Convert.ToString(1);
+            else if (parameter > 3 && parameter < 8)
+                return Convert.ToString(2);
+            else if (parameter > 7 && parameter < 16)
+                return Convert.ToString(3);
+            else if (parameter > 15 && parameter < 32)
+                return Convert.ToString(4);
+            else if (parameter > 31 && parameter < 64)
+                return Convert.ToString(5);
+            else if (parameter > 63 && parameter < 130)
+                return Convert.ToString(6);
+            else if (parameter > 129 && parameter < 250)
+                return Convert.ToString(7);
+            else if (parameter > 249 && parameter < 500)
+                return Convert.ToString(8);
+            else if (parameter > 499 && parameter < 1000)
+                return Convert.ToString(9);
+            else if (parameter > 999 && parameter < 2000)
+                return Convert.ToString(10);
+            else if (parameter > 1999 && parameter < 4000)
+                return Convert.ToString(11);
+            else if (parameter > 3999 && parameter < 8000)
+                return Convert.ToString(12);
+            else if (parameter > 7999 && parameter < 16000)
+                return Convert.ToString(13);
+            else if (parameter > 15999 && parameter < 32000)
+                return Convert.ToString(14);
+            else if (parameter > 31999 && parameter < 64000)
+                return Convert.ToString(15);
+            else if (parameter > 63999 && parameter < 130000)
+                return Convert.ToString(16);
+            else if (parameter > 129999 && parameter < 250000)
+                return Convert.ToString(17);
+            else if (parameter > 249999 && parameter < 500000)
+                return Convert.ToString(18);
+            else if (parameter > 499999 && parameter < 1000000)
+                return Convert.ToString(19);
+            else if (parameter > 999999 && parameter < 2000000)
+                return Convert.ToString(20);
+            else if (parameter > 1999999 && parameter < 4000000)
+                return Convert.ToString(21);
+            else if (parameter > 3999999 && parameter < 8000000)
+                return Convert.ToString(22);
+            else if (parameter > 7999999 && parameter < 16000000)
+                return Convert.ToString(23);
+            else if (parameter > 15999999)
+                return Convert.ToString(24);
+            else
+                return "00";
+
+
+		}
+
+
+
+		private void add_SetTable(List<DataTable> CompositeData, DataTable surface_dt2)
         {
             XRTable xrTa_ParticleSizeTable = add_particleSize();
             xrChart_ParticelSizeCalss.Visible = true;
@@ -1702,45 +2056,55 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
 			List<DataTable> CompositeData = particleList.GetClassificationConsolidationTable(m_otsreport_export,basicData,out statisticalAuantity);
             DataTable classData = particleList.GetLargeClassification(m_otsreport_export,basicData);
             DataTable subdivdeData = particleList.GetSubClassification(basicData);
-     
-            #region 插入数据
-            if (basicData.GetParticlesizeTable().Count > 7)
+
+
+            if (m_mbszclass.M_VDA19.IsVDA19)
             {
-                if (CompositeData[1].Rows.Count > 0)
-                {
-                    if (basicData.GetIsThereAMajorClassification())
-                    {
-                        add_SetTableS(CompositeData, statisticalAuantity);
-                    }
-                    else
-                    {
-						add_SetTable(CompositeData, statisticalAuantity);
-					}
-				}
+                add_Set_VDA19_TableS(CompositeData, statisticalAuantity);
             }
             else
             {
-                if (CompositeData[1].Rows.Count > 0)
-                {
-                    if (basicData.GetIsThereAMajorClassification())
-                    {
-                        add_ParticleList_Below7(CompositeData, statisticalAuantity);
-
-						//add_SetTableS_Below7(CompositeData, statisticalAuantity);
+				if (basicData.GetParticlesizeTable().Count > 7)
+				{
+					if (CompositeData[1].Rows.Count > 0)
+					{
+						if (basicData.GetIsThereAMajorClassification())
+						{
+							add_SetTableS(CompositeData, statisticalAuantity);
+						}
+						else
+						{
+							add_SetTable(CompositeData, statisticalAuantity);
+						}
 					}
-					else
-                    {
-						add_ParticleList_Below7_NoGrouping(CompositeData, statisticalAuantity);
+				}
+				else
+				{
+					if (CompositeData[1].Rows.Count > 0)
+					{
+						if (basicData.GetIsThereAMajorClassification())
+						{
+							add_ParticleList_Below7(CompositeData, statisticalAuantity);
 
-						//add_SetTable_Below7(CompositeData, statisticalAuantity);
-                    }
+							//add_SetTableS_Below7(CompositeData, statisticalAuantity);
+						}
+						else
+						{
+							add_ParticleList_Below7_NoGrouping(CompositeData, statisticalAuantity);
+
+							//add_SetTable_Below7(CompositeData, statisticalAuantity);
+						}
+					}
 				}
-            }
 
-              
-            
+			}
+
+			#region 插入数据
 
-            if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt)
+
+
+
+			if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt)
             {
                 HistogramChart(particleList, basicData);
             }
@@ -3411,11 +3775,434 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
             Template.Rows[0].BackColor = Color.DarkGray;
             return Template;
         }
-        /// <summary>
-        /// 颗粒尺寸有大分类表格式总结
-        /// </summary>
-        /// <returns></returns>
-        private XRTable add_particleSizeS_end()
+
+		/// <summary>
+		/// VDA19颗粒尺寸有大分类表格式
+		/// </summary>
+		/// <returns></returns>
+		private XRTable add_VDA19_particleSizeS()
+		{
+			XRTable Template = new XRTable();
+			#region 表头
+			XRTableRow Template_Rows_1 = new XRTableRow();
+			XRTableCell Template_Rows1_Cell_1 = new XRTableCell();
+			Template_Rows1_Cell_1.WidthF = 668f;
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_1);
+			Template.Rows.Add(Template_Rows_1);
+			#endregion
+			#region 表头信息
+			XRTableRow Template_Rows_2 = new XRTableRow();
+			XRTableCell Template_Rows2_Cell_1 = new XRTableCell();
+			Template_Rows2_Cell_1.WidthF = 668f;
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_1);
+
+			Template.Rows.Add(Template_Rows_2);
+			#endregion
+			#region VDA标头
+			XRTableRow Template_Rows_3 = new XRTableRow();
+			XRTableCell Template_Rows3_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_11 = new XRTableCell();
+			//XRTableCell Template_Rows3_Cell_12 = new XRTableCell();
+			//XRTableCell Template_Rows3_Cell_13 = new XRTableCell();
+			Template_Rows3_Cell_1.WidthF = 255f;
+            Template_Rows3_Cell_1.Text = "Size Class";
+			Template_Rows3_Cell_2.WidthF = 54f;
+            Template_Rows3_Cell_2.Text = "B";
+			Template_Rows3_Cell_3.WidthF = 54f;
+            Template_Rows3_Cell_3.Text = "C";
+			Template_Rows3_Cell_4.WidthF = 54f;
+			Template_Rows3_Cell_4.Text= "D";
+			Template_Rows3_Cell_5.WidthF = 54f;
+			Template_Rows3_Cell_5.Text = "E";
+			Template_Rows3_Cell_6.WidthF = 54f;
+            Template_Rows3_Cell_6.Text = "F";
+			Template_Rows3_Cell_7.WidthF = 54f;
+            Template_Rows3_Cell_7.Text = "G";
+			Template_Rows3_Cell_8.WidthF = 54f;
+            Template_Rows3_Cell_8.Text = "H";
+			Template_Rows3_Cell_9.WidthF = 54f;
+            Template_Rows3_Cell_9.Text = "I";
+			Template_Rows3_Cell_10.WidthF = 54f;
+            Template_Rows3_Cell_10.Text = "J";
+			Template_Rows3_Cell_11.WidthF = 54f;
+            Template_Rows3_Cell_11.Text = "K";
+			//Template_Rows3_Cell_12.WidthF = 45f;
+   //         Template_Rows3_Cell_12.Text = "L";
+			//Template_Rows3_Cell_13.WidthF = 45f;
+			//Template_Rows3_Cell_13.Text = "M";
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_1);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_2);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_3);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_4);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_5);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_6);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_7);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_8);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_9);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_10);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_11);
+			//Template_Rows_3.Controls.Add(Template_Rows3_Cell_12);
+			//Template_Rows_3.Controls.Add(Template_Rows3_Cell_13);
+			Template.Rows.Add(Template_Rows_3);
+			#endregion
+			#region 颗粒尺寸信息
+			XRTableRow Template_Rows_4 = new XRTableRow();
+			XRTableCell Template_Rows4_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_10 = new XRTableCell();
+
+			XRTableCell Template_Rows4_Cell_11 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_12 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_13 = new XRTableCell();
+			//XRTableCell Template_Rows4_Cell_14 = new XRTableCell();
+			//XRTableCell Template_Rows4_Cell_15 = new XRTableCell();
+
+			Template_Rows4_Cell_1.WidthF = 100f;
+			Template_Rows4_Cell_2.WidthF = 100f;
+			Template_Rows4_Cell_3.WidthF = 55f;
+			Template_Rows4_Cell_4.WidthF = 54f;
+			Template_Rows4_Cell_5.WidthF = 54f;
+			Template_Rows4_Cell_6.WidthF = 54f;
+			Template_Rows4_Cell_7.WidthF = 54f;
+			Template_Rows4_Cell_8.WidthF = 54f;
+			Template_Rows4_Cell_9.WidthF = 54f;
+			Template_Rows4_Cell_10.WidthF = 54f;
+
+			Template_Rows4_Cell_11.WidthF = 54f;
+			Template_Rows4_Cell_12.WidthF = 54f;
+			Template_Rows4_Cell_13.WidthF = 54f;
+			//Template_Rows4_Cell_14.WidthF = 45;
+			//Template_Rows4_Cell_15.WidthF = 45;
+
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_1);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_2);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_3);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_4);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_5);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_6);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_7);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_8);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_9);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_10);
+
+
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_11);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_12);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_13);
+			//Template_Rows_4.Controls.Add(Template_Rows4_Cell_14);
+			//Template_Rows_4.Controls.Add(Template_Rows4_Cell_15);
+
+			Template.Rows.Add(Template_Rows_4);
+			#endregion
+			Template.Borders = DevExpress.XtraPrinting.BorderSide.All;
+			Template.SizeF = new SizeF(668f, Template.SizeF.Height);
+			Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+			Template.Rows[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			Template.Rows[0].BackColor = Color.DarkGray;
+			return Template;
+		}
+
+        private XRTable add_VDA19_ResultTable()
+        {
+			XRTable Template = new XRTable();
+			#region 表头
+			XRTableRow Template_Rows_1 = new XRTableRow();
+			XRTableCell Template_Rows1_Cell_1 = new XRTableCell();
+			Template_Rows1_Cell_1.WidthF = 668f;
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_1);
+			Template.Rows.Add(Template_Rows_1);
+			#endregion
+			#region VDA标头
+			XRTableRow Template_Rows_2 = new XRTableRow();
+			XRTableCell Template_Rows2_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows2_Cell_11 = new XRTableCell();
+			Template_Rows2_Cell_1.WidthF = 255f;
+			Template_Rows2_Cell_1.Text = "Size Class";
+			Template_Rows2_Cell_2.WidthF = 54f;
+			Template_Rows2_Cell_2.Text = "B";
+			Template_Rows2_Cell_3.WidthF = 54f;
+			Template_Rows2_Cell_3.Text = "C";
+			Template_Rows2_Cell_4.WidthF = 54f;
+			Template_Rows2_Cell_4.Text = "D";
+			Template_Rows2_Cell_5.WidthF = 54f;
+			Template_Rows2_Cell_5.Text = "E";
+			Template_Rows2_Cell_6.WidthF = 54f;
+			Template_Rows2_Cell_6.Text = "F";
+			Template_Rows2_Cell_7.WidthF = 54f;
+			Template_Rows2_Cell_7.Text = "G";
+			Template_Rows2_Cell_8.WidthF = 54f;
+			Template_Rows2_Cell_8.Text = "H";
+			Template_Rows2_Cell_9.WidthF = 54f;
+			Template_Rows2_Cell_9.Text = "I";
+			Template_Rows2_Cell_10.WidthF = 54f;
+			Template_Rows2_Cell_10.Text = "J";
+			Template_Rows2_Cell_11.WidthF = 54f;
+			Template_Rows2_Cell_11.Text = "K";
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_1);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_2);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_3);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_4);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_5);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_6);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_7);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_8);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_9);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_10);
+			Template_Rows_2.Controls.Add(Template_Rows2_Cell_11);
+			Template.Rows.Add(Template_Rows_2);
+			#endregion
+			#region VDA粒级头
+			XRTableRow Template_Rows_3 = new XRTableRow();
+			XRTableCell Template_Rows3_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_11 = new XRTableCell();
+			XRTableCell Template_Rows3_Cell_12 = new XRTableCell();
+			Template_Rows3_Cell_1.WidthF = 201f;
+			Template_Rows3_Cell_1.Text = "Size Range(um)";
+			Template_Rows3_Cell_2.WidthF = 54f;
+			Template_Rows3_Cell_2.Text = "数量";
+			Template_Rows3_Cell_3.WidthF = 54f;
+			Template_Rows3_Cell_4.WidthF = 54f;
+			Template_Rows3_Cell_5.WidthF = 54f;
+			Template_Rows3_Cell_6.WidthF = 54f;
+			Template_Rows3_Cell_7.WidthF = 54f;
+			Template_Rows3_Cell_8.WidthF = 54f;
+			Template_Rows3_Cell_9.WidthF = 54f;
+			Template_Rows3_Cell_10.WidthF = 54f;
+			Template_Rows3_Cell_11.WidthF = 54f;
+			Template_Rows3_Cell_12.WidthF = 54f;
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_1);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_2);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_3);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_4);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_5);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_6);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_7);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_8);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_9);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_10);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_11);
+			Template_Rows_3.Controls.Add(Template_Rows3_Cell_12);
+			Template.Rows.Add(Template_Rows_3);
+			#endregion
+			#region VDA粒级数据
+			XRTableRow Template_Rows_4 = new XRTableRow();
+			XRTableCell Template_Rows4_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_11 = new XRTableCell();
+			XRTableCell Template_Rows4_Cell_12 = new XRTableCell();
+			Template_Rows4_Cell_1.WidthF = 201f;
+			Template_Rows4_Cell_1.Text = "Total Counts";
+			Template_Rows4_Cell_2.WidthF = 54f;
+			Template_Rows4_Cell_3.WidthF = 54f;
+			Template_Rows4_Cell_4.WidthF = 54f;
+			Template_Rows4_Cell_5.WidthF = 54f;
+			Template_Rows4_Cell_6.WidthF = 54f;
+			Template_Rows4_Cell_7.WidthF = 54f;
+			Template_Rows4_Cell_8.WidthF = 54f;
+			Template_Rows4_Cell_9.WidthF = 54f;
+			Template_Rows4_Cell_10.WidthF = 54f;
+			Template_Rows4_Cell_11.WidthF = 54f;
+			Template_Rows4_Cell_12.WidthF = 54f;
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_1);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_2);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_3);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_4);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_5);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_6);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_7);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_8);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_9);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_10);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_11);
+			Template_Rows_4.Controls.Add(Template_Rows4_Cell_12);
+			Template.Rows.Add(Template_Rows_4);
+			#endregion
+			#region VDA级别
+			XRTableRow Template_Rows_5 = new XRTableRow();
+			XRTableCell Template_Rows5_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_9 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows5_Cell_11 = new XRTableCell();
+			Template_Rows5_Cell_1.WidthF = 255f;
+			Template_Rows5_Cell_1.Text = "Cleanliness Level";
+			Template_Rows5_Cell_2.WidthF = 54f;
+			Template_Rows5_Cell_3.WidthF = 54f;
+			Template_Rows5_Cell_4.WidthF = 54f;
+			Template_Rows5_Cell_5.WidthF = 54f;
+			Template_Rows5_Cell_6.WidthF = 54f;
+			Template_Rows5_Cell_7.WidthF = 54f;
+			Template_Rows5_Cell_8.WidthF = 54f;
+			Template_Rows5_Cell_9.WidthF = 54f;
+			Template_Rows5_Cell_10.WidthF = 54f;
+			Template_Rows5_Cell_11.WidthF = 54f;
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_1);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_2);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_3);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_4);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_5);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_6);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_7);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_8);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_9);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_10);
+			Template_Rows_5.Controls.Add(Template_Rows5_Cell_11);
+			Template.Rows.Add(Template_Rows_5);
+			#endregion
+			#region VDA当前标准评级
+			XRTableRow Template_Rows_6 = new XRTableRow();
+			XRTableCell Template_Rows6_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows6_Cell_2 = new XRTableCell();
+			
+			Template_Rows6_Cell_1.WidthF = 309f;
+			Template_Rows6_Cell_1.Text = "Component Cleanliness Code (CCC):";
+			Template_Rows6_Cell_2.WidthF = 486f;
+			
+			Template_Rows_6.Controls.Add(Template_Rows6_Cell_1);
+			Template_Rows_6.Controls.Add(Template_Rows6_Cell_2);
+			
+			Template.Rows.Add(Template_Rows_6);
+			#endregion
+			#region VDA标准评级示例
+			XRTableRow Template_Rows_7 = new XRTableRow();
+			XRTableCell Template_Rows7_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows7_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows7_Cell_3 = new XRTableCell();
+
+			Template_Rows7_Cell_1.WidthF = 309f;
+			Template_Rows7_Cell_1.Text = "Specification:";
+			Template_Rows7_Cell_2.WidthF = 324f;
+			Template_Rows7_Cell_2.Text = "V(B10/C8/D7/E5/F2/G1/H1/I00/J00/K0)";
+			Template_Rows7_Cell_3.WidthF = 162f;
+			Template_Rows_7.Controls.Add(Template_Rows7_Cell_1);
+			Template_Rows_7.Controls.Add(Template_Rows7_Cell_2);
+			Template_Rows_7.Controls.Add(Template_Rows7_Cell_3);
+
+			Template.Rows.Add(Template_Rows_7);
+			#endregion
+			Template.Borders = DevExpress.XtraPrinting.BorderSide.All;
+			Template.SizeF = new SizeF(668f, Template.SizeF.Height);
+			Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+            Template.Rows[2].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			Template.Rows[3].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			Template.Rows[4].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			Template.Rows[5].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			Template.Rows[0].BackColor = Color.DarkGray;
+			return Template;
+		}
+
+
+		/// <summary>
+		/// VDA19颗粒尺寸有大分类表格式总结
+		/// </summary>
+		/// <returns></returns>
+		private XRTable add_VDA19_particleSizeS_end()
+		{
+			XRTable Template = new XRTable();
+			XRTableRow Template_Rows_1 = new XRTableRow();
+			XRTableCell Template_Rows1_Cell_1 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_2 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_3 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_4 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_5 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_6 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_7 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_8 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_9 = new XRTableCell();
+
+			XRTableCell Template_Rows1_Cell_10 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_11 = new XRTableCell();
+			XRTableCell Template_Rows1_Cell_12 = new XRTableCell();
+			
+			Template_Rows1_Cell_1.WidthF = 200f;
+			Template_Rows1_Cell_2.WidthF = 55f;
+			Template_Rows1_Cell_3.WidthF = 54f;
+			Template_Rows1_Cell_4.WidthF = 54f;
+			Template_Rows1_Cell_5.WidthF = 54f;
+			Template_Rows1_Cell_6.WidthF = 54f;
+			Template_Rows1_Cell_7.WidthF = 54f;
+			Template_Rows1_Cell_8.WidthF = 54f;
+			Template_Rows1_Cell_9.WidthF = 54f;
+
+			Template_Rows1_Cell_10.WidthF = 54f;
+			Template_Rows1_Cell_11.WidthF = 54f;
+			Template_Rows1_Cell_12.WidthF = 54f;
+		
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_1);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_2);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_3);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_4);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_5);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_6);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_7);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_8);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_9);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_10);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_11);
+			Template_Rows_1.Controls.Add(Template_Rows1_Cell_12);
+		
+			Template.Rows.Add(Template_Rows_1);
+			Template.Borders = DevExpress.XtraPrinting.BorderSide.All;
+			Template.SizeF = new SizeF(668f, Template.SizeF.Height);
+			Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+			//Template.Rows[0].BackColor = Color.DarkGray;
+			//Template.Rows[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+			return Template;
+		}
+
+		/// <summary>
+		/// 颗粒尺寸有大分类表格式总结
+		/// </summary>
+		/// <returns></returns>
+		private XRTable add_particleSizeS_end()
         {
             XRTable Template = new XRTable();
             XRTableRow Template_Rows_1 = new XRTableRow();