Ver Fonte

chart图增加多个类型,报告导出三元图BUG修复

zhangjiaxin há 3 meses atrás
pai
commit
972516faab

+ 1 - 0
Bin/x64/Debug/Config/ProData/DefaultTriTemplateFile.tpf

@@ -15,4 +15,5 @@
   <Member TemplateId="20250115150834" TemplateName="S.Ca.Al" Element="S.Ca.Al" Group="S-S.Ca-Ca.Al-Al" />
   <Member TemplateId="20250115151041" TemplateName="S.Si.Al" Element="S.Si.Al" Group="S-S.Si-Si.Al-Al" />
   <Member TemplateId="20250115151124" TemplateName="S.Mn.Al" Element="S.Mn.Al" Group="S-S.Mn-Mn.Al-Al" />
+  <Member TemplateId="20250508143058" TemplateName="CaO.MnS.Al2O3" Element="Ca.S,Mn.Al" Group="CaO-Ca.MnS-S,Mn.Al2O3-Al" />
 </XMLData>

+ 1 - 1
Bin/x64/Debug/Config/ProData/Li1-10.psf

@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<XMLData FileMark="626" Name="Li1-10" Sizes="1,1.5,2,3.5,5,7,10,15,20" Version="1.1.1" />
+<XMLData FileMark="626" Name="Li1-10" Sizes="1,1.5,2,3.5,7,10" Version="1.1.1" />

+ 16 - 16
Bin/x64/Debug/Config/ReportTemplate/Inca_Template/ReportTemplateConfig.xml

@@ -40,13 +40,13 @@
     <index_cb_jzwfl_ljb>0</index_cb_jzwfl_ljb>
     <index_cb_jzwfl_klfw>0</index_cb_jzwfl_klfw>
     <str_cb_klcc_jsfs>ECD</str_cb_klcc_jsfs>
-    <b_ck_klcc_xsddt>True</b_ck_klcc_xsddt>
-    <b_ck_klcc_dfl>False</b_ck_klcc_dfl>
-    <b_ck_klcc_xfl>False</b_ck_klcc_xfl>
+    <b_ck_klcc_xsddt>False</b_ck_klcc_xsddt>
+    <b_ck_klcc_dfl>True</b_ck_klcc_dfl>
+    <b_ck_klcc_xfl>True</b_ck_klcc_xfl>
     <str_cb_klcc_ljb>lj.psf</str_cb_klcc_ljb>
     <GraphicSelection>2</GraphicSelection>
     <ParticleSizeGraphicSelection>0</ParticleSizeGraphicSelection>
-    <INCAGraphicSelection>1</INCAGraphicSelection>
+    <INCAGraphicSelection>0</INCAGraphicSelection>
   </M_KLFXJG>
   <M_YSFXJG>
     <b_ck_ysfx_xsmk>True</b_ck_ysfx_xsmk>
@@ -84,15 +84,15 @@
     <str_cb_syxt_mhxssl>2</str_cb_syxt_mhxssl>
     <list_lbv_syxt_mblb>
       <MB0>Si.Ca.Al</MB0>
-      <MB1>Mg.Ca.Al</MB1>
-      <MB2>S.Ca.Al</MB2>
-      <MB3>S.Si.Al</MB3>
+      <MB1>S.Ca.Al</MB1>
+      <MB2>S.Mn.Al</MB2>
+      <MB3>CaO.MnS.Al2O3</MB3>
     </list_lbv_syxt_mblb>
     <list_lbv_syxt_mblb_index>
       <MBIndex0>10</MBIndex0>
-      <MBIndex1>11</MBIndex1>
-      <MBIndex2>12</MBIndex2>
-      <MBIndex3>13</MBIndex3>
+      <MBIndex1>12</MBIndex1>
+      <MBIndex2>14</MBIndex2>
+      <MBIndex3>15</MBIndex3>
     </list_lbv_syxt_mblb_index>
     <str_cb_syxt_ljb>lj.psf</str_cb_syxt_ljb>
   </M_SYXT>
@@ -129,16 +129,16 @@
     <str_cb_kllb_chartSort_p3>AveGray</str_cb_kllb_chartSort_p3>
     <index_cb_kllb_chartSort_p3>2</index_cb_kllb_chartSort_p3>
     <str_cb_kllb_sort_p1>Area</str_cb_kllb_sort_p1>
-    <b_ck_kllb_fjzt>True</b_ck_kllb_fjzt>
+    <b_ck_kllb_fjzt>False</b_ck_kllb_fjzt>
     <list_str_kllb_qcys>
-      <YS0>C</YS0>
-      <YS1>Fe</YS1>
+      <YS0>Ar</YS0>
+      <YS1>C</YS1>
+      <YS2>Fe</YS2>
     </list_str_kllb_qcys>
-    <str_kllb_qcys>C,Fe</str_kllb_qcys>
+    <str_kllb_qcys>Ar,C,Fe</str_kllb_qcys>
     <str_kllb_DeleteClass>misc</str_kllb_DeleteClass>
     <list_str_kllb_DeleteClass>
-      <YS0>SiC</YS0>
-      <YS1>FeO</YS1>
+      <YS0>FeO</YS0>
     </list_str_kllb_DeleteClass>
     <list_int_kllb_number>20</list_int_kllb_number>
     <list_str_kllb_DeleteClass_Serial>

+ 1 - 1
Bin/x64/Debug/Config/SysData/OTSReportMgrParam.rpf

