OTSReport_Export.cs 52 KB

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