OTSReport_Export.cs 52 KB

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