@@ -3,7 +3,7 @@
   <Member RegName="Scale" strValue="1000" />
   <Member RegName="DefaultComputedColName" strValue="ParticleCoordinate,Area,EquivalentCircleDiameter,MaxDiameter,MinDiameter,DiameterRatio,FerretDiameter,PERP,PERI,INSCR,MEAN,ELONG,ASPECT_ELONG,Orientation,XRayDataCount" />
   <Member RegName="ElementsColName" strValue="C,O,Al,Fe,F,Ti,Na,Mn,Mg" />
-  <Member RegName="PartSizeFile" name="Li1-10.psf" />
+  <Member RegName="PartSizeFile" name="ljNuw.psf" />
   <Member RegName="TRIO_CHART_TYPE" strValue="CaO.SiO₂.Al₂O₃" />
   <Member RegName="SIZE_CAL_METHOD_TYPE" strValue="ECD" />
 </XMLData>

+ 67 - 74
OTSIncAReportApp/1-UI/Control_DEVCharts/DEVChart_ParticlesComposition.Designer.cs

@@ -28,84 +28,77 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.checkButton3 = new DevExpress.XtraEditors.CheckButton();
-            this.checkButton2 = new DevExpress.XtraEditors.CheckButton();
-            this.checkButton1 = new DevExpress.XtraEditors.CheckButton();
-            this.chartControl1 = new DevExpress.XtraCharts.ChartControl();
-            this.panel1.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)(this.chartControl1)).BeginInit();
-            this.SuspendLayout();
-            // 
-            // panel1
-            // 
-            this.panel1.Controls.Add(this.checkButton3);
-            this.panel1.Controls.Add(this.checkButton2);
-            this.panel1.Controls.Add(this.checkButton1);
-            this.panel1.Controls.Add(this.chartControl1);
-            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(0, 0);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(1100, 477);
-            this.panel1.TabIndex = 0;
-            // 
-            // checkButton3
-            // 
-            this.checkButton3.Location = new System.Drawing.Point(197, 3);
-            this.checkButton3.Name = "checkButton3";
-            this.checkButton3.Size = new System.Drawing.Size(75, 23);
-            this.checkButton3.TabIndex = 3;
-            this.checkButton3.Text = "饼状图";
-            this.checkButton3.CheckedChanged += new System.EventHandler(this.checkButton3_CheckedChanged);
-            // 
-            // checkButton2
-            // 
-            this.checkButton2.Location = new System.Drawing.Point(116, 3);
-            this.checkButton2.Name = "checkButton2";
-            this.checkButton2.Size = new System.Drawing.Size(75, 23);
-            this.checkButton2.TabIndex = 2;
-            this.checkButton2.Text = "折线图";
-            this.checkButton2.CheckedChanged += new System.EventHandler(this.checkButton2_CheckedChanged);
-            // 
-            // checkButton1
-            // 
-            this.checkButton1.Checked = true;
-            this.checkButton1.Location = new System.Drawing.Point(35, 3);
-            this.checkButton1.Name = "checkButton1";
-            this.checkButton1.Size = new System.Drawing.Size(75, 23);
-            this.checkButton1.TabIndex = 1;
-            this.checkButton1.Text = "柱状图";
-            this.checkButton1.CheckedChanged += new System.EventHandler(this.checkButton1_CheckedChanged);
-            // 
-            // chartControl1
-            // 
-            this.chartControl1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.chartControl1.Location = new System.Drawing.Point(0, 0);
-            this.chartControl1.Name = "chartControl1";
-            this.chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[0];
-            this.chartControl1.Size = new System.Drawing.Size(1100, 477);
-            this.chartControl1.TabIndex = 0;
-            // 
-            // EChart_ParticlesComposition
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.panel1);
-            this.Margin = new System.Windows.Forms.Padding(2);
-            this.Name = "EChart_ParticlesComposition";
-            this.Size = new System.Drawing.Size(1100, 477);
-            this.Load += new System.EventHandler(this.EChart_ParticlesComposition_Load);
-            this.panel1.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)(this.chartControl1)).EndInit();
-            this.ResumeLayout(false);
+			this.panel1 = new System.Windows.Forms.Panel();
+			this.chartControl1 = new DevExpress.XtraCharts.ChartControl();
+			this.comboBox1 = new System.Windows.Forms.ComboBox();
+			this.panel1.SuspendLayout();
+			((System.ComponentModel.ISupportInitialize)(this.chartControl1)).BeginInit();
+			this.SuspendLayout();
+			// 
+			// panel1
+			// 
+			this.panel1.Controls.Add(this.comboBox1);
+			this.panel1.Controls.Add(this.chartControl1);
+			this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.panel1.Location = new System.Drawing.Point(0, 0);
+			this.panel1.Name = "panel1";
+			this.panel1.Size = new System.Drawing.Size(1100, 477);
+			this.panel1.TabIndex = 0;
+			// 
+			// chartControl1
+			// 
+			this.chartControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.chartControl1.Location = new System.Drawing.Point(0, 0);
+			this.chartControl1.Name = "chartControl1";
+			this.chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[0];
+			this.chartControl1.Size = new System.Drawing.Size(1100, 477);
+			this.chartControl1.TabIndex = 0;
+			// 
+			// comboBox1
+			// 
+			this.comboBox1.FormattingEnabled = true;
+			this.comboBox1.Items.AddRange(new object[] {
+            "折线图",
+            "柱状图",
+            "饼图",
+            "圆环图",
+            "气泡图",
+            "簇状条形图",
+            "堆积条形图",
+            "瀑布图",
+            "3D柱状图",
+            "3D圆环图",
+            "3D饼图",
+            "3D折线图",
+            "3D百分比堆积条形图",
+            "3D漏斗图",
+            "3DManhattan 条形图",
+            "3D堆积条形图",
+            "3D阶梯线图"});
+			this.comboBox1.Location = new System.Drawing.Point(3, 3);
+			this.comboBox1.Name = "comboBox1";
+			this.comboBox1.Size = new System.Drawing.Size(121, 20);
+			this.comboBox1.TabIndex = 4;
+			this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+			// 
+			// DEVChart_ParticlesComposition
+			// 
+			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+			this.Controls.Add(this.panel1);
+			this.Margin = new System.Windows.Forms.Padding(2);
+			this.Name = "DEVChart_ParticlesComposition";
+			this.Size = new System.Drawing.Size(1100, 477);
+			this.Load += new System.EventHandler(this.EChart_ParticlesComposition_Load);
+			this.panel1.ResumeLayout(false);
+			((System.ComponentModel.ISupportInitialize)(this.chartControl1)).EndInit();
+			this.ResumeLayout(false);
 
         }
 
         #endregion
         private System.Windows.Forms.Panel panel1;
         private DevExpress.XtraCharts.ChartControl chartControl1;
