OTSReport_Export.cs 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259
  1. using OTSIncAReportApp.Controls;
  2. using OTSCommon.Model;
  3. using OTSIncAReportApp.OTSTemplateDesigner;
  4. using OTSIncAReportApp.SysMgrTools;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.IO;
  10. using System.Windows.Forms;
  11. using OTSIncAReportApp._1_UI.OTSTemplateDesigner;
  12. using DevExpress.XtraReports.UI;
  13. using OTSIncAReportApp.ReportTemplate;
  14. namespace OTSIncAReportApp
  15. {
  16. public partial class OTSReport_Export : Form
  17. {
  18. #region 全局变量
  19. System.Collections.Hashtable table;
  20. public frmReportApp m_ReportApp = null; //报告项目总进程对象
  21. public string m_export_type = "Excel"; //导出文件的格式类型Excel,Word,Pdf
  22. GBData m_export_reporttemplate;
  23. private string SummaryInfoPath = "./Config/ReportTemplate/SummaryInfo.xml";
  24. private XmlOperateUtil SummaryInfoXmluti;
  25. private string fileName = "";
  26. public c_TemplateClass m_mbszclass = null;
  27. OTS_DEVReport DEVReport;
  28. GBReport GB_Report;
  29. #endregion
  30. #region 模板设置类
  31. /// <summary>
  32. /// 模板设置类
  33. /// </summary>
  34. public class c_TemplateClass
  35. {
  36. /// <summary>
  37. /// 配置文件路径
  38. /// </summary>
  39. public DZ M_DZ { get; set; }
  40. #region 属性
  41. /// <summary>
  42. /// 首页
  43. /// </summary>
  44. public SY M_SY { get; set; }
  45. /// <summary>
  46. /// 页眉页脚
  47. /// </summary>
  48. public YMYJ M_YMYJ { get; set; }
  49. /// <summary>
  50. /// 颗粒分析结果
  51. /// </summary>
  52. public KLFXJG M_KLFXJG { get; set; }
  53. /// <summary>
  54. /// 元素分析结果
  55. /// </summary>
  56. public YSFXJG M_YSFXJG { get; set; }
  57. /// <summary>
  58. /// 三元相图
  59. /// </summary>
  60. public SYXT M_SYXT { get; set; }
  61. /// <summary>
  62. /// 颗粒列表信息
  63. /// </summary>
  64. public KLLBXX M_KLLBXX { get; set; }
  65. /// <summary>
  66. /// 夹杂物占比
  67. /// </summary>
  68. public JZWZB M_JZWZB { get; set; }
  69. /// <summary>
  70. /// 主要优先排序string
  71. /// </summary>
  72. public string str_MainPriority { get; set; }
  73. /// <summary>
  74. /// 主要优先排序
  75. /// </summary>
  76. public List<string> list_str_MainPriority { get; set; }
  77. /// <summary>
  78. /// 次要优先排序string
  79. /// </summary>
  80. public string str_SecondaryPriority { get; set; }
  81. /// <summary>
  82. /// 次要优先排序
  83. /// </summary>
  84. public List<string> list_str_SecondaryPriority { get; set; }
  85. #endregion
  86. #region 构造函数
  87. public c_TemplateClass()
  88. {
  89. M_SY = new SY();
  90. M_YMYJ = new YMYJ();
  91. M_KLFXJG = new KLFXJG();
  92. M_YSFXJG = new YSFXJG();
  93. M_YSFXJG.list_str_tb_yscf_ysxx = new List<string>();
  94. M_YSFXJG.list_str_tb_ysfx_xsys = new List<string>();
  95. M_SYXT = new SYXT();
  96. M_SYXT.list_lbv_syxt_mblb = new List<string>();
  97. M_SYXT.list_lbv_syxt_mblb_index = new List<int>();
  98. M_KLLBXX = new KLLBXX();
  99. M_JZWZB = new JZWZB();
  100. M_KLLBXX.list_str_tb_lllb_sxys = new List<string>();
  101. M_KLLBXX.list_str_kllb_qcys = new List<string>();
  102. M_KLLBXX.list_str_kllb_DeleteClass = new List<string>();
  103. M_DZ = new DZ();
  104. list_str_MainPriority = new List<string>();
  105. list_str_SecondaryPriority = new List<string>();
  106. str_MainPriority = "";
  107. str_SecondaryPriority = "";
  108. }
  109. #endregion
  110. public class DZ
  111. {
  112. public string route { get; set; }
  113. }
  114. #region 首页部份
  115. public class SY
  116. {
  117. public string LOGName { get; set; }
  118. /// <summary>
  119. /// 主标题
  120. /// </summary>
  121. public string str_tb_ZBT { get; set; }
  122. /// <summary>
  123. /// 副标题
  124. /// </summary>
  125. public string str_tb_FBT { get; set; }
  126. /// <summary>
  127. /// 样品编号
  128. /// </summary>
  129. public string str_tb_YPBH { get; set; }
  130. /// <summary>
  131. /// 参考标准
  132. /// </summary>
  133. public string str_tb_CKBZ { get; set; }
  134. /// <summary>
  135. /// 是否显示样品说明
  136. /// </summary>
  137. public bool b_ck_ypsm { get; set; }
  138. /// <summary>
  139. /// 选择颗粒导出范围_内容
  140. /// </summary>
  141. public string str_xzkl { get; set; }
  142. /// <summary>
  143. /// 选择颗粒导出范围,索引
  144. /// </summary>
  145. public int int_xzkl { get; set; }
  146. }
  147. #endregion
  148. #region 页眉页脚部份
  149. public class YMYJ
  150. {
  151. /// <summary>
  152. /// 页眉文本
  153. /// </summary>
  154. public string str_tb_ymwb { get; set; }
  155. /// <summary>
  156. /// 客户号
  157. /// </summary>
  158. public string str_tb_KHH { get; set; }
  159. /// <summary>
  160. /// 是否显示页码
  161. /// </summary>
  162. public bool b_ck_ym { get; set; }
  163. /// <summary>
  164. /// 页脚文本
  165. /// </summary>
  166. public string str_tb_yjwb { get; set; }
  167. }
  168. #endregion
  169. #region 颗粒分析结果部份
  170. public class KLFXJG
  171. {
  172. /// <summary>
  173. /// 大分类是否显示
  174. /// </summary>
  175. public bool b_ck_klcc_dfl { get; set; }
  176. /// <summary>
  177. /// 小分类是否显示
  178. /// </summary>
  179. public bool b_ck_klcc_xfl { get; set; }
  180. /// <summary>
  181. /// 是否显示颗粒尺寸分析结果表
  182. /// </summary>
  183. public bool b_ck_klcc_xsmk { get; set; }
  184. /// <summary>
  185. /// 是否显示颗粒尺寸 堆叠图
  186. /// </summary>
  187. public bool b_ck_klcc_xsddt { get; set; }
  188. /// <summary>
  189. ///颗粒尺寸分析结果表 计算方式文本
  190. /// </summary>
  191. public string str_cb_klcc_jsfs { get; set; }
  192. /// <summary>
  193. ///颗粒尺寸分析结果表 计算方式索引
  194. /// </summary>
  195. public int index_cb_klcc_jsfs { get; set; }
  196. /// <summary>
  197. ///颗粒尺寸分析结果表 粒级表文本
  198. /// </summary>
  199. public string str_cb_klcc_ljb { get; set; }
  200. /// <summary>
  201. ///颗粒尺寸分析结果表 粒级表索引
  202. /// </summary>
  203. public int index_cb_klcc_ljb { get; set; }
  204. /// <summary>
  205. ///颗粒尺寸分析结果表 颗粒选择范围索引
  206. /// </summary>
  207. public int index_cb_klcc_klfw { get; set; }
  208. /// <summary>
  209. /// 夹杂物分类图 是否显示该模块
  210. /// </summary>
  211. public bool b_cb_jzwfl_xsmk { get; set; }
  212. /// <summary>
  213. ///夹杂物分类图 显示图形 选择索引
  214. /// </summary>
  215. public int index_cb_jzwfl_xstx { get; set; }
  216. /// <summary>
  217. ///夹杂物分类图 计算方式 选择索引
  218. /// </summary>
  219. public int index_cb_jzwfl_jsfs { get; set; }
  220. /// <summary>
  221. ///夹杂物分类图 粒级表 选择索引
  222. /// </summary>
  223. public int index_cb_jzwfl_ljb { get; set; }
  224. /// <summary>
  225. ///夹杂物分类图 颗粒范围 选择索引
  226. /// </summary>
  227. public int index_cb_jzwfl_klfw { get; set; }
  228. }
  229. #endregion
  230. #region 元素分析结果部份
  231. public class YSFXJG
  232. {
  233. /// <summary>
  234. /// 元素分析表 是否显示该模块
  235. /// </summary>
  236. public bool b_ck_ysfx_xsmk { get; set; }
  237. /// <summary>
  238. /// 元素分析表 计算方式 选择索引
  239. /// </summary>
  240. public int index_cb_yxfx_jsfs { get; set; }
  241. /// <summary>
  242. /// 元素分析表 颗粒范围 选择索引
  243. /// </summary>
  244. public int index_cb_ysfx_klfw { get; set; }
  245. /// <summary>
  246. /// 元素分析表 显示元素显示文本
  247. /// </summary>
  248. public string str_tb_ysfx_xsys { get; set; }
  249. /// <summary>
  250. /// 元素分析表 显示元素拆分元素列表
  251. /// </summary>
  252. public List<string> list_str_tb_ysfx_xsys { get; set; }
  253. /// <summary>
  254. /// 元素成份图 是否显示该模块
  255. /// </summary>
  256. public bool b_ck_yscf_xsmk { get; set; }
  257. /// <summary>
  258. /// 元素成份图 显示图形 索引
  259. /// </summary>
  260. public int index_cb_yscf_xstx { get; set; }
  261. /// <summary>
  262. /// 元素成份图 计算方式 索引
  263. /// </summary>
  264. public int index_cb_yscf_jsfs { get; set; }
  265. /// <summary>
  266. /// 元素成份图 颗粒范围 索引
  267. /// </summary>
  268. public int index_cb_yscf_klfw { get; set; }
  269. /// <summary>
  270. /// 元素成份图 元素信息
  271. /// </summary>
  272. public string str_tb_yscf_ysxx { get; set; }
  273. /// <summary>
  274. /// 元素成份图 元素信息列表拆分字符列表
  275. /// </summary>
  276. public List<string> list_str_tb_yscf_ysxx { get; set; }
  277. }
  278. #endregion
  279. #region 三元相图部份
  280. public class SYXT
  281. {
  282. /// <summary>
  283. /// 三元相图 是否显示该模块
  284. /// </summary>
  285. public bool b_ck_syxt_xsmk { get; set; }
  286. /// <summary>
  287. /// 计算方式 索引
  288. /// </summary>
  289. public int index_cb_syxt_jsfs { get; set; }
  290. /// <summary>
  291. /// 颗粒范围 索引
  292. /// </summary>
  293. public int index_cb_syxt_klfw { get; set; }
  294. /// <summary>
  295. /// 粒级表信息 文本
  296. /// </summary>
  297. public string str_cb_syxt_ljb { get; set; }
  298. /// <summary>
  299. /// 粒级表信息 索引
  300. /// </summary>
  301. public int index_cb_syxt_ljb { get; set; }
  302. /// <summary>
  303. /// 每行显示数量 文本
  304. /// </summary>
  305. public string str_cb_syxt_mhxssl { get; set; }
  306. /// <summary>
  307. /// 三元相图模板集合列表
  308. /// </summary>
  309. public List<string> list_lbv_syxt_mblb { get; set; }
  310. /// <summary>
  311. /// 三元相图模板索引集合列表
  312. /// </summary>
  313. public List<int> list_lbv_syxt_mblb_index { get; set; }
  314. }
  315. #endregion
  316. #region 颗粒列表信息部份
  317. public class KLLBXX
  318. {
  319. /// <summary>
  320. /// 颗粒列表 是否显示该模块
  321. /// </summary>
  322. public bool b_ck_kllb_xsmk { get; set; }
  323. /// <summary>
  324. /// 颗粒列表 是否显示附加帧图模块
  325. /// </summary>
  326. public bool b_ck_kllb_fjzt { get; set; }
  327. /// <summary>
  328. /// 颗粒列表 计算方式 索引
  329. /// </summary>
  330. public int index_cb_kllb_jsfs { get; set; }
  331. /// <summary>
  332. /// 颗粒列表 颗粒范围 索引
  333. /// </summary>
  334. public int index_cb_kllb_klfw { get; set; }
  335. /// <summary>
  336. /// 颗粒列表 显示元素
  337. /// </summary>
  338. public string str_tb_kllb_sxys { get; set; }
  339. /// <summary>
  340. /// 颗粒列表 显示元素拆分元素列表
  341. /// </summary>
  342. public List<string> list_str_tb_lllb_sxys { get; set; }
  343. /// <summary>
  344. /// 颗粒列表 颗粒排序表行中第一个可选字段 文本
  345. /// </summary>
  346. public string str_cb_kllb_sort_p1 { get; set; }
  347. /// <summary>
  348. /// 颗粒列表 颗粒排序表行中第一个可选字段 索引
  349. /// </summary>
  350. public int index_cb_kllb_sort_p1 { get; set; }
  351. /// <summary>
  352. /// 颗粒列表 颗粒排序表行中第二个可选字段 文本
  353. /// </summary>
  354. public string str_cb_kllb_sort_p2 { get; set; }
  355. /// <summary>
  356. /// 颗粒列表 颗粒排序表行中第二个可选字段 索引
  357. /// </summary>
  358. public int index_cb_kllb_sort_p2 { get; set; }
  359. /// <summary>
  360. /// 颗粒列表 颗粒排序表行中第三个可选字段 文本
  361. /// </summary>
  362. public string str_cb_kllb_sort_p3 { get; set; }
  363. /// <summary>
  364. /// 颗粒列表 颗粒排序表行中第三个可选字段 索引
  365. /// </summary>
  366. public int index_cb_kllb_sort_p3 { get; set; }
  367. /// <summary>
  368. /// 颗粒列表 颗粒帧图表行中第一个可选字段 文本
  369. /// </summary>
  370. public string str_cb_kllb_chartSort_p1 { get; set; }
  371. /// <summary>
  372. /// 颗粒列表 颗粒帧图表行中第一个可选字段 索引
  373. /// </summary>
  374. public int index_cb_kllb_chartSort_p1 { get; set; }
  375. /// <summary>
  376. /// 颗粒列表 颗粒帧图表行中第二个可选字段 文本
  377. /// </summary>
  378. public string str_cb_kllb_chartSort_p2 { get; set; }
  379. /// <summary>
  380. /// 颗粒列表 颗粒帧图表行中第二个可选字段 索引
  381. /// </summary>
  382. public int index_cb_kllb_chartSort_p2 { get; set; }
  383. /// <summary>
  384. /// 颗粒列表去除不要的颗粒
  385. /// </summary>
  386. public string str_kllb_qcys { get; set; }
  387. /// <summary>
  388. /// 颗粒列表去除不要的颗粒
  389. /// </summary>
  390. public List<string> list_str_kllb_qcys { get; set; }
  391. /// <summary>
  392. /// 颗粒列表去除不要的物质分类
  393. /// </summary>
  394. public string str_kllb_DeleteClass { get; set; }
  395. /// <summary>
  396. /// 颗粒列表去除不要的物质分类
  397. /// </summary>
  398. public List<string> list_str_kllb_DeleteClass { get; set; }
  399. /// <summary>
  400. /// 显示颗粒数量
  401. /// </summary>
  402. public int list_int_kllb_number { get; set; }
  403. }
  404. #endregion
  405. #region 夹杂物占比
  406. public class JZWZB
  407. {
  408. /// <summary>
  409. /// 夹杂物占比表
  410. /// </summary>
  411. public bool b_ck_surface { get; set; }
  412. /// <summary>
  413. /// 夹杂物占比图
  414. /// </summary>
  415. public bool b_ck_chart { get; set; }
  416. }
  417. #endregion
  418. }
  419. #endregion
  420. #region 窗体加载及构造函数
  421. public OTSReport_Export(frmReportApp ReportApp)
  422. {
  423. InitializeComponent();
  424. m_ReportApp = ReportApp;
  425. m_export_reporttemplate = new GBData(this);
  426. SummaryInfoXmluti = new XmlOperateUtil(SummaryInfoPath);
  427. m_mbszclass = new c_TemplateClass();
  428. //读取配置文件中的模板路径
  429. LoadMBSZClass();
  430. #region 国际化语言
  431. Language lan = new Language(this);
  432. table = lan.GetNameTable(this.Name);
  433. #endregion
  434. }
  435. /// <summary>
  436. /// 从配置文件中读取报告模板路径
  437. /// </summary>
  438. private void LoadMBSZClass()
  439. {
  440. string path;
  441. if (m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.CleannessA)
  442. path = SummaryInfoXmluti.Read("M_address", "Path_CA");
  443. else
  444. path = SummaryInfoXmluti.Read("M_address", "Path");
  445. fileName = path;
  446. tb_mblj.Text = fileName;
  447. m_mbszclass.M_DZ.route = fileName;
  448. }
  449. /// <summary>
  450. /// 将报告模板信息保存到配置文件中
  451. /// </summary>
  452. private void SaveMBSClass()
  453. {
  454. if (m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.CleannessA)
  455. //文件路径
  456. SummaryInfoXmluti.Write(m_mbszclass.M_DZ.route.ToString(), "M_address", "Path_CA");
  457. else
  458. SummaryInfoXmluti.Write(m_mbszclass.M_DZ.route.ToString(), "M_address", "Path");
  459. }
  460. /// <summary>
  461. /// 加载报告模板选择项,数据源选项
  462. /// </summary>
  463. private void BindComboBox()
  464. {
  465. //加载数据源
  466. for (int i = 0; i < m_ReportApp.m_rstDataMgr.ResultFilesList.Count; i++)
  467. {
  468. cbo_sjy.Items.Add(m_ReportApp.m_rstDataMgr.ResultFilesList[i].anotherFileName);
  469. }
  470. if (cbo_sjy.Items.Count > 0)
  471. cbo_sjy.SelectedIndex = 0;
  472. }
  473. private void OTSReport_Export_Load(object sender, EventArgs e)
  474. {
  475. //窗体加载时,初始化Combobox
  476. BindComboBox();
  477. LoadControlsToXml();
  478. tb_mblj.Text = fileName;
  479. }
  480. #endregion
  481. #region 自定义方法
  482. /// <summary>
  483. /// 将文本追加到RictBox的尾部上
  484. /// </summary>
  485. public void WriteRictBox(string in_str)
  486. {
  487. //追加到rictbox尾部
  488. richTextBox1.AppendText("[" + DateTime.Now.Hour.ToString() + ":"
  489. + DateTime.Now.Minute.ToString() + ":"
  490. + DateTime.Now.Second.ToString() + "]"
  491. + in_str + Environment.NewLine);
  492. richTextBox1.SelectionColor = GetRandomColor30(30);
  493. richTextBox1.ScrollToCaret();
  494. }
  495. /// <summary>
  496. /// 从指定的几种颜色中进行随机颜色,传入30个颜色的范围,越大颜色越多
  497. /// </summary>
  498. /// <returns></returns>
  499. public Color GetRandomColor30(int i_randomrange)
  500. {
  501. Random r = new Random();
  502. int n = r.Next(0, i_randomrange);
  503. Color ret_color;
  504. switch (n)
  505. {
  506. case 1:
  507. ret_color = Color.Aqua;
  508. break;
  509. case 2:
  510. ret_color = Color.Black;
  511. break;
  512. case 3:
  513. ret_color = Color.Blue;
  514. break;
  515. case 4:
  516. ret_color = Color.BlueViolet;
  517. break;
  518. case 5:
  519. ret_color = Color.Brown;
  520. break;
  521. case 6:
  522. ret_color = Color.BurlyWood;
  523. break;
  524. case 7:
  525. ret_color = Color.CadetBlue;
  526. break;
  527. case 8:
  528. ret_color = Color.CadetBlue;
  529. break;
  530. case 9:
  531. ret_color = Color.CornflowerBlue;
  532. break;
  533. case 10:
  534. ret_color = Color.DarkBlue;
  535. break;
  536. case 11:
  537. ret_color = Color.Gray;
  538. break;
  539. case 12:
  540. ret_color = Color.Indigo;
  541. break;
  542. case 13:
  543. ret_color = Color.LightSlateGray;
  544. break;
  545. case 14:
  546. ret_color = Color.Magenta;
  547. break;
  548. case 15:
  549. ret_color = Color.Maroon;
  550. break;
  551. case 16:
  552. ret_color = Color.MediumBlue;
  553. break;
  554. case 17:
  555. ret_color = Color.MediumOrchid;
  556. break;
  557. case 18:
  558. ret_color = Color.MidnightBlue;
  559. break;
  560. case 19:
  561. ret_color = Color.Navy;
  562. break;
  563. case 20:
  564. ret_color = Color.Olive;
  565. break;
  566. case 21:
  567. ret_color = Color.PaleVioletRed;
  568. break;
  569. case 22:
  570. ret_color = Color.Peru;
  571. break;
  572. case 23:
  573. ret_color = Color.Purple;
  574. break;
  575. case 24:
  576. ret_color = Color.Red;
  577. break;
  578. case 25:
  579. ret_color = Color.RosyBrown;
  580. break;
  581. case 26:
  582. ret_color = Color.RoyalBlue;
  583. break;
  584. case 27:
  585. ret_color = Color.SaddleBrown;
  586. break;
  587. case 28:
  588. ret_color = Color.SeaGreen;
  589. break;
  590. case 29:
  591. ret_color = Color.Teal;
  592. break;
  593. case 30:
  594. ret_color = Color.Tomato;
  595. break;
  596. case 31:
  597. ret_color = Color.YellowGreen;
  598. break;
  599. default:
  600. ret_color = Color.Black;
  601. break;
  602. }
  603. return ret_color;
  604. }
  605. #endregion
  606. #region 窗体控件事件
  607. private void btn_preview_Click(object sender, EventArgs e)
  608. {
  609. DEVReport = new OTS_DEVReport(this, m_mbszclass);
  610. LoadData();
  611. ReportPrintTool tool = new ReportPrintTool(DEVReport);
  612. tool.ShowPreview();
  613. }
  614. private void button3_Click(object sender, EventArgs e)
  615. {
  616. if (File.Exists(tb_lj.Text.Trim()))
  617. {
  618. //打开刚才导出的文件
  619. System.Diagnostics.Process.Start(tb_lj.Text.Trim());
  620. }
  621. else
  622. {
  623. WriteRictBox(table["rictbox2"].ToString() + tb_lj.Text.Trim() + table["rictbox3"].ToString());
  624. }
  625. }
  626. private void button2_Click(object sender, EventArgs e)
  627. {
  628. //退出
  629. this.Close();
  630. }
  631. private void btn_openfilepath_Click(object sender, EventArgs e)
  632. {
  633. string path;
  634. if (m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.CleannessA)
  635. path = Application.StartupPath + "\\Config\\ReportTemplate\\CleannessA_Template";
  636. else
  637. path = Application.StartupPath + "\\Config\\ReportTemplate\\Inca_Template";
  638. FileNameSelect NameSelect = new FileNameSelect(path, fileName);
  639. NameSelect.ShowDialog();
  640. fileName = NameSelect.ChangePathName;
  641. m_mbszclass.M_DZ.route = fileName;
  642. LoadControlsToXml();
  643. SaveMBSClass();
  644. }
  645. private void btn_selectPath_Click(object sender, EventArgs e)
  646. {
  647. //选择保存文件路径对话框
  648. SaveFileDialog saveFileDialog1 = new SaveFileDialog();
  649. //获取默认操作的数据源名,用来当做保存的文件名
  650. saveFileDialog1.FileName = m_ReportApp.m_rstDataMgr.GetSampleName();
  651. saveFileDialog1.Filter = "Excel (*.xls)|*.xls|Word (*.doc)|*.doc|PDF (*.pdf)|*.pdf";
  652. saveFileDialog1.FilterIndex = 1;
  653. saveFileDialog1.RestoreDirectory = true;
  654. if (saveFileDialog1.ShowDialog() == DialogResult.OK)
  655. {
  656. if (saveFileDialog1.FilterIndex == 1)
  657. {
  658. //选择输出Excel
  659. m_export_type = "Excel";
  660. }
  661. if (saveFileDialog1.FilterIndex == 2)
  662. {
  663. //选择输出Word
  664. m_export_type = "Word";
  665. }
  666. if (saveFileDialog1.FilterIndex == 3)
  667. {
  668. //选择输出PDF
  669. m_export_type = "PDF";
  670. }
  671. tb_lj.Text = saveFileDialog1.FileName;
  672. }
  673. }
  674. //调用编辑模板窗体
  675. private void btn_TempDes_Click(object sender, EventArgs e)
  676. {
  677. //预览设置
  678. if (m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.CleannessA)
  679. {
  680. OTSReport_Template_CleannessA OtsTemDRM = new OTSReport_Template_CleannessA(this, fileName);
  681. if (OtsTemDRM.ShowDialog() == DialogResult.Yes)
  682. {
  683. //如果用户点击确定,则将m_mbszclass,模板设置类的内容存到文件中。
  684. m_mbszclass.M_DZ.route = tb_mblj.Text;
  685. SaveMBSClass();
  686. }
  687. }
  688. else
  689. {
  690. OTSReport_Template_INCA OtsTemDRM = new OTSReport_Template_INCA(this, fileName);
  691. if (OtsTemDRM.ShowDialog() == DialogResult.Yes)
  692. {
  693. //如果用户点击确定,则将m_mbszclass,模板设置类的内容存到文件中。
  694. m_mbszclass.M_DZ.route = tb_mblj.Text;
  695. SaveMBSClass();
  696. }
  697. }
  698. }
  699. #endregion
  700. #region 导出工作线程部份
  701. private void LoadData()
  702. {
  703. double total = 1;
  704. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)
  705. total++;
  706. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)
  707. total++;
  708. if (m_mbszclass.M_JZWZB.b_ck_surface)
  709. total++;
  710. if(m_mbszclass.M_JZWZB.b_ck_chart)
  711. total++;
  712. if(m_mbszclass.M_SYXT.b_ck_syxt_xsmk)
  713. total++;
  714. if(m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)
  715. total++;
  716. if(m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt)
  717. total++;
  718. double Serial = 1;
  719. int length = 2;
  720. try
  721. {
  722. if (true)//测量结果信息表
  723. {
  724. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  725. Serial++;
  726. richTextBox1.SelectionColor = Color.Black;
  727. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  728. richTextBox1.AppendText("加载:测量结果信息表……\n");
  729. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  730. DEVReport.International_language(dev_internationalLanguage());
  731. DEVReport.setResultGrid();
  732. richTextBox1.ScrollToCaret();
  733. }
  734. }
  735. catch
  736. {
  737. richTextBox1.SelectionColor = Color.Red;
  738. richTextBox1.AppendText("测量结果信息表加载失败!\n");
  739. return;
  740. }
  741. // 执行后台任务...
  742. try
  743. {
  744. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)//颗粒尺寸分析表
  745. {
  746. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  747. Serial++;
  748. richTextBox1.SelectionColor = Color.Black;
  749. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  750. richTextBox1.AppendText("加载:颗粒尺寸分析表……\n");
  751. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  752. 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);
  753. richTextBox1.ScrollToCaret();
  754. }
  755. }
  756. catch
  757. {
  758. richTextBox1.SelectionColor = Color.Red;
  759. richTextBox1.AppendText("颗粒尺寸分析表加载失败!\n");
  760. return;
  761. }
  762. try
  763. {
  764. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)//元素分析表
  765. {
  766. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  767. Serial++;
  768. richTextBox1.SelectionColor = Color.Black;
  769. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  770. richTextBox1.AppendText("加载:元素分析表……\n");
  771. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  772. DEVReport.XRPageBreak();
  773. DEVReport.setElementAvgGrid();
  774. richTextBox1.ScrollToCaret();
  775. }
  776. }
  777. catch
  778. {
  779. richTextBox1.SelectionColor = Color.Red;
  780. richTextBox1.AppendText("元素分析表加载失败!\n");
  781. return;
  782. }
  783. try
  784. {
  785. if (m_mbszclass.M_JZWZB.b_ck_surface)//夹杂物面积比表
  786. {
  787. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  788. Serial++;
  789. richTextBox1.SelectionColor = Color.Black;
  790. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  791. richTextBox1.AppendText("加载:夹杂物面积比表……\n");
  792. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  793. DEVReport.XRPageBreak();
  794. DEVReport.setINCAtable();
  795. richTextBox1.ScrollToCaret();
  796. }
  797. }
  798. catch
  799. {
  800. richTextBox1.SelectionColor = Color.Red;
  801. richTextBox1.AppendText("夹杂物面积比表加载失败!\n");
  802. return;
  803. }
  804. try
  805. {
  806. if (m_mbszclass.M_KLFXJG.b_ck_klcc_dfl == true || m_mbszclass.M_KLFXJG.b_ck_klcc_xfl == true)
  807. {
  808. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  809. Serial++;
  810. richTextBox1.SelectionColor = Color.Black;
  811. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  812. richTextBox1.AppendText("加载:夹杂物面积比图……\n");
  813. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  814. DEVReport.XRPageBreak();
  815. if (m_mbszclass.M_KLFXJG.b_ck_klcc_dfl)
  816. {
  817. DEVReport.set_incaPIC_classify();
  818. }
  819. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xfl)
  820. {
  821. DEVReport.set_incaPIC_subdivision();
  822. }
  823. richTextBox1.ScrollToCaret();
  824. }
  825. }
  826. catch
  827. {
  828. richTextBox1.SelectionColor = Color.Red;
  829. richTextBox1.AppendText("夹杂物面积加载失败!\n");
  830. return;
  831. }
  832. try
  833. {
  834. if (m_mbszclass.M_SYXT.b_ck_syxt_xsmk)//三元图
  835. {
  836. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  837. Serial++;
  838. richTextBox1.SelectionColor = Color.Black;
  839. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  840. richTextBox1.AppendText("加载:三元图……\n");
  841. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  842. DEVReport.XRPageBreak();
  843. DEVReport.InsertReportTemplateChart_Trianglediagram();
  844. richTextBox1.ScrollToCaret();
  845. }
  846. }
  847. catch
  848. {
  849. richTextBox1.SelectionColor = Color.Red;
  850. richTextBox1.AppendText("三元图加载失败!\n");
  851. return;
  852. }
  853. try
  854. {
  855. if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)//颗粒列表
  856. {
  857. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  858. Serial++;
  859. richTextBox1.SelectionColor = Color.Black;
  860. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  861. richTextBox1.AppendText("加载:颗粒列表……\n");
  862. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  863. DEVReport.XRPageBreak();
  864. DEVReport.set_kllb_data();
  865. richTextBox1.ScrollToCaret();
  866. }
  867. }
  868. catch
  869. {
  870. richTextBox1.SelectionColor = Color.Red;
  871. richTextBox1.AppendText("颗粒列表加载失败!\n");
  872. return;
  873. }
  874. try
  875. {
  876. if (m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt)//颗粒帧图列表
  877. {
  878. double d1 = Convert.ToDouble(Serial / total) * 100.0;
  879. Serial++;
  880. richTextBox1.SelectionColor = Color.Black;
  881. richTextBox1.SelectionStart = 0; // 设置选择开始位置
  882. richTextBox1.AppendText("加载:颗粒帧图列表……\n");
  883. richTextBox1.AppendText("加载:" + Math.Round(d1, length).ToString() + "%\n");
  884. DEVReport.XRPageBreak();
  885. DEVReport.set_kllb_data_frame();
  886. richTextBox1.ScrollToCaret();
  887. }
  888. }
  889. catch
  890. {
  891. richTextBox1.SelectionColor = Color.Red;
  892. richTextBox1.AppendText("颗粒帧图列表加载失败!\n");
  893. return;
  894. }
  895. richTextBox1.SelectionColor = Color.Red;
  896. richTextBox1.AppendText("-----------------加载完成!--------------------\n");
  897. richTextBox1.ScrollToCaret();
  898. }
  899. #endregion
  900. #region 读取文件
  901. private void LoadControlsToXml()
  902. {
  903. string strpath;
  904. if (m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.CleannessA)
  905. strpath = Application.StartupPath + "\\Config\\ReportTemplate\\CleannessA_Template\\" + fileName;
  906. else
  907. strpath = Application.StartupPath + "\\Config\\ReportTemplate\\Inca_Template\\" + fileName;
  908. tb_mblj.Text = fileName;
  909. OTSIncAReportApp.Controls.XmlOperateUtil xmlutil = new OTSIncAReportApp.Controls.XmlOperateUtil(strpath);
  910. //首页
  911. m_mbszclass.M_SY.str_tb_ZBT = xmlutil.Read("M_SY", "str_tb_ZBT");
  912. m_mbszclass.M_SY.str_tb_FBT = xmlutil.Read("M_SY", "str_tb_FBT");
  913. m_mbszclass.M_SY.str_tb_YPBH = xmlutil.Read("M_SY", "str_tb_YPBH");
  914. m_mbszclass.M_SY.str_tb_CKBZ = xmlutil.Read("M_SY", "str_tb_CKBZ");
  915. m_mbszclass.M_SY.b_ck_ypsm = Convert.ToBoolean(xmlutil.Read("M_SY", "b_ck_ypsm"));
  916. m_mbszclass.M_SY.int_xzkl = Convert.ToInt32(xmlutil.Read("M_SY", "int_xzkl"));
  917. m_mbszclass.M_SY.str_xzkl = xmlutil.Read("M_SY", "str_xzkl");
  918. m_mbszclass.M_SY.LOGName = xmlutil.Read("M_SY", "LOGName");
  919. if (m_mbszclass.M_SY.LOGName == null || m_mbszclass.M_SY.LOGName == "")
  920. {
  921. m_mbszclass.M_SY.LOGName = "ReportIdentification.bmp";
  922. }
  923. //页眉页脚
  924. m_mbszclass.M_YMYJ.str_tb_ymwb = xmlutil.Read("M_YMYJ", "str_tb_ymwb");
  925. m_mbszclass.M_YMYJ.str_tb_KHH = xmlutil.Read("M_YMYJ", "str_tb_KHH");
  926. m_mbszclass.M_YMYJ.b_ck_ym = Convert.ToBoolean(xmlutil.Read("M_YMYJ", "b_ck_ym"));
  927. m_mbszclass.M_YMYJ.str_tb_yjwb = xmlutil.Read("M_YMYJ", "str_tb_yjwb");
  928. //颗粒分析结果
  929. m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_ck_klcc_xsmk"));//是否显示模块
  930. m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_ck_klcc_xsddt"));
  931. m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_jsfs"));//计算方式
  932. m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_ljb"));//粒级表
  933. m_mbszclass.M_KLFXJG.index_cb_klcc_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_klfw"));//颗粒范围
  934. m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_cb_jzwfl_xsmk"));//是否显示该模块
  935. m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_xstx"));//选择图像
  936. m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_jsfs"));//计算方式
  937. m_mbszclass.M_KLFXJG.str_cb_klcc_jsfs = xmlutil.Read("M_KLFXJG", "str_cb_klcc_jsfs");
  938. m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_ljb"));//粒级表
  939. m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_klfw"));//颗粒范围
  940. //元素分析结果
  941. m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_ysfx_xsmk")); //是否显示模块
  942. m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yxfx_jsfs")); //计算方式
  943. m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_ysfx_klfw")); //颗粒范围
  944. m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = xmlutil.Read("M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
  945. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
  946. for (int i = 0; i < 100; i++) //取得所有元素列表
  947. {
  948. string str = xmlutil.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
  949. if (str == null)
  950. {
  951. break;
  952. }
  953. else
  954. {
  955. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(str);
  956. }
  957. }
  958. m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_yscf_xsmk")); //是否显示模块
  959. m_mbszclass.M_YSFXJG.index_cb_yscf_xstx = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_xstx")); //显示图形
  960. m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_jsfs")); //计算方式
  961. m_mbszclass.M_YSFXJG.index_cb_yscf_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_klfw")); //颗粒范围
  962. m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx = xmlutil.Read("M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
  963. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Clear();
  964. for (int i = 0; i < 100; i++) //取得所有元素列表
  965. {
  966. string str = xmlutil.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
  967. if (str == null)
  968. {
  969. break;
  970. }
  971. else
  972. {
  973. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Add(str);
  974. }
  975. }
  976. //三元相图
  977. m_mbszclass.M_SYXT.b_ck_syxt_xsmk = Convert.ToBoolean(xmlutil.Read("M_SYXT", "b_ck_syxt_xsmk")); //是否显示模块
  978. m_mbszclass.M_SYXT.index_cb_syxt_jsfs = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_jsfs")); //计算方式
  979. m_mbszclass.M_SYXT.index_cb_syxt_klfw = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_klfw")); //颗粒范围
  980. m_mbszclass.M_SYXT.str_cb_syxt_mhxssl = xmlutil.Read("M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
  981. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
  982. for (int i = 0; i < 100; i++) //取得所有模板列表
  983. {
  984. string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
  985. if (str == null)
  986. {
  987. break;
  988. }
  989. else
  990. {
  991. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
  992. }
  993. }
  994. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
  995. for (int i = 0; i < 100; i++) //取得所有模板列表 索引
  996. {
  997. string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
  998. if (str == null)
  999. {
  1000. break;
  1001. }
  1002. else
  1003. {
  1004. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(Convert.ToInt32(str));
  1005. }
  1006. }
  1007. //颗粒列表信息
  1008. m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_xsmk")); //是否显示模块
  1009. m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_jsfs")); //计算方式
  1010. m_mbszclass.M_KLLBXX.index_cb_kllb_klfw = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_klfw")); //颗粒范围
  1011. m_mbszclass.M_KLLBXX.str_tb_kllb_sxys = xmlutil.Read("M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
  1012. m_mbszclass.M_KLLBXX.b_ck_kllb_fjzt = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_fjzt"));
  1013. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Clear();
  1014. for (int i = 0; i < 100; i++) //取得所有元素列表
  1015. {
  1016. string str = xmlutil.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
  1017. if (str == null)
  1018. {
  1019. break;
  1020. }
  1021. else
  1022. {
  1023. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Add(str);
  1024. }
  1025. }
  1026. m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_sort_p1"));//颗粒列表列中第一个可选参数
  1027. m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p1 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_sort_p1"));
  1028. m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p2 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_sort_p2"));//颗粒列表中第二个可选参数
  1029. m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p2 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_sort_p2"));
  1030. m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p3 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_sort_p3"));//颗粒列表中第三个可选参数
  1031. m_mbszclass.M_KLLBXX.index_cb_kllb_sort_p3 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_sort_p3"));
  1032. m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p1 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_chartSort_p1"));//帧图表列中第一个可选参数
  1033. m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p1 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_chartSort_p1"));
  1034. m_mbszclass.M_KLLBXX.str_cb_kllb_chartSort_p2 = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_cb_kllb_chartSort_p2"));//帧图表列中第二个可选参数
  1035. m_mbszclass.M_KLLBXX.index_cb_kllb_chartSort_p2 = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_chartSort_p2"));
  1036. m_mbszclass.M_KLLBXX.list_int_kllb_number = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "list_int_kllb_number"));//保存显示颗粒数量
  1037. m_mbszclass.M_KLLBXX.str_kllb_qcys = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_kllb_qcys"));
  1038. m_mbszclass.M_KLLBXX.list_str_kllb_qcys.Clear();
  1039. for (int i = 0; i < 100; i++) //取得所有元素列表
  1040. {
  1041. string str = xmlutil.Read("M_KLLBXX", "list_str_kllb_qcys", "YS" + i.ToString());
  1042. if (str == null)
  1043. {
  1044. break;
  1045. }
  1046. else
  1047. {
  1048. m_mbszclass.M_KLLBXX.list_str_kllb_qcys.Add(str);
  1049. }
  1050. }
  1051. m_mbszclass.M_KLLBXX.str_kllb_DeleteClass = Convert.ToString(xmlutil.Read("M_KLLBXX", "str_kllb_DeleteClass"));
  1052. m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Clear();
  1053. for (int i = 0; i < 100; i++) //取得所有元素列表
  1054. {
  1055. string str = xmlutil.Read("M_KLLBXX", "list_str_kllb_DeleteClass", "YS" + i.ToString());
  1056. if (str == null)
  1057. {
  1058. break;
  1059. }
  1060. else
  1061. {
  1062. m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Add(str);
  1063. }
  1064. }
  1065. //夹杂物占比
  1066. m_mbszclass.M_JZWZB.b_ck_surface = Convert.ToBoolean(xmlutil.Read("M_JZWZB", "b_ck_surface"));//夹杂物占比表
  1067. m_mbszclass.M_JZWZB.b_ck_chart = Convert.ToBoolean(xmlutil.Read("M_JZWZB", "b_ck_chart"));//夹杂物占比图
  1068. m_mbszclass.list_str_MainPriority.Clear();
  1069. for (int i = 0; i < 100; i++) //全局优先排序
  1070. {
  1071. string str = xmlutil.Read("whole", "list_str_MainPriority", "YS" + i.ToString());
  1072. if (str == null)
  1073. {
  1074. break;
  1075. }
  1076. else
  1077. {
  1078. m_mbszclass.list_str_MainPriority.Add(str);
  1079. }
  1080. }
  1081. m_mbszclass.list_str_SecondaryPriority.Clear();
  1082. for (int i = 0; i < 100; i++) //全局次要排序
  1083. {
  1084. string str = xmlutil.Read("whole", "list_str_SecondaryPriority", "YS" + i.ToString());
  1085. if (str == null)
  1086. {
  1087. break;
  1088. }
  1089. else
  1090. {
  1091. m_mbszclass.list_str_SecondaryPriority.Add(str);
  1092. }
  1093. }
  1094. m_mbszclass.str_MainPriority = Convert.ToString(xmlutil.Read("whole", "str_MainPriority"));
  1095. m_mbszclass.str_SecondaryPriority = Convert.ToString(xmlutil.Read("whole", "str_SecondaryPriority"));
  1096. m_mbszclass.M_KLFXJG.str_cb_klcc_ljb = Convert.ToString(xmlutil.Read("M_KLFXJG", "str_cb_klcc_ljb"));
  1097. m_mbszclass.M_SYXT.str_cb_syxt_ljb = Convert.ToString(xmlutil.Read("M_SYXT", "str_cb_syxt_ljb"));
  1098. }
  1099. #endregion
  1100. private void button7_Click(object sender, EventArgs e)
  1101. {
  1102. OTSReport_criterion criterion = new OTSReport_criterion(m_export_reporttemplate, GB_Report,this);
  1103. criterion.Sample_order = cbo_sjy.SelectedIndex;
  1104. criterion.Language_dt = dev_internationalLanguage();
  1105. criterion.ShowDialog();
  1106. }
  1107. private void OTSReport_Export_FormClosed(object sender, FormClosedEventArgs e)
  1108. {
  1109. }
  1110. /// <summary>
  1111. /// 从数据库中读取语言配置信息
  1112. /// </summary>
  1113. /// <returns></returns>
  1114. private DataTable dev_internationalLanguage()
  1115. {
  1116. string Language = "ZH";
  1117. OTSCommon.SqLiteHelper sh = new OTSCommon.SqLiteHelper("data source='" + System.IO.Directory.GetCurrentDirectory() + "\\Config\\ReportTemplate\\language.db'");
  1118. DataTable dt_stl = sh.ExecuteQuery("select * from "+ Language);
  1119. return dt_stl;
  1120. }
  1121. }
  1122. }