Browse Source

报告导出过程代码优化更新

zhangjiaxin 1 năm trước cách đây
mục cha
commit
0df64bfeef

+ 17 - 3
OTSIncAReportApp/1-UI/OTSTemplateDesigner/Export_ReportTemplate.cs

@@ -2508,7 +2508,13 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
                 dr2["Area"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["ar"]);
                 dr2["TypeId"] = AreaInformationOfAllElements.Rows[i]["TypeId"].ToString();
                 dr2["Cunt"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["con"]);
-                dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
+
+
+                if (AreaInformationOfAllElements.Rows[i]["GroupName"].ToString() == "")
+                    dr2["Class"] = "NULL";
+                else
+                    dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
+                //dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
                 AllAnalysisDetails.Rows.Add(dr2);
             }
             //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
@@ -2516,7 +2522,11 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             DataTable getClass_dt = fielddata.GetAllClass();
             for (int i = 0; i < getClass_dt.Rows.Count; i++)
             {
-                ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
+
+                if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
+                    ClassName.Add("NULL");
+                else
+                    ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
             }
 
             DataTable AreaRatio = new DataTable();
@@ -2801,7 +2811,11 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
             {
                 DataRow dr = AreaRatio.NewRow();
-                dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
+                //dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
+                if (AllAnalysisDetails.Rows[i]["Class"].ToString() == "")
+                    dr["Class"] = "NULL";
+                else
+                    dr["Class"]= AllAnalysisDetails.Rows[i]["Class"].ToString();
                 dr["subdivision"] = AllAnalysisDetails.Rows[i]["Name"].ToString();
                 dr["Area"] = Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]);
                 dr["inca_proportion"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / sumArea) * 100, 2);

+ 0 - 22
OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_Export.Designer.cs

@@ -45,9 +45,7 @@
             this.panel_container = new System.Windows.Forms.Panel();
             this.button3 = new System.Windows.Forms.Button();
             this.btn_preview = new System.Windows.Forms.Button();
-            this.backgroundWorker2 = new System.ComponentModel.BackgroundWorker();
             this.button7 = new System.Windows.Forms.Button();
-            this.button1 = new System.Windows.Forms.Button();
             this.SuspendLayout();
             // 
             // richTextBox1
@@ -217,12 +215,6 @@
             this.btn_preview.UseVisualStyleBackColor = true;
             this.btn_preview.Click += new System.EventHandler(this.btn_preview_Click);
             // 
-            // backgroundWorker2
-            // 
-            this.backgroundWorker2.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker2_DoWork);
-            this.backgroundWorker2.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker2_ProgressChanged);
-            this.backgroundWorker2.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker2_RunWorkerCompleted);
-            // 
             // button7
             // 
             this.button7.Location = new System.Drawing.Point(234, 319);
@@ -233,24 +225,12 @@
             this.button7.UseVisualStyleBackColor = true;
             this.button7.Click += new System.EventHandler(this.button7_Click);
             // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(93, 319);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(75, 23);
-            this.button1.TabIndex = 1009;
-            this.button1.Text = "button1";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Visible = false;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
             // OTSReport_Export
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(473, 345);
             this.ControlBox = false;
-            this.Controls.Add(this.button1);
             this.Controls.Add(this.button7);
             this.Controls.Add(this.cbo_sjy);
             this.Controls.Add(this.label4);
@@ -303,8 +283,6 @@
         public System.Windows.Forms.Panel panel_container;
         private System.Windows.Forms.Button button3;
         private System.Windows.Forms.Button btn_preview;
-        public System.ComponentModel.BackgroundWorker backgroundWorker2;
         private System.Windows.Forms.Button button7;
-        private System.Windows.Forms.Button button1;
     }
 }

+ 178 - 547
OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_Export.cs

@@ -18,6 +18,8 @@ using System.Xml;
 using OTSIncAReportApp._1_UI.OTSTemplateDesigner;
 using DevExpress.XtraReports.UI;
 using OTSIncAReportApp.ReportTemplate;
+using System.Threading.Tasks;
+using System.Threading;
 
 namespace OTSIncAReportApp
 {
@@ -51,30 +53,7 @@ namespace OTSIncAReportApp
 
         #endregion
 
-        #region 条件参数变量
-        /// <summary>
-        /// 选择的数据类型
-        /// </summary>
-        public string SJLX { get; set; }
-
-        /// <summary>
-        /// 尺寸计算方法
-        /// </summary>
-        public string CCJSFF { get; set; }
-
-        /// <summary>
-        /// 粒级表
-        /// </summary>
-        public string LJB { get; set; }
 
-        /// <summary>
-        /// 三元相图模板
-        /// </summary>
-        public string SYXTMB { get; set; }
-
-        #endregion
-
-       
         #region 模板设置类
         /// <summary>
         /// 模板设置类
@@ -640,6 +619,8 @@ namespace OTSIncAReportApp
             table = lan.GetNameTable(this.Name);
             #endregion
 
+          
+
         }
         ///<summary>
         ///从配置文件中读取报告模板信息