-        private DevExpress.XtraEditors.CheckButton checkButton3;
-        private DevExpress.XtraEditors.CheckButton checkButton2;
-        private DevExpress.XtraEditors.CheckButton checkButton1;
-    }
+		private System.Windows.Forms.ComboBox comboBox1;
+	}
 }

+ 53 - 137
OTSIncAReportApp/1-UI/Control_DEVCharts/DEVChart_ParticlesComposition.cs

@@ -1,6 +1,8 @@
-using DevExpress.Utils;
+using DevExpress.Charts.Model;
+using DevExpress.Utils;
 using DevExpress.XtraCharts;
 using NPOI.Util;
+using OTSIncAReportApp._1_UI.Control_DEVCharts;
 using OTSIncAReportApp.OTSRstMgrFunction;
 using OTSIncAReportApp.OTSSampleReportInfo;
 using OTSIncAReportApp.SysMgrTools;
@@ -46,12 +48,14 @@ namespace OTSIncAReportApp.Control_ECharts
             //国际化
             Language lan = new Language();
             table = lan.GetNameTable("CompositionDistributionGrid");
+            comboBox1.SelectedIndex = 0;
 
-        }
+		}
 
         private void EChart_ParticlesComposition_Load(object sender, EventArgs e)
         {
 
+
             string sou = "";
             int sel = 0;//选择颗粒范围(0为全部颗粒1为选择颗粒)
             if (Report)
@@ -87,13 +91,7 @@ namespace OTSIncAReportApp.Control_ECharts
                     bl = true;
                 }
             }
-            if(!bl)
-            {
-                checkButton1.Visible = false;
-                checkButton2.Visible = false;
-                checkButton3.Visible = false;
-                return;
-            }
+            
             List<DataTable> listDt = new List<DataTable>();
             for (int i=0;i< list_dt.Count;i++)
             {
@@ -115,29 +113,13 @@ namespace OTSIncAReportApp.Control_ECharts
                 ResultFile resultFile = m_DataMgr.ResultFilesList.Find(s => s.anotherFileName == sou.Split('+')[i]);
                 string str = resultFile.anotherFileName;
                 prListString.Add(str);
-                // 假设你已经有一个 ChartControl 实例,并且已经添加了一个饼图 Series
-                //string str = prListString[i];
-                Series series = new Series(str, ViewType.Pie);
-                for (int a = 0; a < prListData[i].Rows.Count; a++)
-                {
-                    string name = prListData[i].Rows[a]["name"].ToString();
-                    double Cunt = Convert.ToDouble(prListData[i].Rows[a]["Cunt"]);
-                    series.Points.Add(new SeriesPoint(name, Cunt));
-                }
-                series.LabelsVisibility = DefaultBoolean.True;
-                series.Label.TextPattern = "{A}";
-                chartControl1.Series.Add(series);
             }
-            chartControl1.Legend.Visibility = DefaultBoolean.False;
-            chartControl1.Refresh();
+  
             panel1.Dock = DockStyle.Fill;
             chartControl1.Dock = DockStyle.Fill;
 
-            checkButton1.Checked = false;
-            checkButton2.Checked = false;
-            checkButton3.Checked = true;
-           
-        }
+			Graphics();
+		}
 
         #endregion
 
@@ -482,115 +464,49 @@ namespace OTSIncAReportApp.Control_ECharts
 
         #endregion
 
