OTSReport_Template_INCA.cs 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. using OTSIncAReportApp._1_UI.OTSTemplateDesigner;
  2. using OTSIncAReportApp.OTSSampleReportInfo;
  3. using OTSIncAReportApp.SysMgrTools;
  4. using OTSPeriodicTable;
  5. using OTSRptPeriodicTable;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Drawing;
  9. using System.Windows.Forms;
  10. namespace OTSIncAReportApp.OTSTemplateDesigner
  11. {
  12. public partial class OTSReport_Template_INCA : Form
  13. {
  14. #region 全局变量
  15. public OTSReport_Export m_OTSReport_Export;
  16. public string FileName = "";
  17. private string fileName = "";
  18. #endregion
  19. #region 构造函数及窗体加载
  20. public OTSReport_Template_INCA(OTSReport_Export in_otsreport_export,string a_FileName)
  21. {
  22. InitializeComponent();
  23. m_OTSReport_Export = in_otsreport_export;
  24. FileName = a_FileName;
  25. }
  26. private void OTSReport_TemplateDesignerRM_Load(object sender, EventArgs e)
  27. {
  28. //绑定各下拉框的值
  29. BindControl();
  30. //读取默认值
  31. LoadControls();
  32. }
  33. /// <summary>
  34. /// 为各下拉控件绑定值
  35. /// </summary>
  36. private void BindControl()
  37. {
  38. //选择颗粒范围
  39. cb_ParticleRange.Items.Add("全部颗粒");
  40. cb_ParticleRange.Items.Add("选择颗粒");
  41. #region 元素选择
  42. string[] PeriodicTable = { "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne", "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca", "Sc", "Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr", "Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn", "Sb", "Te", "I", "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", "Au", "Hq", "TI", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th", "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Mc", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt", "Ds", "Rg", "Unb" };
  43. //comboBox_PeriodicTable.Items.AddRange(PeriodicTable);
  44. AutoCompleteStringCollection sc = new AutoCompleteStringCollection();
  45. sc.AddRange(PeriodicTable);
  46. //this.comboBox_PeriodicTable.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
  47. //this.comboBox_PeriodicTable.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
  48. //this.comboBox_PeriodicTable.AutoCompleteCustomSource = sc;
  49. #endregion
  50. #region 颗粒尺寸分析结果
  51. BindComboBox(cb_klcc_jsfs, OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  52. BindComboBox(cb_klcc_ljb, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  53. #endregion
  54. #region 三元相图
  55. BindComboBox(cb_klcc_ljb, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  56. //三元相图模板s
  57. ComboBox lscb = new ComboBox();
  58. BindComboBox(lscb, OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
  59. for (int i = 0; i < lscb.Items.Count; i++)
  60. {
  61. lbv_syxt_mblb.Items.Add(lscb.Items[i].ToString());
  62. }
  63. #endregion
  64. #region 颗粒列表
  65. //排序方式
  66. BindComboBox(comboBox_p1, OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST);
  67. BindComboBox(comboBox_p2, OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST);
  68. BindComboBox(comboBox_p3, OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST);
  69. BindComboBox(cb_FrameChart_p1, OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST);
  70. BindComboBox(cb_FrameChart_p2, OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST);
  71. #endregion
  72. }
  73. /// <summary>
  74. /// 验证各控件输入的值
  75. /// </summary>
  76. private bool VerifyControlValue()
  77. {
  78. int selectnumber = 0;
  79. for (int i = 0; i < lbv_syxt_mblb.CheckedItems.Count; i++)
  80. {
  81. if (lbv_syxt_mblb.CheckedItems[i].Checked == true)
  82. selectnumber++;
  83. }
  84. return true;
  85. }
  86. #endregion
  87. #region 按键事件
  88. private void button2_Click(object sender, EventArgs e)
  89. {
  90. this.Close();
  91. }
  92. private void button1_Click(object sender, EventArgs e)
  93. {
  94. NewFileName newFileName = new NewFileName(Application.StartupPath + "\\Config\\ReportTemplate\\Inca_Template", FileName);
  95. newFileName.ShowDialog();
  96. string strpath = newFileName.ChangePathName;
  97. SaveTemplateParameters();
  98. SaveFileToXml(strpath);
  99. this.Close();
  100. }
  101. private void button4_Click(object sender, EventArgs e)
  102. {
  103. //元素分析表,显示元素
  104. SetPeriodicTableControl(tb_ysfx_xsys, m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys);
  105. }
  106. #endregion
  107. #region 自定义方法
  108. ///<summary>
  109. ///保存到文件
  110. /// </summary>
  111. private void SaveFileToXml(string a_path )
  112. {
  113. if (m_OTSReport_Export.m_mbszclass.M_SY.LOGName != fileName)
  114. {
  115. pictureBox7.Image.Save(System.IO.Directory.GetCurrentDirectory() + "\\Config\\ReportTemplate\\" + fileName);
  116. }
  117. string path = System.IO.Directory.GetCurrentDirectory() + "\\Config\\ReportTemplate\\Inca_Template\\" + a_path;
  118. if (path != string.Empty)
  119. {
  120. OTSIncAReportApp.Controls.XmlOperateUtil xmlutil = new OTSIncAReportApp.Controls.XmlOperateUtil(path);
  121. //首页
  122. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.str_tb_ZBT.ToString(), "M_SY", "str_tb_ZBT");
  123. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.str_tb_FBT.ToString(), "M_SY", "str_tb_FBT");
  124. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.str_tb_YPBH.ToString(), "M_SY", "str_tb_YPBH");
  125. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.str_tb_CKBZ.ToString(), "M_SY", "str_tb_CKBZ");
  126. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.b_ck_ypsm.ToString(), "M_SY", "b_ck_ypsm");
  127. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.int_xzkl.ToString(), "M_SY", "int_xzkl");
  128. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.LOGName.ToString(), "M_SY", "LOGName");
  129. //页眉页脚
  130. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YMYJ.str_tb_ymwb.ToString(), "M_YMYJ", "str_tb_ymwb");
  131. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YMYJ.str_tb_KHH.ToString(), "M_YMYJ", "str_tb_KHH");
  132. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YMYJ.b_ck_ym.ToString(), "M_YMYJ", "b_ck_ym");
  133. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YMYJ.str_tb_yjwb.ToString(), "M_YMYJ", "str_tb_yjwb");
  134. //颗粒分析结果
  135. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk.ToString(), "M_KLFXJG", "b_ck_klcc_xsmk");//是否显示模块
  136. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt.ToString(), "M_KLFXJG", "b_ck_klcc_xsddt");
  137. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs.ToString(), "M_KLFXJG", "index_cb_klcc_jsfs");//计算方式
  138. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_jsfs.ToString(), "M_KLFXJG", "str_cb_klcc_jsfs");//计算方式
  139. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_ljb.ToString(), "M_KLFXJG", "index_cb_klcc_ljb");//粒级表
  140. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_klfw.ToString(), "M_KLFXJG", "index_cb_klcc_klfw");//颗粒范围
  141. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk.ToString(), "M_KLFXJG", "b_cb_jzwfl_xsmk");//是否显示该模块
  142. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx.ToString(), "M_KLFXJG", "index_cb_jzwfl_xstx");//选择图像
  143. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs.ToString(), "M_KLFXJG", "index_cb_jzwfl_jsfs");//计算方式
  144. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb.ToString(), "M_KLFXJG", "index_cb_jzwfl_ljb");//粒级表
  145. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw.ToString(), "M_KLFXJG", "index_cb_jzwfl_klfw");//颗粒范围
  146. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_dfl.ToString(), "M_KLFXJG", "b_ck_klcc_dfl");//大分类是否显示
  147. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xfl.ToString(), "M_KLFXJG", "b_ck_klcc_xfl");//小分类是否显示
  148. //元素分析结果
  149. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk.ToString(), "M_YSFXJG", "b_ck_ysfx_xsmk"); //是否显示模块
  150. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs.ToString(), "M_YSFXJG", "index_cb_yxfx_jsfs"); //计算方式
  151. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw.ToString(), "M_YSFXJG", "index_cb_ysfx_klfw"); //颗粒范围
  152. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys.ToString(), "M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
  153. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Count; i++) //元素列表
  154. {
  155. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys[i].ToString(), "M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
  156. }
  157. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  158. for (int i = m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Count; i < 1000; i++)
  159. {
  160. string strxh = i.ToString();
  161. if (null != xmlutil.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + strxh))
  162. {
  163. //删除该节点
  164. xmlutil.RemoveNode("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + strxh);
  165. }
  166. else
  167. {
  168. break;
  169. }
  170. }
  171. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk.ToString(), "M_YSFXJG", "b_ck_yscf_xsmk"); //是否显示模块
  172. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.index_cb_yscf_xstx.ToString(), "M_YSFXJG", "index_cb_yscf_xstx"); //显示图形
  173. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs.ToString(), "M_YSFXJG", "index_cb_yscf_jsfs"); //计算方式
  174. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.index_cb_yscf_klfw.ToString(), "M_YSFXJG", "index_cb_yscf_klfw"); //颗粒范围
  175. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx.ToString(), "M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
  176. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Count; i++) //元素列表
  177. {
  178. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx[i].ToString(), "M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
  179. }
  180. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  181. for (int i = m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Count; i < 1000; i++)
  182. {
  183. string strxh = i.ToString();
  184. if (null != xmlutil.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + strxh))
  185. {
  186. //删除该节点
  187. xmlutil.RemoveNode("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + strxh);
  188. }
  189. else
  190. {
  191. break;
  192. }
  193. }
  194. //三元相图
  195. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.b_ck_syxt_xsmk.ToString(), "M_SYXT", "b_ck_syxt_xsmk"); //是否显示模块
  196. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.index_cb_syxt_jsfs.ToString(), "M_SYXT", "index_cb_syxt_jsfs"); //计算方式
  197. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.index_cb_syxt_klfw.ToString(), "M_SYXT", "index_cb_syxt_klfw"); //颗粒范围
  198. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.str_cb_syxt_mhxssl.ToString(), "M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
  199. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Count; i++) //三元相图模板 list 文本
  200. {
  201. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb[i].ToString(), "M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
  202. }
  203. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  204. for (int i = m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Count; i < 1000; i++)
  205. {
  206. string strxh = i.ToString();
  207. if (null != xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + strxh))
  208. {
  209. //删除该节点
  210. xmlutil.RemoveNode("M_SYXT", "list_lbv_syxt_mblb", "MB" + strxh);
  211. }
  212. else
  213. {
  214. break;
  215. }
  216. }
  217. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Count; i++) //三元相图模板 list 索引
  218. {
  219. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index[i].ToString(), "M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
  220. }
  221. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  222. for (int i = m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Count; i < 1000; i++)
  223. {
  224. string strxh = i.ToString();
  225. if (null != xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + strxh))
  226. {
  227. //删除该节点
  228. xmlutil.RemoveNode("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + strxh);
  229. }
  230. else
  231. {
  232. break;
  233. }
  234. }
  235. //颗粒列表信息
  236. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk.ToString(), "M_KLLBXX", "b_ck_kllb_xsmk"); //是否显示模块
  237. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt.ToString(), "M_KLLBXX", "b_ck_kllb_fjzt");//附加帧图
  238. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs.ToString(), "M_KLLBXX", "index_cb_kllb_jsfs"); //计算方式
  239. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_klfw.ToString(), "M_KLLBXX", "index_cb_kllb_klfw"); //颗粒范围
  240. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_tb_kllb_sxys.ToString(), "M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
  241. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Count; i++) //显示元素列表
  242. {
  243. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys[i].ToString(), "M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
  244. }
  245. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  246. for (int i = m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Count; i < 1000; i++)
  247. {
  248. string strxh = i.ToString();
  249. if (null != xmlutil.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + strxh))
  250. {
  251. //删除该节点
  252. xmlutil.RemoveNode("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + strxh);
  253. }
  254. else
  255. {
  256. break;
  257. }
  258. }
  259. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString(), "M_KLLBXX", "str_cb_kllb_sort_p1");//颗粒排序表列第一个可选参数(string)
  260. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p1.ToString(), "M_KLLBXX", "index_cb_kllb_sort_p1");//颗粒排序表列第一个可选参数(index)
  261. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p2.ToString(), "M_KLLBXX", "str_cb_kllb_sort_p2");//颗粒排序表列第二个可选参数(string)
  262. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p2.ToString(), "M_KLLBXX", "index_cb_kllb_sort_p2");//颗粒排序表列第二个可选参数(index)
  263. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p3.ToString(), "M_KLLBXX", "str_cb_kllb_sort_p3");//颗粒排序表列第三个可选参数(string)
  264. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p3.ToString(), "M_KLLBXX", "index_cb_kllb_sort_p3");//颗粒排序表列第三个可选参数(index)
  265. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p1.ToString(), "M_KLLBXX", "str_cb_kllb_chartSort_p1");//帧图表列第一个可选参数(string)
  266. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p1.ToString(), "M_KLLBXX", "index_cb_kllb_chartSort_p1");//帧图表列第一个可选参数(index)
  267. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p2.ToString(), "M_KLLBXX", "str_cb_kllb_chartSort_p2");//帧图表列第二个可选参数(string)
  268. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p2.ToString(), "M_KLLBXX", "index_cb_kllb_chartSort_p2");//帧图表列第二个可选参数(index)
  269. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_int_kllb_number.ToString(), "M_KLLBXX", "list_int_kllb_number");//保存显示颗粒数量
  270. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_qcys.ToString(), "M_KLLBXX", "str_kllb_qcys");
  271. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_qcys.Count; i++) //去除元素列表
  272. {
  273. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_qcys[i].ToString(), "M_KLLBXX", "list_str_kllb_qcys", "YS" + i.ToString());
  274. }
  275. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  276. for (int i = m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_qcys.Count; i < 1000; i++)
  277. {
  278. string strxh = i.ToString();
  279. if (null != xmlutil.Read("M_KLLBXX", "list_str_kllb_qcys", "YS" + strxh))
  280. {
  281. //删除该节点
  282. xmlutil.RemoveNode("M_KLLBXX", "list_str_kllb_qcys", "YS" + strxh);
  283. }
  284. else
  285. {
  286. break;
  287. }
  288. }
  289. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_DeleteClass.ToString(), "M_KLLBXX", "str_kllb_DeleteClass");
  290. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Count; i++) //去除元素列表
  291. {
  292. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass[i].ToString(), "M_KLLBXX", "list_str_kllb_DeleteClass", "YS" + i.ToString());
  293. }
  294. //然后判断一下xml中是否还存在之前比现有长度长的节点存在,存在则删除,防止后面再进行读取
  295. for (int i = m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Count; i < 1000; i++)
  296. {
  297. string strxh = i.ToString();
  298. if (null != xmlutil.Read("M_KLLBXX", "list_str_kllb_DeleteClass", "YS" + strxh))
  299. {
  300. //删除该节点
  301. xmlutil.RemoveNode("M_KLLBXX", "list_str_kllb_DeleteClass", "YS" + strxh);
  302. }
  303. else
  304. {
  305. break;
  306. }
  307. }
  308. //夹杂物占比
  309. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_surface.ToString(), "M_JZWZB", "b_ck_surface");//夹杂物占比表
  310. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_chart.ToString(), "M_JZWZB", "b_ck_chart");//夹杂物占比图
  311. xmlutil.Write(m_OTSReport_Export.m_mbszclass.str_MainPriority, "whole", "str_MainPriority");
  312. //优先排序
  313. xmlutil.Write(m_OTSReport_Export.m_mbszclass.list_str_MainPriority.ToString(), "whole", "list_str_MainPriority");//全局优先排序
  314. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.list_str_MainPriority.Count; i++) //去除元素列表
  315. {
  316. xmlutil.Write(m_OTSReport_Export.m_mbszclass.list_str_MainPriority[i].ToString(), "whole", "list_str_MainPriority", "YS" + i.ToString());
  317. }
  318. xmlutil.Write(m_OTSReport_Export.m_mbszclass.str_SecondaryPriority, "whole", "str_SecondaryPriority");
  319. //次要排序
  320. xmlutil.Write(m_OTSReport_Export.m_mbszclass.list_str_SecondaryPriority.ToString(), "whole", "list_str_SecondaryPriority");//全局次要排序
  321. for (int i = 0; i < m_OTSReport_Export.m_mbszclass.list_str_SecondaryPriority.Count; i++) //去除元素列表
  322. {
  323. xmlutil.Write(m_OTSReport_Export.m_mbszclass.list_str_SecondaryPriority[i].ToString(), "whole", "list_str_SecondaryPriority", "YS" + i.ToString());
  324. }
  325. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_ljb, "M_KLFXJG", "str_cb_klcc_ljb");
  326. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SYXT.str_cb_syxt_ljb, "M_SYXT", "str_cb_syxt_ljb");
  327. //选择颗粒范围(全部颗粒,选择颗粒)
  328. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.str_xzkl.ToString(), "M_SY", "str_xzkl");
  329. xmlutil.Write(m_OTSReport_Export.m_mbszclass.M_SY.int_xzkl.ToString(), "M_SY", "int_xzkl");
  330. }
  331. }
  332. private void SaveTemplateParameters()
  333. {
  334. string[] after = tb_ysfx_xsys.Text.Split(new char[] { ',' });
  335. m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
  336. for (int i = 0; i < after.Length; i++)
  337. {
  338. m_OTSReport_Export.m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(after[i]);
  339. }
  340. //拆分,物质分类
  341. m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Clear();
  342. for (int i = 0; i < delete_Class.Text.Split(',').Length; i++)
  343. {
  344. if (delete_Class.Text.Split(',')[i] != "")
  345. m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Add(delete_Class.Text.Split(',')[i]);
  346. }
  347. //主要优先显示
  348. m_OTSReport_Export.m_mbszclass.list_str_MainPriority.Clear();
  349. string[] MainPriority = textBox_zypxss.Text.Split(new char[] { ',' });
  350. for (int i = 0; i < MainPriority.Length; i++)
  351. {
  352. if (textBox_zypxss.Text.Split(',')[i] != "")
  353. m_OTSReport_Export.m_mbszclass.list_str_MainPriority.Add(MainPriority[i]);
  354. }
  355. //次要优先显示
  356. m_OTSReport_Export.m_mbszclass.list_str_SecondaryPriority.Clear();
  357. string[] SecondaryPriority = textBox_cypxss.Text.Split(new char[] { ',' });
  358. for (int i = 0; i < SecondaryPriority.Length; i++)
  359. {
  360. if (textBox_cypxss.Text.Split(',')[i] != "")
  361. m_OTSReport_Export.m_mbszclass.list_str_SecondaryPriority.Add(SecondaryPriority[i]);
  362. }
  363. m_OTSReport_Export.m_mbszclass.M_SY.LOGName = fileName;
  364. //首页
  365. m_OTSReport_Export.m_mbszclass.M_SY.str_tb_ZBT = tb_ZBT.Text;
  366. m_OTSReport_Export.m_mbszclass.M_SY.str_tb_FBT = tb_FBT.Text;
  367. m_OTSReport_Export.m_mbszclass.M_SY.str_tb_YPBH = tb_YPBH.Text;
  368. m_OTSReport_Export.m_mbszclass.M_SY.str_tb_CKBZ = tb_CKBZ.Text;
  369. m_OTSReport_Export.m_mbszclass.M_YMYJ.str_tb_yjwb = tb_yjwb.Text;
  370. //颗粒分析结果
  371. m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = ck_klcc_xsmk.Checked;
  372. m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt = false;
  373. //是否显示大分类
  374. m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_dfl = checkBox1.Checked;
  375. //是否显示小分类
  376. m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xfl = checkBox2.Checked;
  377. m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_jsfs = cb_klcc_jsfs.Text;//计算方式
  378. m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = cb_klcc_jsfs.SelectedIndex;
  379. m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_ljb = cb_klcc_ljb.Text;//粒级表
  380. m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = cb_klcc_ljb.SelectedIndex;
  381. // 元素分析结果
  382. m_OTSReport_Export.m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = ck_ysfx_xsmk.Checked;
  383. m_OTSReport_Export.m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = tb_ysfx_xsys.Text;//显示元素
  384. //三元相图
  385. m_OTSReport_Export.m_mbszclass.M_SYXT.b_ck_syxt_xsmk = ck_syxt_xsmk.Checked;
  386. m_OTSReport_Export.m_mbszclass.M_SYXT.str_cb_syxt_ljb = cb_klcc_ljb.Text;//粒级表
  387. m_OTSReport_Export.m_mbszclass.M_SYXT.index_cb_syxt_ljb = cb_klcc_ljb.SelectedIndex;
  388. //获取勾选的项
  389. m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
  390. m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
  391. for (int i = 0; i < lbv_syxt_mblb.CheckedItems.Count; i++)
  392. {
  393. string str = lbv_syxt_mblb.CheckedItems[i].Text;
  394. m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
  395. //同时保存三元素相图的索引
  396. for (int j = 0; j < lbv_syxt_mblb.Items.Count; j++)
  397. {
  398. if (str == lbv_syxt_mblb.Items[j].Text)
  399. m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(j);
  400. }
  401. }
  402. //颗粒列表信息
  403. m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = ck_kllb_xsmk.Checked;
  404. m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt = ck_kllb_fjzt.Checked;
  405. m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_int_kllb_number = Convert.ToInt32(numericMin.Text);
  406. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1 = comboBox_p1.Text;//颗粒列表行第一个字段的可选参数
  407. m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p1 = comboBox_p1.SelectedIndex;
  408. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p2 = comboBox_p2.Text;//颗粒列表行第二个字段的可选参数
  409. m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p2 = comboBox_p2.SelectedIndex;
  410. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p3 = comboBox_p3.Text;//颗粒列表行第三个字段的可选参数
  411. m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p3 = comboBox_p3.SelectedIndex;
  412. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p1 = cb_FrameChart_p1.Text;//颗粒帧图表行第一个字段的可选参数
  413. m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p1 = cb_FrameChart_p1.SelectedIndex;
  414. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p2 = cb_FrameChart_p2.Text;//颗粒帧图表行第二个字段的可选参数
  415. m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p2 = cb_FrameChart_p2.SelectedIndex;
  416. //夹杂物占比
  417. m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_surface = ck_jzwzb_surface.Checked;//夹杂物占比表
  418. //m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_chart = ck_jzwzb_chart.Checked;//夹杂物占比图
  419. //去除信息
  420. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_qcys = tb_RemoveElements.Text;//去除不要的物质元素
  421. m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_DeleteClass = delete_Class.Text;//去除不要的物质分类
  422. m_OTSReport_Export.m_mbszclass.str_MainPriority = textBox_zypxss.Text;//主要排序
  423. m_OTSReport_Export.m_mbszclass.str_SecondaryPriority = textBox_cypxss.Text;//次要排序显示
  424. //选择颗粒导出范围
  425. m_OTSReport_Export.m_mbszclass.M_SY.str_xzkl = cb_ParticleRange.Text;//颗粒范围内容
  426. m_OTSReport_Export.m_mbszclass.M_SY.int_xzkl = cb_ParticleRange.SelectedIndex;//颗粒范围索引
  427. m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_ljb = cb_klcc_ljb.Text;
  428. }
  429. private void LoadControls()
  430. {
  431. cb_ParticleRange.Text = m_OTSReport_Export.m_mbszclass.M_SY.str_xzkl;
  432. //首页
  433. tb_ZBT.Text = m_OTSReport_Export.m_mbszclass.M_SY.str_tb_ZBT;
  434. tb_FBT.Text = m_OTSReport_Export.m_mbszclass.M_SY.str_tb_FBT;
  435. tb_YPBH.Text = m_OTSReport_Export.m_mbszclass.M_SY.str_tb_YPBH;
  436. tb_CKBZ.Text = m_OTSReport_Export.m_mbszclass.M_SY.str_tb_CKBZ;
  437. ck_ypsm.Checked = m_OTSReport_Export.m_mbszclass.M_SY.b_ck_ypsm;
  438. ck_ym.Checked = m_OTSReport_Export.m_mbszclass.M_YMYJ.b_ck_ym;
  439. tb_yjwb.Text = m_OTSReport_Export.m_mbszclass.M_YMYJ.str_tb_yjwb;
  440. //颗粒分析结果
  441. ck_klcc_xsmk.Checked = m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk;
  442. cb_klcc_jsfs.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs;
  443. cb_klcc_ljb.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLFXJG.index_cb_klcc_ljb;
  444. //是否显示大分类
  445. checkBox1.Checked = m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_dfl;
  446. //是否显示小分类
  447. checkBox2.Checked = m_OTSReport_Export.m_mbszclass.M_KLFXJG.b_ck_klcc_xfl;
  448. //元素分析结果
  449. ck_ysfx_xsmk.Checked = m_OTSReport_Export.m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk;
  450. tb_ysfx_xsys.Text = m_OTSReport_Export.m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys;//显示元素
  451. //三元相图
  452. ck_syxt_xsmk.Checked = m_OTSReport_Export.m_mbszclass.M_SYXT.b_ck_syxt_xsmk;
  453. cb_klcc_ljb.Text = m_OTSReport_Export.m_mbszclass.M_SYXT.str_cb_syxt_ljb;
  454. cb_klcc_ljb.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_SYXT.index_cb_syxt_ljb;//粒级表
  455. //获取勾选的项
  456. for (int i = 0; i < lbv_syxt_mblb.Items.Count; i++)
  457. {
  458. for (int j = 0; j < m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Count; j++)
  459. {
  460. if (lbv_syxt_mblb.Items[i].Text == m_OTSReport_Export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb[j])
  461. {
  462. //匹配到了
  463. lbv_syxt_mblb.Items[i].Checked = true;
  464. }
  465. }
  466. }
  467. //颗粒列表信息
  468. ck_kllb_xsmk.Checked = m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk;
  469. ck_kllb_fjzt.Checked = m_OTSReport_Export.m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt;
  470. tb_RemoveElements.Text = m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_qcys;
  471. numericMin.Value = Convert.ToInt32(m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_int_kllb_number);
  472. comboBox_p1.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p1;
  473. comboBox_p2.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p2;
  474. comboBox_p3.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p3;
  475. cb_FrameChart_p1.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p1;
  476. cb_FrameChart_p2.SelectedIndex = m_OTSReport_Export.m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p2;
  477. delete_Class.Text = m_OTSReport_Export.m_mbszclass.M_KLLBXX.str_kllb_DeleteClass;
  478. textBox_zypxss.Text = m_OTSReport_Export.m_mbszclass.str_MainPriority;
  479. textBox_cypxss.Text = m_OTSReport_Export.m_mbszclass.str_SecondaryPriority;
  480. cb_klcc_ljb.Text = m_OTSReport_Export.m_mbszclass.M_KLFXJG.str_cb_klcc_ljb;
  481. //夹杂物占比
  482. ck_jzwzb_surface.Checked = m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_surface;//夹杂物占比表
  483. //ck_jzwzb_chart.Checked = m_OTSReport_Export.m_mbszclass.M_JZWZB.b_ck_chart;//夹杂物占比图
  484. numericMin.Text = m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_int_kllb_number.ToString();
  485. LoadingIcon();
  486. }
  487. private void LoadingIcon()
  488. {
  489. string route = System.IO.Directory.GetCurrentDirectory() + "\\Config\\ReportTemplate\\"+ m_OTSReport_Export.m_mbszclass.M_SY.LOGName;
  490. int lastIndex = route.LastIndexOf('/');
  491. int lastIndexs = route.LastIndexOf('\\');
  492. if (lastIndex != -1)
  493. {
  494. fileName = route.Substring(lastIndex + 1);
  495. }
  496. else if (lastIndexs != -1)
  497. {
  498. fileName = route.Substring(lastIndexs + 1);
  499. }
  500. Bitmap decoupledImage = DecoupleImageFromFile(route);
  501. pictureBox7.Image = (Image)decoupledImage.Clone();
  502. decoupledImage.Dispose();
  503. }
  504. public static Bitmap DecoupleImageFromFile(string imagePath)
  505. {
  506. Bitmap decoupledImage = null;
  507. try
  508. {
  509. // 从文件路径加载图片
  510. using (Image originalImage = Image.FromFile(imagePath))
  511. {
  512. // 创建一个新的Bitmap对象作为副本
  513. decoupledImage = new Bitmap(originalImage);
  514. }
  515. }
  516. catch (Exception ex)
  517. {
  518. // 处理加载图片时可能出现的异常
  519. Console.WriteLine("Error loading image: " + ex.Message);
  520. }
  521. // 返回副本图片,此时原始图片文件已经被断开
  522. return decoupledImage;
  523. }
  524. /// <summary>
  525. ///绑定下拉框,指定绑定的位置
  526. /// </summary>
  527. private void BindComboBox(ComboBox cbo, OTS_REPORT_PROP_GRID_ITEMS in_enum)
  528. {
  529. cbo.Items.Clear();
  530. List<string> list_str = new List<string>();
  531. switch (in_enum)
  532. {
  533. case OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE://计算方式
  534. list_str = m_OTSReport_Export.m_ReportApp.m_rstDataMgr.GetSizeCalMethodTypeList();
  535. break;
  536. case OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE://粒级表
  537. list_str = m_OTSReport_Export.m_ReportApp.m_rstDataMgr.GetPartSizeFileList();
  538. break;
  539. case OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE://数据类型,全部颗粒,分析颗粒
  540. list_str = m_OTSReport_Export.m_ReportApp.m_rstDataMgr.ParticleRange();
  541. break;
  542. case OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE://三元相图模板
  543. list_str = m_OTSReport_Export.m_ReportApp.m_rstDataMgr.GetTriTemplateNameList();
  544. break;
  545. case OTS_REPORT_PROP_GRID_ITEMS.PARTICE_LIST:
  546. list_str = m_OTSReport_Export.m_ReportApp.m_rstDataMgr.getTableData_INCA();
  547. break;
  548. }
  549. for (int i = 0; i < list_str.Count; i++)
  550. {
  551. cbo.Items.Add(list_str[i]);
  552. }
  553. if (cbo.Items.Count > 0)
  554. cbo.SelectedIndex = 0;
  555. }
  556. /// <summary>
  557. /// 对选择的元素进行显示及选择的封装方法
  558. /// </summary>
  559. /// <param name="in_tb"></param>
  560. private void SetPeriodicTableControl(TextBox in_tb, List<string> in_list_str)
  561. {
  562. in_list_str.Clear();
  563. //打开编辑元素列表窗体
  564. OTSPeriodicTable.OTSPeriodicTableForm_Small opts = new OTSPeriodicTable.OTSPeriodicTableForm_Small();
  565. //获取需要显示的元素列表,并转换成元素周期表窗体可接受的格式,传入----------------------
  566. string str_xsys = in_tb.Text.Trim();
  567. List<string> list_str = new List<string>();
  568. string[] strs = str_xsys.Split(',');
  569. for (int i = 0; i < strs.Length; i++)
  570. {
  571. list_str.Add(strs[i]);
  572. }
  573. //清除元素周期表中所有的记录
  574. opts.m_List_Periodic.Clear();
  575. //将该分类下的元素添加到元素周期表窗体的List_periodic中
  576. for (int i = 0; i < strs.Length; i++)
  577. {
  578. string str_ysm = strs[i];
  579. Periodic ls_periodic = new Periodic();
  580. ls_periodic = CListPeriodic.GetPeriodicByEleName( str_ysm);
  581. opts.m_List_Periodic.Add(ls_periodic);
  582. }
  583. //----------------------------------------------------------------------------------------
  584. opts.ShowDialog();
  585. //先清空元素
  586. str_xsys = "";
  587. //然后再将选择的元素,组合起来,返回显示到该窗体上
  588. if (opts.m_List_Periodic.Count > 0)
  589. {
  590. for (int i = 0; i < opts.m_List_Periodic.Count; i++)
  591. {
  592. if (str_xsys == "")
  593. {
  594. str_xsys = opts.m_List_Periodic[i].Symbol;
  595. }
  596. else
  597. {
  598. str_xsys = str_xsys + "," + opts.m_List_Periodic[i].Symbol;
  599. }
  600. //同时将元素保存到字符串列表中
  601. in_list_str.Add(opts.m_List_Periodic[i].Symbol);
  602. }
  603. }
  604. //再对选择的元素进行显示
  605. in_tb.Text = str_xsys;
  606. }
  607. #endregion
  608. #region 相关控件事件
  609. private void button6_Click(object sender, EventArgs e)
  610. {
  611. if (VerifyControlValue() == false)
  612. return;
  613. SaveTemplateParameters();
  614. //保存到上次路径文件
  615. SaveFileToXml(m_OTSReport_Export.m_mbszclass.M_DZ.route);
  616. this.Close();
  617. }
  618. #endregion
  619. private void comboBox_PeriodicTable_SelectedIndexChanged(object sender, EventArgs e)
  620. {
  621. //if (comboBox_PeriodicTable.Text != null && comboBox_PeriodicTable.SelectedItem != null)
  622. //{
  623. // string newStr = comboBox_PeriodicTable.SelectedItem.ToString();
  624. // string[] after = tb_ysfx_xsys.Text.Split(new char[] { ',' });
  625. // for (int i=0;i< after.Length;i++)
  626. // {
  627. // if (after[i] == newStr)
  628. // {
  629. // MessageBox.Show("Element already exists!");
  630. // return;
  631. // }
  632. // }
  633. // if (tb_ysfx_xsys.Text == "")
  634. // tb_ysfx_xsys.Text = tb_ysfx_xsys.Text + newStr;
  635. // else if (tb_ysfx_xsys.Text.Substring(tb_ysfx_xsys.Text.Length - 1) != ",")
  636. // tb_ysfx_xsys.Text = tb_ysfx_xsys.Text + "," + newStr;
  637. // else
  638. // tb_ysfx_xsys.Text = tb_ysfx_xsys.Text + newStr;
  639. // comboBox_PeriodicTable.Text = null;
  640. //}
  641. }
  642. private void comboBox_PeriodicTable_KeyDown(object sender, KeyEventArgs e)
  643. {
  644. }
  645. private void button3_Click_1(object sender, EventArgs e)
  646. {
  647. string str = "";
  648. string[] after = tb_ysfx_xsys.Text.Split(new char[] { ',' });
  649. for (int i=0;i< after.Length-1;i++)
  650. {
  651. if (i == after.Length - 2)
  652. str = str + after[i];
  653. else
  654. str = str + after[i] + ",";
  655. }
  656. tb_ysfx_xsys.Text = str;
  657. }
  658. private void ck_jzwzb_surface_CheckedChanged(object sender, EventArgs e)
  659. {
  660. }
  661. private void button5_Click(object sender, EventArgs e)
  662. {
  663. SetPeriodicTableControl(tb_RemoveElements, m_OTSReport_Export.m_mbszclass.M_KLLBXX.list_str_kllb_qcys);
  664. }
  665. private void button1217_Click(object sender, EventArgs e)
  666. {
  667. // 打开文件对话框以选择图片文件
  668. using (OpenFileDialog openFileDialog = new OpenFileDialog())
  669. {
  670. openFileDialog.Filter = "Image Files|*.jpg;*.jpeg;*.png;*.bmp;*.gif";
  671. if (openFileDialog.ShowDialog() == DialogResult.OK)
  672. {
  673. // 获取选中的文件路径
  674. try
  675. {
  676. string filePath = openFileDialog.FileName;
  677. int lastIndex = filePath.LastIndexOf('/');
  678. int lastIndexs = filePath.LastIndexOf('\\');
  679. if (lastIndex != -1)
  680. {
  681. fileName = filePath.Substring(lastIndex + 1);
  682. }
  683. else if (lastIndexs != -1)
  684. {
  685. fileName = filePath.Substring(lastIndexs + 1);
  686. }
  687. Bitmap bitmap = (Bitmap)Image.FromFile(filePath).Clone();
  688. pictureBox7.Image.Dispose();
  689. pictureBox7.Image = (Image)bitmap.Clone();
  690. }
  691. catch
  692. {
  693. MessageBox.Show("图片已被打开,请关闭改图片!");
  694. }
  695. }
  696. }
  697. }
  698. private void ck_kllb_fjzt_CheckedChanged(object sender, EventArgs e)
  699. {
  700. if (!ck_kllb_xsmk.Checked)
  701. {
  702. ck_kllb_fjzt.Checked = false;
  703. }
  704. }
  705. private void ck_kllb_xsmk_CheckedChanged(object sender, EventArgs e)
  706. {
  707. if(!ck_kllb_xsmk.Checked)
  708. {
  709. ck_kllb_fjzt.Checked = false;
  710. }
  711. }
  712. private void ck_klcc_xsmk_CheckedChanged(object sender, EventArgs e)
  713. {
  714. if(!ck_klcc_xsmk.Checked)
  715. {
  716. checkBox1.Checked = false;
  717. checkBox2.Checked = false;
  718. }
  719. }
  720. private void checkBox1_CheckedChanged(object sender, EventArgs e)
  721. {
  722. if (!ck_klcc_xsmk.Checked)
  723. {
  724. checkBox1.Checked = false;
  725. checkBox2.Checked = false;
  726. }
  727. }
  728. private void checkBox2_CheckedChanged(object sender, EventArgs e)
  729. {
  730. if (!ck_klcc_xsmk.Checked)
  731. {
  732. checkBox1.Checked = false;
  733. checkBox2.Checked = false;
  734. }
  735. }
  736. }
  737. }