@@ -850,7 +831,6 @@ namespace OTSIncAReportApp
         /// </summary>
         private void LoadMBSZClass()
         {
-
             //文件路径
             m_mbszclass.M_DZ.route = xmlutil.Read("M_address", "Path");
             if (m_mbszclass.M_DZ.route == "")
@@ -879,30 +859,6 @@ namespace OTSIncAReportApp
             xmlutil.Write(m_mbszclass.M_DZ.route.ToString(), "M_address", "Path");
         }
 
-        /// <summary>
-        /// 传入,3个层级的xml结点标识,进行删除结点
-        /// </summary>
-        /// <param name="strnode_mk"></param>
-        /// <param name="strnode_kj"></param>
-        /// <param name="strnode_xh"></param>
-        private void RemoveMBSZClassNode(string strnode_mk, string strnode_kj, string strnode_xh, int int_start)
-        {
-            for (int i = int_start; i < 1000; i++)
-            {
-                string strxh = i.ToString();
-                if (null != xmlutil.Read(strnode_mk, strnode_kj, strnode_xh + strxh))
-                {
-                    //删除该节点
-                    xmlutil.RemoveNode(strnode_mk, strnode_kj, strnode_xh + strxh);
-                }
-                else
-                {
-                    break;
-                }
-            }
-        }
- 
-     
 
         /// <summary>
         /// 加载报告模板选择项,数据源选项
@@ -922,7 +878,6 @@ namespace OTSIncAReportApp
 
         private void OTSReport_Export_Load(object sender, EventArgs e)
         {
-           
             //先获取D盘,如果没有,则再获取C盘
             string str_drivename = GetSecondDriveName();
             if (str_drivename == "")
@@ -933,39 +888,23 @@ namespace OTSIncAReportApp
             m_str_tmpdocxpath = str_drivename + "1.doc";
             //窗体加载时,初始化Combobox
             BindComboBox();
-            //设置界面线程
-            backgroundWorker2.WorkerReportsProgress = true;
-            backgroundWorker2.WorkerSupportsCancellation = true;
-
+       
             //确定报表进程db数据库的路径
             string strdbname = "ReportTemplateDB.db";
             m_strDBpath = m_ReportApp.m_rstDataMgr.ResultFilesList[cbo_sjy.SelectedIndex].FilePath;
             m_strDBpathGB = m_ReportApp.m_rstDataMgr.ResultFilesList[cbo_sjy.SelectedIndex].FilePath;
             m_strDBpath = m_strDBpath + "\\" + strdbname;
             m_strDBpathGB = m_strDBpathGB + "\\" + "ReportGBDB.db";
-
             string strdbparticlelistname = "ReportTemplateDBParticleList.db";
             m_strDBpath_ParticleList = m_ReportApp.m_rstDataMgr.ResultFilesList[cbo_sjy.SelectedIndex].FilePath;
             m_strDBpath_ParticleList = m_strDBpath_ParticleList + "\\" + strdbparticlelistname;
 
+
            
         }
         #endregion
-
         #region 自定义方法
-        /// <summary>
-        /// 传入完整的路径及文件名,和需要的扩展名,返回文件加上需要的扩展名
-        /// </summary>
-        /// <param name="in_str"></param>
-        /// <param name="in_extename"></param>
-        /// <returns></returns>
-        public string GetFileExteName(string in_str, string in_extename)
-        {
-            string ret_str = in_str.Substring(0, in_str.IndexOf('.'));
-            ret_str = ret_str + in_extename;
-            return ret_str;
-        }
-
+      
         /// <summary>
         /// 获取第一个磁盘盘符的名称
         /// </summary>
@@ -1006,95 +945,6 @@ namespace OTSIncAReportApp
             richTextBox1.ScrollToCaret();
         }
 