-        /// <summary>
-        /// 折线图
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void checkButton2_CheckedChanged(object sender, EventArgs e)
-        {
-            if(checkButton2.Checked)
-            {
-                checkButton1.Checked = false;
-                checkButton3.Checked = false;
-                chartControl1.Series.Clear();
-                for (int i=0;i< prListData.Count;i++)
-                {
-                    string str = prListString[i];
-                    // 假设你已经有一个 ChartControl 实例,并且已经添加了一个饼图 Series
-                    Series series = new Series(str, ViewType.Line);
-                    for (int a = 0; a < prListData[i].Rows.Count; a++)
-                    {
-                        string name = prListData[i].Rows[a]["name"].ToString();
-                        double Cunt = Convert.ToDouble(prListData[i].Rows[a]["Cunt"]);
-                        series.Points.Add(new SeriesPoint(name, Cunt));
-                    }
-                    series.LabelsVisibility = DefaultBoolean.True;
-                    series.Label.TextPattern = "{V}";
-                    chartControl1.Series.Add(series);
-                }
-                chartControl1.Legend.Visibility = DefaultBoolean.False;
-                chartControl1.Refresh();
-            }
-            else
-            {
-                if (!checkButton1.Checked && !checkButton3.Checked)
-                {
-                    checkButton2.Checked = false;
-                }
-            }
-        }
-        /// <summary>
-        /// 柱状图
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void checkButton1_CheckedChanged(object sender, EventArgs e)
-        {
-            if (checkButton1.Checked)
-            {
-                checkButton2.Checked = false;
-                checkButton3.Checked = false;
-                chartControl1.Series.Clear();
-                for (int i = 0; i < prListData.Count; i++)
-                {
-                    string str = prListString[i];
-                    // 假设你已经有一个 ChartControl 实例,并且已经添加了一个饼图 Series
-                    Series series = new Series(str, ViewType.Bar);
-                    for (int a = 0; a < prListData[i].Rows.Count; a++)
-                    {
-                        string name = prListData[i].Rows[a]["name"].ToString();
-                        double Cunt = Convert.ToDouble(prListData[i].Rows[a]["Cunt"]);
-                        series.Points.Add(new SeriesPoint(name, Cunt));
-                    }
-                    series.LabelsVisibility = DefaultBoolean.True;
-                    series.Label.TextPattern = "{V}";
-                    chartControl1.Series.Add(series);
-                }
-                chartControl1.Legend.Visibility = DefaultBoolean.False;
-                chartControl1.Refresh();
-            }
-            else
-            {
-                if (!checkButton2.Checked && !checkButton3.Checked)
-                {
-                    checkButton1.Checked = true;
-                }
-            }
-        }
-
-        private void checkButton3_CheckedChanged(object sender, EventArgs e)
+      
+        private void Graphics()
         {
-            if (checkButton3.Checked)
-            {
-                checkButton1.Checked = false;
-                checkButton2.Checked = false;
-                chartControl1.Series.Clear();
-                for (int i = 0; i < prListData.Count; i++)
-                {
-                    string str = prListString[i];
-                    Series series = new Series(str, ViewType.Pie);
-                    for (int a = 0; a < prListData[i].Rows.Count; a++)
-                    {
-                        string name = prListData[i].Rows[a]["name"].ToString();
-                        double Cunt = Convert.ToDouble(prListData[i].Rows[a]["Cunt"]);
-                        series.Points.Add(new SeriesPoint(name, Cunt));
-                    }
-                    series.LabelsVisibility = DefaultBoolean.True;
-                    series.Label.TextPattern = "{A}";
-                    chartControl1.Series.Add(series);
-                }
-                chartControl1.Legend.Visibility = DefaultBoolean.False;
-                chartControl1.Refresh();
-            }
-            else
-            {
-                if (!checkButton1.Checked && !checkButton2.Checked)
-                {
-                    checkButton3.Checked = true;
-                }
-            }
-        }
-    }
+			chartControl1.Series.Clear();
+			for (int i = 0; i < prListData.Count; i++)
+			{
+				string str = prListString[i];
+
+				// 假设你已经有一个 ChartControl 实例,并且已经添加了一个饼图 Series
+				Series series = new Series(str, ViewType.Bar);
+			
+				for (int a = 0; a < prListData[i].Rows.Count; a++)
+				{
+					string name = prListData[i].Rows[a]["name"].ToString();
+					double Cunt = Convert.ToDouble(prListData[i].Rows[a]["Cunt"]);
+					series.Points.Add(new SeriesPoint(name, Cunt));
+				}
+				series.LabelsVisibility = DefaultBoolean.True;
+				chartControl1.Series.Add(series);
+				
+			}
+			
+
+			//图例的位置定义
+			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;
+
+			DevFunctions.ChangeView2(chartControl1, comboBox1.Text);
+		}
+
+		
+
+		private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
+		{
+            Graphics();
+		}
+	}
 
 }

+ 659 - 0
OTSIncAReportApp/1-UI/Control_DEVCharts/DevFunctions.cs

