|
@@ -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)
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
}
|