-        /// <summary>
-        /// 重载输出文本,带有可以指定颜色
-        /// </summary>
-        /// <param name="in_str"></param>
-        /// <param name="in_c"></param>
-        public void WriteRictBox(string in_str, Color in_c)
-        {
-            //追加到rictbox尾部
-            richTextBox1.AppendText("[" + DateTime.Now.Hour.ToString() + ":"
-                + DateTime.Now.Minute.ToString() + ":"
-                + DateTime.Now.Second.ToString() + "]"
-                + in_str + Environment.NewLine);
-            richTextBox1.SelectionColor = in_c;
-            richTextBox1.ScrollToCaret();
-        }
-        /// <summary>
-        /// 根据传入的颜色,及传入Size的大小,返回一个该色的bitmap对象
-        /// </summary>
-        /// <param name="in_c"></param>
-        /// <returns></returns>
-        public Bitmap GetBitmapByColor(Color in_c, Size in_z)
-        {
-            Bitmap bmp = new Bitmap(in_z.Width, in_z.Height); //这里给104是为了左边和右边空出2个像素,剩余的100就是百分比的值
-            Graphics g = Graphics.FromImage(bmp);
-            g.Clear(Color.White);
-            SolidBrush drawBrush = new SolidBrush(Color.Black);
-            g.FillRectangle(new SolidBrush(in_c), 0, 0, in_z.Width, in_z.Height);
-
-            return bmp;
-        }
-
-        /// <summary>
-        /// [颜色:16进制转成RGB]
-        /// </summary>
-        /// <param name="strColor">设置16进制颜色 [返回RGB]</param>
-        /// <returns></returns>
-        public System.Drawing.Color colorHx16toRGB(string strHxColor)
-        {
-            try
-            {
-                if (strHxColor.Length == 0)
-                {//如果为空
-                    return System.Drawing.Color.FromArgb(0, 0, 0);//设为黑色
-                }
-                else
-                {//转换颜色
-                    if (strHxColor.IndexOf('#') > -1)
-                    {
-                        //如果颜色格式是 #0000FF 格式的
-                        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));
-                    }
-                    else
-                    {
-                        //如果颜色格式是 0000FF 格式的
-                        return System.Drawing.Color.FromArgb(System.Int32.Parse(strHxColor.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(2, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(4, 2), System.Globalization.NumberStyles.AllowHexSpecifier));
-                    }
-                }
-            }
-            catch
-            {//设为黑色
-                return System.Drawing.Color.FromArgb(0, 0, 0);
-            }
-        }
-
-
-        /// <summary>
-        /// [颜色:RGB转成16进制]专为输出Excel表头格式而定制,其它地方不要使用该方法,或修改返回加#号,例#000000FF
-        /// </summary>
-        /// <param name="R">红 int</param>
-        /// <param name="G">绿 int</param>
-        /// <param name="B">蓝 int</param>
-        /// <returns></returns>
-        public string colorRGBtoHx16ForExcel(Color color)
-        {
-            if (color.IsEmpty)
-                return "000000";
-            return String.Format("{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
-        }
-
-        /// <summary>
-        /// 将RGB颜色转成整数
-        /// </summary>
-        /// <param name="color"></param>
-        /// <returns></returns>
-        public int ParseRGB(Color color)
-        {
-            return (int)(((int)color.B << 16) | (ushort)(((ushort)color.G << 8) | color.R));
-        }
-
         /// <summary>
         /// 从指定的几种颜色中进行随机颜色,传入30个颜色的范围,越大颜色越多
         /// </summary>
@@ -1209,78 +1059,26 @@ namespace OTSIncAReportApp
             return ret_color;
         }
 