@@ -0,0 +1,659 @@
+using DevExpress.Utils;
+using DevExpress.XtraCharts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OTSIncAReportApp._1_UI.Control_DEVCharts
+{
+	public static class DevFunctions
+	{
+		/// <summary>
+		/// 饼状Series设置成百分比显示
+		/// </summary>
+		/// <param name="series">Series</param>
+		public static void SetPiePercentage(this Series series)
+		{
+			if (series.View is PieSeriesView)
+			{
+				((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
+				((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
+				((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
+			}
+		}
+
+		/// <summary>
+		/// 饼状Series设置显示格式,是以数字还是百分号显示
+		/// </summary>
+		/// <param name="series">Series</param>
+		public static void SetPieNumber(Series series)
+		{
+			if (series.View is PieSeriesView)
+			{
+				//设置为值
+				((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = false;
+				((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Number;
+				((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
+			}
+		}
+
+		public static void SetAxisForXYDiagram(Diagram diagram)
+		{
+			//坐标标题的定义
+			//坐标值说明的字体尺寸,颜色定义
+			((XYDiagram)diagram).AxisY.Title.TextColor = System.Drawing.Color.Black;
+			//((XYDiagram)diagram).AxisY.Title.Text = "质量占比";
+			((XYDiagram)diagram).AxisY.Title.Visible = true;
+			//((XYDiagram)diagram).AxisX.Title.Text = "矿物成分";
+			((XYDiagram)diagram).AxisX.Title.Visible = true;
+			((XYDiagram)diagram).AxisY.Visibility = DevExpress.Utils.DefaultBoolean.True;
+			// Access the type-specific options of the diagram.
+			((XYDiagram)diagram).EnableAxisXZooming = true;
+		}
+
+		/// <summary>
+		/// 饼状图突出设置
+		/// </summary>
+		/// <param name="chart">ChartControl</param>
+		/// <param name="pieSeries">Series【仅仅适用于PieSeriesView】</param>
+		/// <param name="explodeMode">突出模式【枚举】</param>
+		/// <param name="explodedValue">突出间距</param>
+		/// <param name="dragPie">是否可以拖动突出饼状</param>
+		public static void SetPieExplode(this ChartControl chart, Series pieSeries, PieExplodeMode explodeMode, int explodedValue, bool dragPie)
+		{
+			if (pieSeries.View is PieSeriesView)
+			{
+				if (!chart.RuntimeHitTesting)
+					chart.RuntimeHitTesting = true;
+				PieSeriesView _pieView = pieSeries.View as PieSeriesView;
+				_pieView.ExplodeMode = explodeMode;
+				_pieView.ExplodedDistancePercentage = explodedValue;
+				_pieView.RuntimeExploding = dragPie;
+			}
+		}
+
+		/// <summary>
+		/// Doughnut突出设置
+		/// </summary>
+		/// <param name="chart">ChartControl</param>
+		/// <param name="series">Series【仅仅适用于PieSeriesView】</param>
+		/// <param name="explodeMode">突出模式【枚举】</param>
+		/// <param name="explodedValue">突出间距</param>
+		/// <param name="dragPie">是否可以拖动突出饼状</param>
+		public static void SetDoughnutExplode(this ChartControl chart, Series series, PieExplodeMode explodeMode, int explodedValue, bool dragPie)
+		{
+			if (series.View is DoughnutSeriesView)
+			{
+				if (!chart.RuntimeHitTesting)
+					chart.RuntimeHitTesting = true;
+				DoughnutSeriesView _View = series.View as DoughnutSeriesView;
+				_View.ExplodeMode = explodeMode;
+				_View.ExplodedDistancePercentage = explodedValue;
+				_View.RuntimeExploding = dragPie;
+			}
+		}
+
+		
+		public static void ChangeView(ChartControl chartControl, string Serie, string ChartType)
+		{
+			Series s = chartControl.GetSeriesByName(Serie);
+			s.Label.TextPattern = "{V:F2}";
+			chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+			s.PointOptions.ValueNumericOptions.Precision = 2;
+			s.Label.PointOptions.ValueNumericOptions.Precision = 2;
+			s.LegendTextPattern = "{A}: {VP:P3}";
+
+			switch (ChartType)
+			{
+				case "折线图":
+					s.ChangeView(ViewType.Line);
+
+					// Access the view-type-specific options of the series.
+					((LineSeriesView)s.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
+					((LineSeriesView)s.View).LineStyle.DashStyle = DashStyle.Dash;
+					((LineSeriesView)s.View).ColorEach = true;
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+					break;
+				case "柱状图":
+					s.ChangeView(ViewType.Bar);
+
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+
+					break;
+				case "饼图":
+					s.ChangeView(ViewType.Pie);
+
+					//s.LegendPointOptions.PointView = PointView.ArgumentAndValues;
+					((PieSeriesLabel)s.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;//检测标签重合
+					SetPiePercentage(s);
+					s.Label.TextPattern = "{A}: {VP:P2}";
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+
+					s.ToolTipEnabled = DefaultBoolean.True;
+					s.ToolTipPointPattern = "{A}: {VP:P3}";
+
+
+					SetPieExplode(chartControl, s, PieExplodeMode.MinValue, 9, true);
+
+					break;
+				case "圆环图":
+					s.ChangeView(ViewType.Doughnut);
+
+					// Specify the text pattern of series labels.
+					s.Label.TextPattern = "{A}: {VP:P2}";
+
+					// Specify how series points are sorted.
+					s.SeriesPointsSorting = SortingMode.Ascending;
+					s.SeriesPointsSortingKey = SeriesPointKey.Argument;
+
+					// Specify the behavior of series labels.
+					((DoughnutSeriesLabel)s.Label).Position = PieSeriesLabelPosition.TwoColumns;
+					((DoughnutSeriesLabel)s.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
+					((DoughnutSeriesLabel)s.Label).ResolveOverlappingMinIndent = 5;
+
+					// Access the diagram's options.
+					((SimpleDiagram)chartControl.Diagram).Dimension = 2;
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+
+					s.ToolTipEnabled = DefaultBoolean.True;
+					s.ToolTipPointPattern = "{A}: {VP:P3}";
+
+					SetDoughnutExplode(chartControl, s, PieExplodeMode.MinValue, 5, true);
+
+					break;
+				case "气泡图":
+					s.ChangeView(ViewType.Bubble);
+					((BubbleSeriesView)s.View).BubbleMarkerOptions.Kind = MarkerKind.Circle;
+					((BubbleSeriesView)s.View).ColorEach = true;
+					s.CrosshairLabelPattern = "{A}";//鼠标悬浮的时候的焦点显示的格式
+
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+					break;
+				case "簇状条形图":
+					s.ChangeView(ViewType.SideBySideStackedBar);
+					((SideBySideStackedBarSeriesView)s.View).ColorEach = true;
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+					break;
+				case "堆积条形图":
+					s.ChangeView(ViewType.StackedBar);
+					((StackedBarSeriesView)s.View).ColorEach = true;
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+					break;
+				case "瀑布图":
+					s.ChangeView(ViewType.Waterfall);
+					((WaterfallSeriesView)s.View).ColorEach = true;
+					SetAxisForXYDiagram(chartControl.Diagram);
+
+					break;
+				case "3D柱状图":
+					s.ChangeView(ViewType.Bar3D);
+
+					// Access the series options.
+					s.PointOptions.PointView = PointView.ArgumentAndValues;
+
+					// Customize the view-type-specific properties of the series.
+					Bar3DSeriesView Bar3DView = (Bar3DSeriesView)s.View;
+					Bar3DView.BarDepthAuto = false;
+					Bar3DView.BarDepth = 1;
+					Bar3DView.BarWidth = 1;
+					Bar3DView.Transparency = 80;
+					Bar3DView.ColorEach = true;
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+
+					s.Label.TextPattern = "{V:F2}";
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+
+					s.LegendTextPattern = "{A}: {V:F3}";
+
+					break;
+				case "3D圆环图":
+					s.ChangeView(ViewType.Doughnut3D);
+
+					// Adjust the view-type-specific options of the series.
+					((Doughnut3DSeriesView)s.View).Depth = 11;
+					((Doughnut3DSeriesView)s.View).HoleRadiusPercent = 30;
+					((Doughnut3DSeriesView)s.View).ExplodedPoints.Add(s.Points[0]);
+
+					// Access the diagram's options.
+					((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseAngles;
+					((SimpleDiagram3D)chartControl.Diagram).RotationAngleX = -35;
+
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = false;
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.Label.TextPattern = "{A}: {VP:P2}";
+
+					s.ToolTipEnabled = DefaultBoolean.True;
+					s.ToolTipPointPattern = "{A}: {VP:P3}";
+
+					((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 110;
+
+					break;
+				case "3D饼图":
+					s.ChangeView(ViewType.Pie3D);
+
+					// Adjust the value numeric options of the series.
+					s.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
+
+					// Adjust the view-type-specific options of the series.
+					((Pie3DSeriesView)s.View).Depth = 11;
+
+					// Access the diagram's options.
+					((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseAngles;
+					((SimpleDiagram3D)chartControl.Diagram).RotationAngleX = -35;
+					((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 110;
+
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = false;
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.Label.TextPattern = "{A}: {VP:P2}";
+
+					break;
+				case "3D折线图":
+					s.ChangeView(ViewType.Line3D);
+
+					Line3DSeriesView Line3DView = (Line3DSeriesView)s.View;
+					Line3DView.LineWidth = 3;
+					Line3DView.LineThickness = 3;
+
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+					((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent = 0;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+
+					break;
+				case "3D百分比堆积条形图":
+					s.ChangeView(ViewType.FullStackedBar3D);
+
+					FullStackedBar3DSeriesView FullStackedBar3DView = (FullStackedBar3DSeriesView)s.View;
+					FullStackedBar3DView.Transparency = 160;
+					FullStackedBar3DView.Model = Bar3DModel.Cylinder;
+					FullStackedBar3DView.ShowFacet = false;
+					FullStackedBar3DView.ColorEach = true;
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.LegendTextPattern = "{A}: {V:F3}";
+
+					break;
+				case "3D漏斗图":
+					s.ChangeView(ViewType.Funnel3D);
+
+					// Display a title for the series, 
+					// and adjust another view-type-specific options of the series.
+					Funnel3DSeriesView funnelView = (Funnel3DSeriesView)s.View;
+					funnelView.HeightToWidthRatio = 1;
+					funnelView.HoleRadiusPercent = 70;
+					funnelView.PointDistance = 5;
+
+					// Adjust the value numeric options of the series.
+					s.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
+					s.PointOptions.ValueNumericOptions.Precision = 2;
+
+					// Access the view-type-specific series options.
+					((FunnelPointOptions)s.PointOptions).PercentOptions.ValueAsPercent = true;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.Label.TextPattern = "{A}: {VP:P2}";
+
+					((FunnelDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((FunnelDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((FunnelDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((FunnelDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((FunnelDiagram3D)chartControl.Diagram).ZoomPercent = 100;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+
+					break;
+				case "3DManhattan 条形图":
+					s.ChangeView(ViewType.ManhattanBar);
+
+					Bar3DSeriesView ManhattanBarView = (Bar3DSeriesView)s.View;
+					ManhattanBarView.BarDepthAuto = false;
+					ManhattanBarView.BarDepth = 1;
+					ManhattanBarView.Transparency = 80;
+					ManhattanBarView.ShowFacet = false;
+					ManhattanBarView.Model = Bar3DModel.Cylinder;
+					ManhattanBarView.ColorEach = true;
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.Label.TextPattern = "{V:F2}";
+
+					s.LegendTextPattern = "{A}: {V:F3}";
+
+					break;
+				case "3D堆积条形图":
+					s.ChangeView(ViewType.StackedBar3D);
+
+					StackedBar3DSeriesView StackedBar3DView = (StackedBar3DSeriesView)s.View;
+					StackedBar3DView.BarDepthAuto = false;
+					StackedBar3DView.BarDepth = 1.5;
+					StackedBar3DView.BarWidth = 1;
+					StackedBar3DView.Transparency = 160;
+					StackedBar3DView.Model = Bar3DModel.Cylinder;
+					StackedBar3DView.ColorEach = true;
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+					s.Label.TextPattern = "{V:F2}";
+
+					s.LegendTextPattern = "{A}: {V:F3}";
+
+					break;
+				case "3D阶梯线图":
+					s.ChangeView(ViewType.StepLine3D);
+
+					StepLine3DSeriesView StepLine3DView = (StepLine3DSeriesView)s.View;
+					StepLine3DView.LineWidth = 5;
+					StepLine3DView.LineThickness = 3;
+
+					((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+					((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+					((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+
+					// Access the diagram's options.
+					((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+
+					chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+					s.Label.TextPattern = "{V:F2}";
+
+					break;
+			}
+		}
+
+		public static void ChangeView2(ChartControl chartControl, string ChartType)
+		{
+			foreach (Series s in chartControl.Series)
+			{
+				s.Label.TextPattern = "{V:F2}";
+				chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+				s.PointOptions.ValueNumericOptions.Precision = 2;
+				s.Label.PointOptions.ValueNumericOptions.Precision = 2;
+				s.LegendTextPattern = "{A}: {VP:P3}";
+
+				switch (ChartType)
+				{
+					case "折线图":
+						s.ChangeView(ViewType.Line);
+						((LineSeriesView)s.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
+						((LineSeriesView)s.View).LineStyle.DashStyle = DashStyle.Dash;
+						SetAxisForXYDiagram(chartControl.Diagram);
+
+						break;
+					case "柱状图":
+						s.ChangeView(ViewType.Bar);
+						SetAxisForXYDiagram(chartControl.Diagram);
+
+
+						break;
+					case "饼图":
+						s.ChangeView(ViewType.Pie);
+						((PieSeriesLabel)s.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;//检测标签重合
+						SetPiePercentage(s);
+						s.Label.TextPattern = "{A}: {VP:P2}";
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.ToolTipEnabled = DefaultBoolean.True;
+						s.ToolTipPointPattern = "{A}: {VP:P3}";
+						SetPieExplode(chartControl, s, PieExplodeMode.MinValue, 9, true);
+						break;
+					case "圆环图":
+						s.ChangeView(ViewType.Doughnut);
+						s.Label.TextPattern = "{A}: {VP:P2}";
+						s.SeriesPointsSorting = SortingMode.Ascending;
+						s.SeriesPointsSortingKey = SeriesPointKey.Argument;
+						((DoughnutSeriesLabel)s.Label).Position = PieSeriesLabelPosition.TwoColumns;
+						((DoughnutSeriesLabel)s.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
+						((DoughnutSeriesLabel)s.Label).ResolveOverlappingMinIndent = 5;
+						((SimpleDiagram)chartControl.Diagram).Dimension = 2;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.ToolTipEnabled = DefaultBoolean.True;
+						s.ToolTipPointPattern = "{A}: {VP:P3}";
+						SetDoughnutExplode(chartControl, s, PieExplodeMode.MinValue, 5, true);
+						break;
+					case "气泡图":
+						s.ChangeView(ViewType.Bubble);
+						((BubbleSeriesView)s.View).BubbleMarkerOptions.Kind = MarkerKind.Circle;
+						s.CrosshairLabelPattern = "{A}";//鼠标悬浮的时候的焦点显示的格式
+						SetAxisForXYDiagram(chartControl.Diagram);
+						break;
+
+					case "簇状条形图":
+						s.ChangeView(ViewType.SideBySideStackedBar);
+						((SideBySideStackedBarSeriesView)s.View).ColorEach = true;
+						SetAxisForXYDiagram(chartControl.Diagram);
+						break;
+					case "堆积条形图":
+						s.ChangeView(ViewType.StackedBar);
+						((StackedBarSeriesView)s.View).ColorEach = true;
+						SetAxisForXYDiagram(chartControl.Diagram);
+						break;
+					case "瀑布图":
+						s.ChangeView(ViewType.Waterfall);
+						((WaterfallSeriesView)s.View).ColorEach = true;
+						SetAxisForXYDiagram(chartControl.Diagram);
+						break;
+					case "3D柱状图":
+						s.ChangeView(ViewType.Bar3D);
+						s.PointOptions.PointView = PointView.ArgumentAndValues;
+						Bar3DSeriesView Bar3DView = (Bar3DSeriesView)s.View;
+						Bar3DView.BarDepthAuto = false;
+						Bar3DView.BarDepth = 1;
+						Bar3DView.BarWidth = 1;
+						Bar3DView.Transparency = 80;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						s.Label.TextPattern = "{V:F2}";
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.LegendTextPattern = "{A}: {V:F3}";
+						break;
+					case "3D圆环图":
+						s.ChangeView(ViewType.Doughnut3D);
+						((Doughnut3DSeriesView)s.View).Depth = 11;
+						((Doughnut3DSeriesView)s.View).HoleRadiusPercent = 30;
+						((Doughnut3DSeriesView)s.View).ExplodedPoints.Add(s.Points[0]);
+						((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseAngles;
+						((SimpleDiagram3D)chartControl.Diagram).RotationAngleX = -35;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = false;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.Label.TextPattern = "{A}: {VP:P2}";
+						s.ToolTipEnabled = DefaultBoolean.True;
+						s.ToolTipPointPattern = "{A}: {VP:P3}";
+						((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 110;
+						break;
+					case "3D饼图":
+						s.ChangeView(ViewType.Pie3D);
+						s.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
+						((Pie3DSeriesView)s.View).Depth = 11;
+						((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseAngles;
+						((SimpleDiagram3D)chartControl.Diagram).RotationAngleX = -35;
+						((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 110;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = false;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((SimpleDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.Label.TextPattern = "{A}: {VP:P2}";
+						break;
+					case "3D折线图":
+						s.ChangeView(ViewType.Line3D);
+						Line3DSeriesView Line3DView = (Line3DSeriesView)s.View;
+						Line3DView.LineWidth = 3;
+						Line3DView.LineThickness = 3;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent = 0;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+						break;
+					case "3D百分比堆积条形图":
+						s.ChangeView(ViewType.FullStackedBar3D);
+						FullStackedBar3DSeriesView FullStackedBar3DView = (FullStackedBar3DSeriesView)s.View;
+						FullStackedBar3DView.Transparency = 160;
+						FullStackedBar3DView.Model = Bar3DModel.Cylinder;
+						FullStackedBar3DView.ShowFacet = false;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.LegendTextPattern = "{A}: {V:F3}";
+						break;
+					case "3D漏斗图":
+						s.ChangeView(ViewType.Funnel3D);
+						Funnel3DSeriesView funnelView = (Funnel3DSeriesView)s.View;
+						funnelView.HeightToWidthRatio = 1;
+						funnelView.HoleRadiusPercent = 70;
+						funnelView.PointDistance = 5;
+						s.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
+						s.PointOptions.ValueNumericOptions.Precision = 2;
+						((FunnelPointOptions)s.PointOptions).PercentOptions.ValueAsPercent = true;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.Label.TextPattern = "{A}: {VP:P2}";
+						((FunnelDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((FunnelDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((FunnelDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((FunnelDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((FunnelDiagram3D)chartControl.Diagram).ZoomPercent = 100;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						break;
+					case "3DManhattan 条形图":
+						s.ChangeView(ViewType.ManhattanBar);
+						Bar3DSeriesView ManhattanBarView = (Bar3DSeriesView)s.View;
+						ManhattanBarView.BarDepthAuto = false;
+						ManhattanBarView.BarDepth = 1;
+						ManhattanBarView.Transparency = 80;
+						ManhattanBarView.ShowFacet = false;
+						ManhattanBarView.Model = Bar3DModel.Cylinder;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.Label.TextPattern = "{V:F2}";
+						s.LegendTextPattern = "{A}: {V:F3}";
+						break;
+					case "3D堆积条形图":
+						s.ChangeView(ViewType.StackedBar3D);
+						StackedBar3DSeriesView StackedBar3DView = (StackedBar3DSeriesView)s.View;
+						StackedBar3DView.BarDepthAuto = false;
+						StackedBar3DView.BarDepth = 1.5;
+						StackedBar3DView.BarWidth = 1;
+						StackedBar3DView.Transparency = 160;
+						StackedBar3DView.Model = Bar3DModel.Cylinder;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
+						s.Label.TextPattern = "{V:F2}";
+						s.LegendTextPattern = "{A}: {V:F3}";
+						break;
+					case "3D阶梯线图":
+						s.ChangeView(ViewType.StepLine3D);
+						StepLine3DSeriesView StepLine3DView = (StepLine3DSeriesView)s.View;
+						StepLine3DView.LineWidth = 5;
+						StepLine3DView.LineThickness = 3;
+						((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeZooming = true;
+						((XYDiagram3D)chartControl.Diagram).RuntimeRotation = true;
+						((XYDiagram3D)chartControl.Diagram).RotationType = RotationType.UseMouseAdvanced;
+						((XYDiagram3D)chartControl.Diagram).ZoomPercent = 125;
+						chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+						s.Label.TextPattern = "{V:F2}";
+						break;
+				}
+			}
+		}
+
+		#region 通用
+		/// <summary>
+		/// [颜色:16进制转成RGB]
+		/// </summary>
+		/// <param name="strColor">设置16进制颜色 [返回RGB]</param>
+		/// <returns></returns>
+		public static System.Drawing.Color colorHx16toRGB(string strHxColor)
+		{
+			try
+			{
+				if (strHxColor.Length == 0)
+				{//如果为空
+					return System.Drawing.Color.FromArgb(255, 255, 204);//设为白色
+				}
+				else
+				{//转换颜色
+					return System.Drawing.Color.FromArgb(System.Int32.Parse(strHxColor.Substring(1, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(3, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(5, 2), System.Globalization.NumberStyles.AllowHexSpecifier));
+				}
+			}
+			catch
+			{//设为白色
+				return System.Drawing.Color.FromArgb(255, 255, 204);
+			}
+		}
+		#endregion
+	}
+
+}
+

+ 3 - 3
OTSIncAReportApp/1-UI/OTSReportExport/DataIntegration/TernaryDiagram.cs

@@ -134,7 +134,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
             dt_point_sort.Columns.Add("X", typeof(double));
             dt_point_sort.Columns.Add("Y", typeof(double));
             dt_point_sort.Columns.Add("Color_position");
-            DataTable particles = GetParticles(resultFile.FilePath, nameList, 0, m_otsreport_export, m_mbszclass);
+            DataTable particles = GetParticles(resultFile.FilePath, nameList, 0, m_otsreport_export, a_PartSizeFile);
             foreach (DataRow item in particles.Rows)
             {
                 if (item["particleLocation"].ToString() == "0,0,0")
@@ -256,13 +256,13 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
             m_condition = m_otsreport_export.m_ReportApp.m_conditionChoose;
 
         }
-        private DataTable GetParticles(string filepath, List<string> nameList, int sel, OTSReport_Export m_otsreport_export, c_TemplateClass m_mbszclass)
+        private DataTable GetParticles(string filepath, List<string> nameList, int sel, OTSReport_Export m_otsreport_export, string a_PartSizeFile)
         {
             ParticleData particledata = new ParticleData(filepath);
             //设置标签名称
             List<string> listName = new List<string>();
             //获取粒级表
-            string pathe = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder + m_mbszclass.M_SYXT.str_cb_syxt_ljb.ToString();
+            string pathe = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder + a_PartSizeFile;
             DataSet ds = XMLoperate.GetXml(pathe);
             string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
 

+ 1 - 0
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -538,6 +538,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="1-UI\Control_DEVCharts\DevFunctions.cs" />
     <Compile Include="1-UI\Control_Graph\Controls\ImageSplicer.cs" />
     <Compile Include="1-UI\Control_Grids\ParticlesGridDevidePage\ListOfSimilarParticles.cs">
       <SubType>Form</SubType>