-
-        /// <summary>
-        /// 打开报表模板进程
-        /// </summary>
-        private void OpenOTSINcAreportTemplateAPP()
-        {
-            ReportPrintTool tool = new ReportPrintTool(DEVReport);
-            tool.ShowPreview();
-        }
-
-
-        /// <summary>
-        /// 打开报表模板进程,颗粒列表
-        /// </summary>
-        public void OpenOTSINcAreportTemplateAPP_ParticleList(string arg4)
-        {
-            //----------------------------------
-            //共传4个参数
-            //参数1:是需要打开db数据库的路径
-            //参数2:是打开报表模板xml文件的路径
-            //参数3:是要执行查看报表的类型,输出主报表,还是输出颗粒列表
-            //参数4:打开主报表时是是指定夹杂物的数量,打开颗粒列表时,是颗粒列表显示的范围如,0-50,50-100
-            //参数5:是要执行查看报表的类型,输出主报表时,指定读取的标记帧图图像范围,如0-50,50-100,输出颗粒列表时无用
-            //----------------------------------
-            ProcessStartInfo process = new ProcessStartInfo();
-            process.FileName = "ReportTemplateExe\\OTSIncAReportTemplate.exe";//打开app的路径
-            string arg1 = m_strDBpath_ParticleList.Replace(" ", "^");//参数1,是需要打开db数据库的路径
-            string arg2 = tb_mblj.Text.Trim().Replace(" ", "^");//参数2,是模板文件的路径
-            string arg3 = "ParticleListReport";//颗粒列表
-            //string arg4 = "";//夹杂物数量,从多少到多少
-            string arg5 = "0";//在打开颗粒列表时,传的标记帧图图像数量参数暂不用
-            process.Arguments = string.Format("{0} {1} {2} {3} {4}", arg1, arg2, arg3, arg4, arg5);  //多个参数用空格隔开
-            process.WindowStyle = ProcessWindowStyle.Normal;
-            Process.Start(process);
-        }
         #endregion
 
         #region 窗体控件事件
         private void OTSReport_Export_FormClosing(object sender, FormClosingEventArgs e)
         {
-            if (backgroundWorker2.IsBusy == true)
-            {
-                //导出线程正在工作中,不让退出该界面
-                MessageBox.Show(table["messagebox1"].ToString(), table["messagebox2"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
-                //然后取消关闭窗体的事件
-                e.Cancel = true;
-            }
+            //if (backgroundWorker2.IsBusy == true)
+            //{
+            //    //导出线程正在工作中,不让退出该界面
+            //    MessageBox.Show(table["messagebox1"].ToString(), table["messagebox2"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
+            //    //然后取消关闭窗体的事件
+            //    e.Cancel = true;
+            //}
         }
 
-      
-
         private void btn_preview_Click(object sender, EventArgs e)
         {
-            
             DEVReport = new OTS_DEVReport(this, m_mbszclass);
-            //DEVReport.Dispose();
-
-          
-            m_ReportApp.m_rstDataMgr.setSelectedIndex(cbo_sjy.SelectedIndex);
-            
-            //重新导出报表数据
-            m_ReportApp.m_ChartsWindow.Activate();
-
-            WriteRictBox(table["rictbox1"].ToString());
-            progressBar1.Value = 0;
-
-            //预览
-            if (backgroundWorker2.IsBusy != true)
-            {
-                // 启动异步操作
-                backgroundWorker2.RunWorkerAsync();
-            }
+            LoadData();
+            ReportPrintTool tool = new ReportPrintTool(DEVReport);
+            tool.ShowPreview();
 
         }
 
@@ -1307,11 +1105,9 @@ namespace OTSIncAReportApp
         {
             LoadControlsToXml();
             SaveMBSClass();
-
         }
 
 
-
         private void btn_selectPath_Click(object sender, EventArgs e)
         {
             //选择保存文件路径对话框
@@ -1354,327 +1150,202 @@ namespace OTSIncAReportApp
             if (OtsTemDRM.ShowDialog() == DialogResult.Yes)
             {
                 //如果用户点击确定,则将m_mbszclass,模板设置类的内容存到文件中。
-                // m_mbszclass.M_DZ.route = tb_mblj.Text;
                 m_mbszclass.M_DZ.route = tb_mblj.Text;
                 SaveMBSClass();
             }
         }
-
         #endregion
        
-
         #region 导出工作线程部份
-        private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
+
+        private void LoadData()
         {
-            BackgroundWorker worker = sender as BackgroundWorker;
-
-            //主任务的实现
-            #region //获取模板设置的导出的内容-------------------------------------------------
-
-            //获取报告模板设置内容
-            worker.ReportProgress(0, table["rictbox4"].ToString());//已获取模板中设置内容为:
-            System.Threading.Thread.Sleep(1);
-            //更新进度
-            worker.ReportProgress(5);
-            #endregion //设置模板导出内容结束--------------------------------------------------------
-
-
-            int processvalue = 12;//各功能模块从进度条为15时开始依次调用
-
-            #region //依次循环调用各功能模块-------------------------------------------------------------
-            int i_zz = 0;//增值
-            i_zz = 80 / 9;
-
-            //首先将测量结果信息表导出,在表头------------------------------------------------
-            worker.ReportProgress(0, table["result_information_ing"].ToString());//加载测量结果信息表模块中....
-            worker.ReportProgress(0, table["load_result_information"].ToString());//加载:测量结果信息表
-            //更新进度条
-            processvalue = processvalue + 1;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            double  total = 1;
+            if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)
+                total++;
+            if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)
+                total++;
+            if (m_mbszclass.M_JZWZB.b_ck_surface)
+                total++;
+            if(m_mbszclass.M_JZWZB.b_ck_chart)
+                total++;
+            if(m_mbszclass.M_SYXT.b_ck_syxt_xsmk)
+                total++;
+            if(m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)
+                total++;
+            if(m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt)
+                total++;
+
+            double Serial = 1;
+            try
             {
-                System.Threading.Thread.Sleep(500);
+                if (true)//测量结果信息表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:测量结果信息表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.International_language(dev_internationalLanguage());
+                    DEVReport.setResultGrid();
+                }
             }
-            worker.ReportProgress(0, table["loading_result_information_completed"].ToString());//加载测量结果信息表模块完成
-                                                                                               //-------------------------------------------------------------------------
-
-
-            //调用,颗粒尺寸分析表------------------------------------------------
-            worker.ReportProgress(0, table["dimensional_analysis_table_ing"].ToString());//加载颗粒尺寸分析表模块中....
-            worker.ReportProgress(0, table["loading_dimension_analysis_table"].ToString());//加载:颗粒尺寸分析表
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            catch
             {
-                System.Threading.Thread.Sleep(500);
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("测量结果信息表加载失败!\n");
+                return;
             }
-            worker.ReportProgress(0, table["loading_dimension_analysis_table_completed"].ToString());//加载颗粒尺寸分析表模块完成
-
 
-
-            //调用,元素分析表---------------------------------------------
-            worker.ReportProgress(0, table["element_analysis_table_ing"].ToString());//加载元素分析表模块中....
-            worker.ReportProgress(0, table["load_element_analysis_table"].ToString());//加载:元素分析表
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            // 执行后台任务...  
+            try
             {
-                System.Threading.Thread.Sleep(500);
+                if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)//颗粒尺寸分析表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:颗粒尺寸分析表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.setParticleSizeTable(m_mbszclass.M_KLFXJG.b_ck_klcc_dfl, m_mbszclass.M_KLFXJG.b_ck_klcc_xfl, m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt);
+                }
+            }
+            catch
+            {
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("颗粒尺寸分析表加载失败!\n");
+                return;
             }
-            worker.ReportProgress(0, table["loading_element_analysis_table_completed"].ToString());//加载元素分析表模块完成
-
-
 
-            //调用,夹杂物面积比表---------------------------------------------
-            worker.ReportProgress(0, table["inca_area_ratio_table_ing"].ToString());//加载夹杂物面积比表模块中....
-            worker.ReportProgress(0, table["load_inca_area_ratio_table"].ToString());//加载:夹杂物面积比表
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            try
             {
-                System.Threading.Thread.Sleep(500);
+                if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)//元素分析表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:元素分析表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.setElementAvgGrid();
+                }
             }
-            worker.ReportProgress(0, table["loading_inca_area_ratio_table_completed"].ToString());//加载夹杂物面积比表模块完成
-
-
-            //调用,夹杂物面积比图---------------------------------------------
-            worker.ReportProgress(0, table["inca_area_ratio_diagram_ing"].ToString());//加载夹杂物面积比图模块中....
-            worker.ReportProgress(0, table["load_inca_area_ratio_diagram"].ToString());//加载:夹杂物面积比图
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            catch
             {
-                System.Threading.Thread.Sleep(500);
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("元素分析表加载失败!\n");
+                return;
             }
-            worker.ReportProgress(0, table["loading_inca_area_ratio_diagram_completed"].ToString());//加载夹杂物面积比图模块完成
-
-
-            //System.Threading.Thread.Sleep(2000);
-            //调用,三元相图----------------------------------------------
-            worker.ReportProgress(0, table["ternary_graph_ing"].ToString());//加载三元相图模块中....
-            worker.ReportProgress(0, table["load_ternary_graph"].ToString());//加载:三元相图
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            try
             {
-                System.Threading.Thread.Sleep(500);
+                if (m_mbszclass.M_JZWZB.b_ck_surface)//夹杂物面积比表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:夹杂物面积比表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.setINCAtable();
+                }
             }
-            worker.ReportProgress(0, table["loading_ternary_graph_completed"].ToString());//加载三元相图模块完成
-
-
-            //调用输出,颗粒列表----------------------------------------
-            worker.ReportProgress(0, table["particle_list_ing"].ToString());//加载颗粒列表模块中....
-            worker.ReportProgress(0, table["load_particle_list"].ToString());//加载:颗粒列表
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            catch
             {
-                System.Threading.Thread.Sleep(500);
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("夹杂物面积比表加载失败!\n");
+                return;
             }
-            worker.ReportProgress(0, table["loading_particle_list_completed"].ToString());//加载颗粒列表模块完成
-
-
-
-            //调用输出,颗粒列表帧图----------------------------------------
-            worker.ReportProgress(0, table["particle_list_frame_diagram_ing"].ToString());//加载颗粒列表帧图模块中....
-            worker.ReportProgress(0, table["load_particle_list_frame_diagram"].ToString());//加载:颗粒列表帧图
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            try
             {
-                System.Threading.Thread.Sleep(500);
+                if (m_mbszclass.M_JZWZB.b_ck_chart)//夹杂物面积比图
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:夹杂物面积比图……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.set_incaPIC_classify();
+                    DEVReport.set_incaPIC_subdivision();
+                }
             }
-            worker.ReportProgress(0, table["loading_particle_list_frame_diagram_completed"].ToString());//加载颗粒列表帧图模块完成
-
-
-            //生成,模板临时数据库文件----------------------------------------------
-            worker.ReportProgress(0, table["rictbox35"].ToString());//生成模板临时数据库文件....
-            worker.ReportProgress(0, table["rictbox36"].ToString());//加载:生成模板临时数据库文件
-            //更新进度条
-            processvalue = processvalue + i_zz;
-            worker.ReportProgress(processvalue);
-            lock (m_thread_flag)
-                m_thread_flag = table["rictbox7"].ToString();//等待
-            while (m_thread_flag == table["rictbox7"].ToString())//等待
+            catch
             {
-                System.Threading.Thread.Sleep(500);
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("夹杂物面积加载失败!\n");
+                return;
             }
-            worker.ReportProgress(0, table["rictbox37"].ToString());//模板临时数据库文件完成
-
-            #endregion 依将循环调用各功能模块结束-------------------------------------------------------
-        }
-        private string AnalyticGraphics(int a_Indexes)
-        {
-            if (a_Indexes == 0)
-                return "pie";//饼图
-            else if (a_Indexes == 1)
-                return "radius";//圈图
-            else if (a_Indexes == 2)
-                return "bar";//柱状图
-            else if (a_Indexes == 3)
-                return "line";//线状图
-            else return "stack";//堆叠图
-        }
 
-        private void backgroundWorker2_ProgressChanged(object sender, ProgressChangedEventArgs e)
-        {
-            string strNill = table["rictbox40"].ToString();
-            BackgroundWorker worker = sender as BackgroundWorker;
-          
-            //更新进度条的进度
-            if (e.UserState != null)
+            try
             {
-                string ls_str = (string)e.UserState;
-                WriteRictBox((string)e.UserState);
-
-                string s = AnalyticGraphics(m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx);
-                if (ls_str.IndexOf(table["rictbox12"].ToString()) > -1)//加载:
+                if (m_mbszclass.M_SYXT.b_ck_syxt_xsmk)//三元图
                 {
-                    if (ls_str.IndexOf(table["result_information"].ToString()) > -1)//测量结果信息表
-                    {
-                        DEVReport.International_language(dev_internationalLanguage());
-                        DEVReport.setResultGrid();
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-                    if (ls_str.IndexOf(table["dimensional_analysis_table"].ToString()) > -1)//颗粒尺寸分析表
-                    {
-
-                        if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)
-                        {
-                            //DEVReport.setParticleSizeTable(true, false);
-                            DEVReport.setParticleSizeTable(m_mbszclass.M_KLFXJG.b_ck_klcc_dfl, m_mbszclass.M_KLFXJG.b_ck_klcc_xfl, m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt);
-                        }
-                            //DEVReport.setParticleSizeTable(true,false);
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-
-                    if (ls_str.IndexOf(table["element_analysis_table"].ToString()) > -1)//元素分析表
-                    {
-                        if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.setElementAvgGrid();
-                        }
-                            //DEVReport.setElementAvgGrid();
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-
-                    if (ls_str.IndexOf(table["inca_area_ratio_table"].ToString()) > -1)//夹杂物面积比表
-                    {
-                        if (m_mbszclass.M_JZWZB.b_ck_surface)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.setINCAtable();
-                        }
-                            
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-
-                    if (ls_str.IndexOf(table["inca_area_ratio_diagram"].ToString()) > -1)//夹杂物面积比图
-                    {
-                        if (m_mbszclass.M_JZWZB.b_ck_chart)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.set_incaPIC_classify();
-                            DEVReport.set_incaPIC_subdivision();
-                        }
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-                    if (ls_str.IndexOf(table["ternary_graph"].ToString()) > -1)//三元图
-                    {
-                        if (m_mbszclass.M_SYXT.b_ck_syxt_xsmk)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.InsertReportTemplateChart_Trianglediagram();
-                        }
-                           
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-
-                    if (ls_str.IndexOf(table["particle_list"].ToString()) > -1)//颗粒列表
-                    {
-                        if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.set_kllb_data();
-                        }
-                            
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-
-                    if (ls_str.IndexOf(table["particle_list_frame_diagram"].ToString()) > -1)//颗粒帧图列表
-                    {
-                        if (m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt)
-                        {
-                            DEVReport.XRPageBreak();
-                            DEVReport.set_kllb_data_frame();
-                        }
-                        
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
-                    if (ls_str.IndexOf(table["rictbox38"].ToString()) > -1)//生成模板临时数据库文件
-                    {
-                        //DEVReport.International_language(dev_internationalLanguage());
-                        lock (m_thread_flag)
-                            m_thread_flag = strNill;
-                    }
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:三元图……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.InsertReportTemplateChart_Trianglediagram();
                 }
             }
-            else
+            catch
+            {
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("三元图加载失败!\n");
+                return;
+            }
+            try
+            {
+                if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)//颗粒列表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:颗粒列表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.set_kllb_data();
+                }
+            }
+            catch
             {
-                progressBar1.Value = e.ProgressPercentage;
-                WriteRictBox(table["rictbox39"].ToString() + e.ProgressPercentage.ToString() + "%");
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("颗粒列表加载失败!\n");
+                return;
             }
+            try
+            {
+                if (m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt)//颗粒帧图列表
+                {
+                    double d1 = Convert.ToDouble(Serial / total) * 100.0;
+                    Serial++;
+                    richTextBox1.SelectionColor = Color.Black;
+                    richTextBox1.SelectionStart = 0; // 设置选择开始位置 
+                    richTextBox1.AppendText("加载:颗粒帧图列表……\n");
+                    richTextBox1.AppendText("加载:" + d1.ToString() + "%\n");
+                    DEVReport.XRPageBreak();
+                    DEVReport.set_kllb_data_frame();
+                }
+            }
+            catch
+            {
+                richTextBox1.SelectionColor = Color.Red;
+                richTextBox1.AppendText("颗粒帧图列表加载失败!\n");
+                return;
+            }
+            richTextBox1.SelectionColor = Color.Red;
+            richTextBox1.AppendText("-----------------加载完成!--------------------\n");
+          
         }
 
-        private void backgroundWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
-        {
-            WriteRictBox(table["rictbox41"].ToString() + m_export_reporttemplate.m_list_dt.Count.ToString() + table["rictbox42"].ToString(), Color.Red);
-
-            //处理结束后,再将button的状态更新回去
-            progressBar1.Value = 100;
-            WriteRictBox("-----------------"+ table["rictbox43"].ToString() + "--------------------", Color.Red);
-            MemoryManagementClass.FlushMemory();
-
-
-
-            //导出完成,打开报表
-            OpenOTSINcAreportTemplateAPP();
-            //m_ReportApp.m_conditionChoose.ShowsTheDefaultPic();
-
-            this.Close();
-        }
         #endregion
 
         #region 读取文件
@@ -1808,8 +1479,6 @@ namespace OTSIncAReportApp
                 m_mbszclass.M_KLLBXX.b_ck_kllb_ystx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_ystx"));    //原始图像
                 m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_fdtx"));    //放大图像
                 m_mbszclass.M_KLLBXX.b_ck_kllb_npxx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_npxx"));    //能谱图像
-
-              
                
                 m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_sort_p1"));//颗粒列表列中第一个可选参数
                 m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p1 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_sort_p1"));
@@ -1821,8 +1490,6 @@ namespace OTSIncAReportApp
                 m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p1 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_chartSort_p1"));
                 m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p2 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_chartSort_p2"));//帧图表列中第二个可选参数
                 m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p2 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_chartSort_p2"));
-                //m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p3 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_chartSort_p3"));//帧图表列中第三个可选参数
-                //m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p3 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_chartSort_p3"));
                 m_mbszclass.M_KLLBXX.list_int_kllb_number= Convert.ToInt32(xmlutil.Read("M_KLLBXX", "list_int_kllb_number"));//保存显示颗粒数量
 
                 m_mbszclass.M_KLLBXX.str_kllb_qcys = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_kllb_qcys"));
@@ -1864,48 +1531,16 @@ namespace OTSIncAReportApp
 
         private void button7_Click(object sender, EventArgs e)
         {
-
             OTSReport_criterion criterion = new OTSReport_criterion(m_export_reporttemplate, GB_Report,this);
             criterion.Sample_order = cbo_sjy.SelectedIndex;
             criterion.Language_dt = dev_internationalLanguage();
             criterion.ShowDialog();
-
         }
-
-      
        
         private void OTSReport_Export_FormClosed(object sender, FormClosedEventArgs e)
         {
            
         }
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            DEVReport = new OTS_DEVReport(this, m_mbszclass);
-            //DEVReport.Dispose();
-            //DEVReport = new OTS_DEVReport(this);
-
-            DEVReport.setResultGrid();
-            DEVReport.setParticleSizeTable(true,true,true);
-            DEVReport.setElementAvgGrid();
-            DEVReport.setINCAtable();
-            DEVReport.set_incaPIC_classify();
-            DEVReport.set_incaPIC_subdivision();
-
-            DEVReport.InsertReportTemplateChart_Trianglediagram();
-            DEVReport.set_kllb_data();
-
-
-            DEVReport.set_kllb_data_frame();
-            DEVReport.International_language(dev_internationalLanguage());
-
-
-            ReportPrintTool tool = new ReportPrintTool(DEVReport);
-            tool.ShowPreview();
-
-          
-        }
-
           /// <summary>
         /// 从数据库中读取语言配置信息
         /// </summary>
@@ -1917,11 +1552,7 @@ namespace OTSIncAReportApp
             DataTable dt_stl = sh.ExecuteQuery("select * from "+ Language);
             return dt_stl;
         }
-
-        private void button2_Click_1(object sender, EventArgs e)
-        {
-       
-        }
-    }
     
+    }
+
 }

+ 0 - 3
OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_Export.resx

@@ -117,9 +117,6 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="backgroundWorker2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>273, 19</value>
-  </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>

+ 5 - 24
OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_TemplateDesignerRM.cs

@@ -151,26 +151,6 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
                     selectnumber++;
             }
 
-            //if (cb_syxt_mhxssl.Text == "2")
-            //{
-            //    if (selectnumber % 2 != 0)
-            //    {
-            //        //选择的不是2的整倍数,请重新选择
-            //        MessageBox.Show(table["report10"].ToString(), table["report12"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
-            //        return false;
-            //    }
-            //}
-
-            //if (cb_syxt_mhxssl.Text == "3")
-            //{
-            //    if (selectnumber % 3 != 0)
-            //    {
-            //        //选择的不是2的整倍数,请重新选择
-            //        MessageBox.Show(table["report11"].ToString(), table["report12"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
-            //        return false;
-            //    }
-            //}
-
             return true;
         }
 
@@ -835,13 +815,14 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             ck_jzwzb_chart.Checked = m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_chart;//夹杂物占比图
 
             numericMin.Text = m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_int_kllb_number.ToString();
-            string str3 = System.IO.Directory.GetCurrentDirectory();
-            //Image bitmap = Image.FromFile(str3 + "\\Config\\ReportTemplate\\ReportIdentification.bmp");
 
-            //Image bitmap = LoadImageFromFile(str3 + "\\Config\\ReportTemplate\\ReportIdentification.bmp");
+            LoadingIcon();
+        }
+        private void  LoadingIcon()
+        {
+            string str3 = System.IO.Directory.GetCurrentDirectory();
             Bitmap decoupledImage = DecoupleImageFromFile(str3 + "\\Config\\ReportTemplate\\ReportIdentification.bmp");
             pictureBox7.Image = (Image)decoupledImage.Clone();
-
             decoupledImage.Dispose();
         }
         public static Bitmap DecoupleImageFromFile(string imagePath)

+ 1 - 0
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -578,6 +578,7 @@
       <DependentUpon>OTSReport_criterion.cs</DependentUpon>
     </Compile>
     <Compile Include="3-ServiceCenter\COffLineClassifyLogic.cs" />
+    <Compile Include="ReportTemplate\Export.cs" />
     <Compile Include="ReportTemplate\GBReport.cs">
       <SubType>Component</SubType>
     </Compile>

+ 3 - 1
OTSIncAReportApp/ReportTemplate/OTS_DEVReport.cs

@@ -241,6 +241,7 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
                 tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF;
                 tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[9].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");
@@ -254,8 +255,9 @@ namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
                 xrTa_ParticleSizeTable.Rows.Add(row);
 
             }
+            //10, 932.62
             xrTable3.Visible = true;
-            xrTable3.LocationF = new PointF(xrTa_ParticleSizeTable.LocationF.X, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
+            xrTable3.LocationF = new PointF(10f, 932.62f + xrTa_ParticleSizeTable.HeightF);
             DataTable surface_dt2 = export_ReportTemplate.ParticleResults(TemplateClass);
             List<int> vs = new List<int>();
             vs.Add(0);