OTSIncAReportTemplate.cs 70 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639
  1. using OTSSysMgrTools;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Windows.Forms;
  8. namespace OTSIncAReportTemplate
  9. {
  10. public partial class OTSIncAReportTemplate : Form
  11. {
  12. #region 全局变量
  13. List<DataTable> list_dt;
  14. MBSZClass m_mbszclass = null;
  15. public XmlConfigUtil xmlutil;
  16. public XmlConfigUtil xmlutil2;
  17. //全局变量,与报告项目同步,共传4个参数
  18. //参数1:是需要打开db数据库的路径
  19. //参数2:是打开报表模板xml文件的路径
  20. //参数3:是要执行查看报表的类型,输出主报表,还是输出颗粒列表
  21. //参数4:打开主报表时是是指定夹杂物的数量,打开颗粒列表时,是颗粒列表显示的范围如,0-50,50-100
  22. //参数5:是要执行查看报表的类型,输出主报表时,指定读取的标记帧图图像范围,如0-50,50-100,输出颗粒列表时无用
  23. string m_arg1 = "";
  24. string m_arg2 = "";
  25. string m_arg3 = "";
  26. string m_arg4 = "";
  27. string m_arg5 = "";
  28. #endregion
  29. #region 构造函数及窗体加载
  30. public OTSIncAReportTemplate()
  31. {
  32. InitializeComponent();
  33. }
  34. public OTSIncAReportTemplate(string[] args)
  35. {
  36. InitializeComponent();
  37. //if (args.Length == 0)
  38. //{
  39. // MessageBox.Show("请使用报告程序打开模板程序!");
  40. // return;
  41. //}
  42. //if (args.Length != 5)
  43. //{
  44. // string str = "";
  45. // for (int i = 0; i < args.Length; i++)
  46. // {
  47. // str = str + "参数" + (i + 1).ToString() + ":" + args[i].ToString() + Environment.NewLine;
  48. // }
  49. // MessageBox.Show("传入的参数数量不正确,应为5个参数:" + Environment.NewLine + str);
  50. // return;
  51. //}
  52. //方便测试代码分岐
  53. bool bDebug = false;
  54. if (bDebug == false)
  55. {
  56. m_arg1 = args[0].Replace("^", " ");
  57. m_arg2 = args[1].Replace("^", " ");
  58. m_arg3 = args[2].Replace("^", " ");
  59. m_arg4 = args[3].Replace("^", " ");
  60. m_arg5 = args[4].Replace("^", " ");
  61. }
  62. else
  63. {
  64. ////测试
  65. //m_arg1 = "E:\\ResultFile\\东钢\\11.24\\002\\Sample1\\ReportTemplateDBParticleList.db";
  66. //m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
  67. //m_arg3 = "ParticleListReport";
  68. //m_arg4 = "33-66";
  69. //m_arg5 = "0-100";
  70. //m_arg1 = "E:\\ResultFile\\keda20201209\\Sample1\\ReportTemplateDBParticleList.db";
  71. //m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
  72. //m_arg3 = "ParticleListReport";
  73. //m_arg4 = "0-983";
  74. //m_arg5 = "";
  75. m_arg1 = "C:\\Users\\admin\\Desktop\\OTS测量结果\\北京测试\\20211110\\1110上\\3#-2\\Sample1\\ReportGBDB.db";
  76. m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
  77. m_arg3 = "GBReport";
  78. m_arg4 = "100";
  79. m_arg5 = "0-100";
  80. }
  81. //MessageBox.Show("");
  82. //初始化xml类
  83. xmlutil = new XmlConfigUtil(m_arg2);
  84. m_mbszclass = new MBSZClass();
  85. list_dt = new List<DataTable>();
  86. }
  87. protected override void SetVisibleCore(bool value)
  88. {
  89. base.SetVisibleCore(value);
  90. }
  91. private void Form1_Load(object sender, EventArgs e)
  92. {
  93. //隐藏窗体
  94. this.WindowState = FormWindowState.Minimized;
  95. //this.ShowInTaskbar = false;
  96. //SetVisibleCore(false);
  97. if (m_arg1 != "")
  98. {
  99. rmReport1 = new RMReportEngine.RMReport();
  100. rmReport1.ModifyPrepared = false;
  101. rmReport1.Init(this, RM.Interop.ReportMachine.TxRMReportType.rmrtReport);
  102. //1300购买的注册码
  103. rmReport1.SetUserInfo("15040732794", "UEsDBBQAAAAIAPZ9ulCdRMtANAAAADUAAAAFAAAAZmlsZTET4mZgYDA0NTAxMDc2Mrc0EVIA8dPMU5LMDBONLC0NzCyTzZJTDROTzc0TDZIskhINLFIBUEsBAhQAFAAAAAgA9n26UJ1Ey0A0AAAANQAAAAUAAAAAAAAAAAAAAAAAAAAAAGZpbGUxUEsFBgAAAAABAAEAMwAAAFcAAAAAAA == ");
  104. //读取xml
  105. //LoadControlsToXml();
  106. LoadMBSZClass();
  107. LoadRouteclass();
  108. //加载显示report
  109. if (m_arg3 == "MainReport")
  110. {
  111. //读取db
  112. LoadReportTemplateDBFile();
  113. ReportTemplatePrint_MainReport();
  114. }
  115. else if (m_arg3 == "ParticleListReport")
  116. {
  117. //读取db
  118. LoadReportTemplateDBFile_ParticleList();
  119. ReportTemplatePrint_PartilceListReport();
  120. }
  121. else if( m_arg3 == "GBReport")
  122. {
  123. LoadReportGBDBFile();
  124. ReportTemplatePrint_GBReport();
  125. }
  126. //File.Delete(m_arg1);
  127. }
  128. //关闭查看报告,则退出进程
  129. this.Close();
  130. Application.Exit();
  131. }
  132. #endregion
  133. #region 显示报表方法
  134. /// <summary>
  135. /// 调用预览查看报表,显示主报表
  136. /// </summary>
  137. private void ReportTemplatePrint_MainReport()
  138. {
  139. DataRelation myRela1;
  140. DataTable ls_resultgrid = list_dt.Where(aa => aa.TableName.Contains("ResultGrid")).ToList()[0];//插入测量结果Grid表格
  141. rmReport1.PreviewOptions.BtnDesignVisible = true;
  142. #region 选择报告模板
  143. if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == true && m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == true && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == true)
  144. {
  145. rmReport1.LoadFromFile("Resources\\ReportTemplate\\group1.rmf");
  146. }
  147. else
  148. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false && m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == true)
  149. {
  150. rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelElement.rmf");
  151. }
  152. else
  153. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false && m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == false)
  154. {
  155. rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelBlank.rmf");
  156. }
  157. else
  158. {
  159. rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelGrain.rmf");
  160. }
  161. #endregion
  162. rmReport1.AddVariable("ZBT", m_mbszclass.M_SY.str_tb_ZBT, true);
  163. rmReport1.AddVariable("FBT", m_mbszclass.M_SY.str_tb_FBT, true);
  164. rmReport1.AddVariable("YPBH", m_mbszclass.M_SY.str_tb_YPBH, true);
  165. rmReport1.AddVariable("KHH", m_mbszclass.M_YMYJ.str_tb_KHH, true);
  166. rmReport1.AddVariable("CKBZ", m_mbszclass.M_SY.str_tb_CKBZ, true);
  167. rmReport1.AddVariable("RM_YM", m_mbszclass.M_YMYJ.str_tb_ymwb, true);
  168. rmReport1.AddVariable("RM_YJ", m_mbszclass.M_YMYJ.str_tb_yjwb, true);
  169. #region 判断是否显示
  170. DataTable ls_dt_AreaRatio = list_dt.Where(aa => aa.TableName.Contains("AreaRatio")).ToList()[0];
  171. rmReport1.AddDataSet(ls_dt_AreaRatio, "AreaRatio");
  172. DataTable ls_dt_PicInclusionAreaRatio = list_dt.Where(aa => aa.TableName.Contains("PicInclusionAreaRatio")).ToList()[0];
  173. rmReport1.AddDataSet(ls_dt_PicInclusionAreaRatio, "PicInclusionAreaRatio");
  174. if (m_mbszclass.M_SYXT.b_ck_syxt_xsmk)//判断三元相图是否显示
  175. {
  176. rmReport1.FindObject("GroupHeader81").Prop["Visible"] = true;
  177. if (m_mbszclass.M_SYXT.str_cb_syxt_mhxssl == "2")
  178. {
  179. DataTable ls_dt_picSYXT = list_dt.Where(aa => aa.TableName.Contains("PicSYXT2T")).ToList()[0];//一排两个三元相图
  180. rmReport1.FindObject("MasterData10").Prop["Visible"] = false;
  181. rmReport1.FindObject("MasterData96").Prop["Visible"] = true;
  182. rmReport1.AddDataSet(ls_dt_picSYXT, "PicSYXT");//三元相图
  183. ls_dt_picSYXT.Dispose();
  184. }
  185. else if (m_mbszclass.M_SYXT.str_cb_syxt_mhxssl == "3")
  186. {
  187. DataTable ls_dt_picSYXT3T = list_dt.Where(aa => aa.TableName.Contains("PicSYXT3T")).ToList()[0];//一排三个三元相图
  188. rmReport1.FindObject("MasterData96").Prop["Visible"] = false;
  189. rmReport1.FindObject("MasterData10").Prop["Visible"] = true;
  190. rmReport1.AddDataSet(ls_dt_picSYXT3T, "PicSYXT3T");
  191. ls_dt_picSYXT3T.Dispose();
  192. //ls_dt_picSYXT3T.Clear();
  193. }
  194. }
  195. else
  196. {
  197. //DataTable dataTable = new DataTable();
  198. //rmReport1.AddDataSet(dataTable, "PicSYXT2T");//三元相图
  199. //rmReport1.AddDataSet(dataTable, "PicSYXT3T");
  200. //dataTable.Dispose();
  201. //dataTable.Clear();
  202. //rmReport1.FindObject("GroupHeader81").Prop["Visible"] = false;
  203. //rmReport1.FindObject("MasterData96").Prop["Visible"] = false;
  204. //rmReport1.FindObject("MasterData10").Prop["Visible"] = false;
  205. //rmReport1.DeletePage(3);
  206. }
  207. if (m_mbszclass.M_SY.b_ck_ypsm)//判断样品说明是否显示
  208. {
  209. rmReport1.AddDataSet(ls_resultgrid, "ResultGrid");
  210. ls_resultgrid.Dispose();
  211. rmReport1.FindObject("MasterData1").Prop["Visible"] = true;
  212. }
  213. else
  214. {
  215. rmReport1.FindObject("MasterData1").Prop["Visible"] = false;
  216. }
  217. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk == false && m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk == false)//如果颗粒尺寸分析结果和夹杂物分类图都不显示
  218. {
  219. DataTable dataTable = new DataTable();
  220. rmReport1.AddDataSet(dataTable, "PartSize");
  221. rmReport1.AddDataSet(dataTable, "Particel");
  222. //rmReport1.AddDataSet(dataTable, "PicKL");
  223. dataTable.Dispose();
  224. dataTable.Clear();
  225. rmReport1.FindObject("MasterData2").Prop["Visible"] = false;
  226. rmReport1.FindObject("MasterData126").Prop["Visible"] = false;
  227. //rmReport1.FindObject("MasterData95").Prop["Visible"] = false;
  228. rmReport1.DeletePage(1);
  229. }
  230. else
  231. {
  232. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)//判断颗粒尺寸分析结果
  233. {
  234. DataTable ls_dt_PartSize = list_dt.Where(aa => aa.TableName.Contains("PartSize")).ToList()[0];//插入 颗粒尺寸表
  235. DataTable ls_dt_Particel = list_dt.Where(aa => aa.TableName.Contains("Particel")).ToList()[0];
  236. rmReport1.AddDataSet(ls_dt_PartSize, "PartSize");
  237. rmReport1.AddDataSet(ls_dt_Particel, "Particel");
  238. List<string> vs = new List<string>() { "DMAX", "DMIN", "Area", "FERET" };
  239. string str = vs[m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs];
  240. rmReport1.AddVariable("klccfxjg_jsfx", str, true);
  241. ls_dt_PartSize.Dispose();
  242. //ls_dt_PartSize.Clear();
  243. ls_dt_Particel.Dispose();
  244. //ls_dt_Particel.Clear();
  245. rmReport1.FindObject("MasterData2").Prop["Visible"] = true;
  246. rmReport1.FindObject("MasterData126").Prop["Visible"] = true;
  247. }
  248. else
  249. {
  250. DataTable dataTable = new DataTable();
  251. rmReport1.AddDataSet(dataTable, "PartSize");
  252. rmReport1.AddDataSet(dataTable, "Particel");
  253. dataTable.Dispose();
  254. dataTable.Clear();
  255. rmReport1.FindObject("MasterData2").Prop["Visible"] = false;
  256. rmReport1.FindObject("MasterData126").Prop["Visible"] = false;
  257. }
  258. if (m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk)//判断夹杂物分类图
  259. {
  260. //DataTable ls_dt_picKL = list_dt.Where(aa => aa.TableName.Contains("PicKL")).ToList()[0];// 用于颗粒图chart
  261. //rmReport1.AddDataSet(ls_dt_picKL, "PicKL");
  262. //ls_dt_picKL.Dispose();
  263. ////ls_dt_picKL.Clear();
  264. //rmReport1.FindObject("MasterData95").Prop["Visible"] = true;
  265. }
  266. else
  267. {
  268. //DataTable dataTable = new DataTable();
  269. //rmReport1.AddDataSet(dataTable, "PicKL");
  270. //dataTable.Dispose();
  271. //dataTable.Clear();
  272. //rmReport1.FindObject("MasterData95").Prop["Visible"] = false;
  273. }
  274. }
  275. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false)//如果元素分析表和显示元素成分图都不显示
  276. {
  277. //rmReport1.FindObject("MasterData3").Prop["Visible"] = false;
  278. //rmReport1.FindObject("MasterData42").Prop["Visible"] = false;
  279. //rmReport1.FindObject("MasterData91").Prop["Visible"] = false;
  280. //rmReport1.DeletePage(5);
  281. }
  282. else
  283. {
  284. if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)//判断元素分析表是否显示
  285. {
  286. DataTable ls_dt_elementname = list_dt.Where(aa => aa.TableName.Contains("ElementName")).ToList()[0];
  287. DataTable ls_dt_element = list_dt.Where(aa => aa.TableName == "ElementValue").ToList()[0];
  288. rmReport1.AddDataSet(ls_dt_elementname, "ElementName");
  289. rmReport1.AddDataSet(ls_dt_element, "ElementValue");
  290. ls_dt_elementname.Dispose();
  291. //ls_dt_elementname.Clear();
  292. ls_dt_element.Dispose();
  293. //ls_dt_element.Clear();
  294. //rmReport1.FindObject("MasterData3").Prop["Visible"] = true;
  295. //rmReport1.FindObject("MasterData42").Prop["Visible"] = true;
  296. }
  297. else
  298. {
  299. DataTable dataTable = new DataTable();
  300. rmReport1.AddDataSet(dataTable, "ElementName");
  301. rmReport1.AddDataSet(dataTable, "ElementValue");
  302. dataTable.Dispose();
  303. dataTable.Clear();
  304. rmReport1.FindObject("MasterData3").Prop["Visible"] = false;
  305. rmReport1.FindObject("MasterData42").Prop["Visible"] = false;
  306. }
  307. if (m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk)//判断显示元素成分图
  308. {
  309. DataTable ls_dt_picYS = list_dt.Where(aa => aa.TableName.Contains("PicYS")).ToList()[0];//用于元素图chart
  310. rmReport1.AddDataSet(ls_dt_picYS, "PicYS");
  311. ls_dt_picYS.Dispose();
  312. //ls_dt_picYS.Clear();
  313. rmReport1.FindObject("MasterData91").Prop["Visible"] = true;
  314. }
  315. else
  316. {
  317. DataTable dataTable = new DataTable();
  318. rmReport1.AddDataSet(dataTable, "PicYS");
  319. dataTable.Dispose();
  320. dataTable.Clear();
  321. rmReport1.FindObject("MasterData91").Prop["Visible"] = false;
  322. }
  323. }
  324. if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)//判断显示颗粒列表
  325. {
  326. if (Convert.ToInt32(m_arg4) < 21)
  327. {
  328. DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest20")).ToList()[0];
  329. rmReport1.AddDataSet(ls_dt_largest, "Largest20");
  330. ls_dt_largest.Dispose();
  331. //ls_dt_largest.Clear();
  332. }
  333. else
  334. {
  335. DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest20")).ToList()[0];
  336. rmReport1.AddDataSet(ls_dt_largest, "Largest20");
  337. ls_dt_largest.Dispose();
  338. //ls_dt_largest.Clear();
  339. DataTable ls_dt_largest2 = list_dt.Where(aa => aa.TableName.Contains("Largest2")).ToList()[0];
  340. rmReport1.AddDataSet(ls_dt_largest2, "Largest2");
  341. ls_dt_largest2.Dispose();
  342. //ls_dt_largest2.Clear();
  343. }
  344. //FlushMemory();
  345. #region 主副表
  346. DataTable ls_dt_frame = list_dt.Where(aa => aa.TableName.Contains("FrameGraphSubTable")).ToList()[0].Copy();//副表
  347. DataTable ls_dt_fielddt = list_dt.Where(aa => aa.TableName.Contains("field_dt")).ToList()[0].Copy();//帧图主表
  348. DataSet ds = new DataSet("fieldimgds");
  349. ds.Tables.Add(ls_dt_fielddt);
  350. ds.Tables.Add(ls_dt_frame);
  351. myRela1 = new DataRelation("Rela1", ls_dt_fielddt.Columns["FieldId"], ls_dt_frame.Columns["FieldId"],false);
  352. ds.Relations.Add(myRela1);
  353. rmReport1.AddDataSet(ls_dt_fielddt, "CustomersDS");
  354. rmReport1.AddDetailDataSet(ls_dt_frame, "OrdersDS", "CustomersDS", myRela1);
  355. ls_dt_frame.Dispose();
  356. //ls_dt_frame.Clear();
  357. ls_dt_fielddt.Dispose();
  358. //ls_dt_fielddt.Clear();
  359. #endregion
  360. //FlushMemory();
  361. rmReport1.FindObject("GroupHeader12").Prop["Visible"] = true;
  362. rmReport1.FindObject("MasterData49").Prop["Visible"] = true;
  363. if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图开,放大图关,能谱关
  364. {
  365. rmReport1.FindObject("Memo44").Prop["Visible"] = true;
  366. rmReport1.FindObject("Picture46").Prop["Visible"] = true;
  367. rmReport1.FindObject("Picture69").Prop["Visible"] = false;
  368. rmReport1.FindObject("Picture70").Prop["Visible"] = false;
  369. //最原始的数据
  370. rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
  371. rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
  372. rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
  373. rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
  374. rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
  375. }
  376. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图开,放大图开,能谱关
  377. {
  378. rmReport1.FindObject("Memo44").Prop["Visible"] = true;
  379. rmReport1.FindObject("Picture46").Prop["Visible"] = true;
  380. rmReport1.FindObject("Picture69").Prop["Visible"] = true;
  381. rmReport1.FindObject("Picture70").Prop["Visible"] = false;
  382. rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
  383. rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
  384. rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
  385. rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
  386. rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
  387. }
  388. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图开,放大图开,能谱开
  389. {
  390. rmReport1.FindObject("Memo44").Prop["Visible"] = true;
  391. rmReport1.FindObject("Picture46").Prop["Visible"] = true;
  392. rmReport1.FindObject("Picture69").Prop["Visible"] = true;
  393. rmReport1.FindObject("Picture70").Prop["Visible"] = true;
  394. rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
  395. rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
  396. rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
  397. rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
  398. rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
  399. }
  400. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == false && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图开,放大图关,能谱开
  401. {
  402. rmReport1.FindObject("Memo44").Prop["Visible"] = true;
  403. rmReport1.FindObject("Picture46").Prop["Visible"] = true;
  404. rmReport1.FindObject("Picture69").Prop["Visible"] = false;
  405. rmReport1.FindObject("Picture70").Prop["Visible"] = true;
  406. rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
  407. rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
  408. rmReport1.FindObject("Picture70").Prop["Left"] = 2.9;
  409. rmReport1.FindObject("Picture70").Prop["Width"] = 15.4;
  410. }
  411. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图关,放大图开,能谱开
  412. {
  413. rmReport1.FindObject("Memo44").Prop["Visible"] = false;
  414. rmReport1.FindObject("Picture46").Prop["Visible"] = false;
  415. rmReport1.FindObject("Picture69").Prop["Visible"] = true;
  416. rmReport1.FindObject("Picture70").Prop["Visible"] = true;
  417. rmReport1.FindObject("Picture69").Prop["Left"] = 0.5;
  418. rmReport1.FindObject("Picture70").Prop["Left"] = 2.9;
  419. rmReport1.FindObject("Picture70").Prop["Width"] = 15.4;
  420. }
  421. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图关,放大图关,能谱开
  422. {
  423. rmReport1.FindObject("Memo44").Prop["Visible"] = false;
  424. rmReport1.FindObject("Picture46").Prop["Visible"] = false;
  425. rmReport1.FindObject("Picture69").Prop["Visible"] = false;
  426. rmReport1.FindObject("Picture70").Prop["Visible"] = true;
  427. rmReport1.FindObject("Picture70").Prop["Left"] = 0.5;
  428. rmReport1.FindObject("Picture70").Prop["Width"] = 17.8;
  429. }
  430. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true) //原图关,放大图关,能谱关
  431. {
  432. rmReport1.FindObject("Memo44").Prop["Visible"] = false;
  433. rmReport1.FindObject("Picture46").Prop["Visible"] = false;
  434. rmReport1.FindObject("Picture69").Prop["Visible"] = false;
  435. rmReport1.FindObject("Picture70").Prop["Visible"] = false;
  436. //最原始的数据
  437. rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
  438. rmReport1.FindObject("Picture46").Prop["Left"] = 1.4;//原图像
  439. rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
  440. rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
  441. rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
  442. }
  443. else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图关,放大图开,能谱关
  444. {
  445. rmReport1.FindObject("Memo44").Prop["Visible"] = false;
  446. rmReport1.FindObject("Picture46").Prop["Visible"] = false;
  447. rmReport1.FindObject("Picture69").Prop["Visible"] = true;
  448. rmReport1.FindObject("Picture70").Prop["Visible"] = false;
  449. rmReport1.FindObject("Picture69").Prop["Left"] = 0.5;//放大图
  450. }
  451. }
  452. else
  453. {
  454. //rmReport1.FindObject("GroupHeader12").Prop["Visible"] = false;
  455. //rmReport1.FindObject("MasterData49").Prop["Visible"] = false;
  456. //rmReport1.DeletePage(2);
  457. }
  458. #endregion
  459. rmReport1.ShowReport();
  460. //修复reportmachine的bug,将路径重新定位到当前路径
  461. Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
  462. rmReport1.Dispose();
  463. //回收内存
  464. list_dt.Clear();
  465. }
  466. private void ReportTemplatePrint_GBReport()
  467. {
  468. rmReport1.PreviewOptions.BtnDesignVisible = true;
  469. rmReport1.LoadFromFile("Resources\\ReportTemplate\\GB.rmf");
  470. DataTable ls_dt_GB1_A = list_dt.Where(aa => aa.TableName.Contains("GB1_A")).ToList()[0];
  471. DataTable ls_dt_GB1_B = list_dt.Where(aa => aa.TableName.Contains("GB1_B")).ToList()[0];
  472. DataTable ls_dt_GB1_C = list_dt.Where(aa => aa.TableName.Contains("GB1_C")).ToList()[0];
  473. DataTable ls_dt_GB1_D = list_dt.Where(aa => aa.TableName.Contains("GB1_D")).ToList()[0];
  474. DataTable ls_dt_GB1_DS = list_dt.Where(aa => aa.TableName.Contains("GB1_DS")).ToList()[0];
  475. DataTable ls_dt_GB2_A = list_dt.Where(aa => aa.TableName.Contains("GB2_A")).ToList()[0];
  476. DataTable ls_dt_GB2_B = list_dt.Where(aa => aa.TableName.Contains("GB2_B")).ToList()[0];
  477. DataTable ls_dt_GB2_C = list_dt.Where(aa => aa.TableName.Contains("GB2_C")).ToList()[0];
  478. DataTable ls_dt_GB2_D = list_dt.Where(aa => aa.TableName.Contains("GB2_D")).ToList()[0];
  479. DataTable ls_dt_GB2_D_sulfide = list_dt.Where(aa => aa.TableName.Contains("GB2_D_sulfide")).ToList()[0];
  480. DataTable ls_dt_GB2_DS = list_dt.Where(aa => aa.TableName.Contains("GB2_DS")).ToList()[0];
  481. DataTable ls_resultgrid = list_dt.Where(aa => aa.TableName.Contains("ResultGrid")).ToList()[0];//插入测量结果Grid表格
  482. rmReport1.AddDataSet(ls_dt_GB1_A, "GB1_A");
  483. rmReport1.AddDataSet(ls_dt_GB1_B, "GB1_B");
  484. rmReport1.AddDataSet(ls_dt_GB1_C, "GB1_C");
  485. rmReport1.AddDataSet(ls_dt_GB1_D, "GB1_D");
  486. rmReport1.AddDataSet(ls_dt_GB1_DS, "GB1_DS");
  487. rmReport1.AddDataSet(ls_dt_GB2_A, "GB2_A");
  488. rmReport1.AddDataSet(ls_dt_GB2_B, "GB2_B");
  489. rmReport1.AddDataSet(ls_dt_GB2_C, "GB2_C");
  490. rmReport1.AddDataSet(ls_dt_GB2_D, "GB2_D");
  491. rmReport1.AddDataSet(ls_dt_GB2_D_sulfide, "GB2_D_sulfide");
  492. rmReport1.AddDataSet(ls_dt_GB2_DS, "GB2_DS");
  493. rmReport1.AddDataSet(ls_resultgrid, "ResultGrid");
  494. rmReport1.ShowReport();
  495. //修复reportmachine的bug,将路径重新定位到当前路径
  496. Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
  497. rmReport1.Dispose();
  498. //回收内存
  499. list_dt.Clear();
  500. }
  501. /// <summary>
  502. /// 调用预览查看报表,显示颗粒列表
  503. /// </summary>
  504. private void ReportTemplatePrint_PartilceListReport()
  505. {
  506. DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest3")).ToList()[0];
  507. rmReport1.LoadFromFile("Resources\\ReportTemplate\\Largest.rmf");
  508. rmReport1.AddDataSet(ls_dt_largest, "Largest3");
  509. rmReport1.PreviewOptions.BtnDesignVisible = true;
  510. rmReport1.ShowReport();
  511. //修复reportmachine的bug,将路径重新定位到当前路径
  512. Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
  513. rmReport1.Dispose();
  514. }
  515. #endregion
  516. #region 读取XML模板配置文件
  517. ///<summary>
  518. ///读取xml配置文件
  519. /// </summary>
  520. private void LoadControlsToXml()
  521. {
  522. string path = string.Empty;
  523. OpenFileDialog Load = new OpenFileDialog();
  524. Load.Filter = "PXML文件|*.xml";
  525. Load.InitialDirectory = @System.Windows.Forms.Application.StartupPath + "\\Config\\ProData";
  526. if (Load.ShowDialog() == DialogResult.OK)
  527. path = Load.FileName;//赋值目录
  528. if (path != string.Empty)
  529. {
  530. //tb_mblj.Text = path;
  531. m_mbszclass.M_DZ.route = path;
  532. XmlConfigUtil xmlutil = new XmlConfigUtil(path);
  533. //首页
  534. m_mbszclass.M_SY.str_tb_ZBT = xmlutil.Read("M_SY", "str_tb_ZBT");
  535. m_mbszclass.M_SY.str_tb_FBT = xmlutil.Read("M_SY", "str_tb_FBT");
  536. m_mbszclass.M_SY.str_tb_YPBH = xmlutil.Read("M_SY", "str_tb_YPBH");
  537. m_mbszclass.M_SY.str_tb_CKBZ = xmlutil.Read("M_SY", "str_tb_CKBZ");
  538. m_mbszclass.M_SY.b_ck_ypsm = Convert.ToBoolean(xmlutil.Read("M_SY", "b_ck_ypsm"));
  539. m_mbszclass.M_SY.b_ck_jggk = Convert.ToBoolean(xmlutil.Read("M_SY", "b_ck_jggk"));
  540. //页眉页脚
  541. m_mbszclass.M_YMYJ.str_tb_ymwb = xmlutil.Read("M_YMYJ", "str_tb_ymwb");
  542. m_mbszclass.M_YMYJ.str_tb_KHH = xmlutil.Read("M_YMYJ", "str_tb_KHH");
  543. m_mbszclass.M_YMYJ.b_ck_ym = Convert.ToBoolean(xmlutil.Read("M_YMYJ", "b_ck_ym"));
  544. m_mbszclass.M_YMYJ.str_tb_yjwb = xmlutil.Read("M_YMYJ", "str_tb_yjwb");
  545. MessageBox.Show(m_mbszclass.M_YMYJ.str_tb_ymwb+"!!"+m_mbszclass.M_YMYJ.str_tb_KHH+"!!"+m_mbszclass.M_YMYJ.str_tb_yjwb);
  546. //颗粒分析结果
  547. m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_ck_klcc_xsmk"));//是否显示模块
  548. m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_jsfs"));//计算方式
  549. m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_ljb"));//粒级表
  550. m_mbszclass.M_KLFXJG.index_cb_klcc_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_klfw"));//颗粒范围
  551. m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_cb_jzwfl_xsmk"));//是否显示该模块
  552. m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_xstx"));//选择图像
  553. m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_jsfs"));//计算方式
  554. m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_ljb"));//粒级表
  555. m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_klfw"));//颗粒范围
  556. //元素分析结果
  557. m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_ysfx_xsmk")); //是否显示模块
  558. m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yxfx_jsfs")); //计算方式
  559. m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_ysfx_klfw")); //颗粒范围
  560. m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = xmlutil.Read("M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
  561. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
  562. for (int i = 0; i < 100; i++) //取得所有元素列表
  563. {
  564. string str = xmlutil.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
  565. if (str == null)
  566. {
  567. break;
  568. }
  569. else
  570. {
  571. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(str);
  572. }
  573. }
  574. m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_yscf_xsmk")); //是否显示模块
  575. m_mbszclass.M_YSFXJG.index_cb_yscf_xstx = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_xstx")); //显示图形
  576. m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_jsfs")); //计算方式
  577. m_mbszclass.M_YSFXJG.index_cb_yscf_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_klfw")); //颗粒范围
  578. m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx = xmlutil.Read("M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
  579. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Clear();
  580. for (int i = 0; i < 100; i++) //取得所有元素列表
  581. {
  582. string str = xmlutil.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
  583. if (str == null)
  584. {
  585. break;
  586. }
  587. else
  588. {
  589. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Add(str);
  590. }
  591. }
  592. //三元相图
  593. m_mbszclass.M_SYXT.b_ck_syxt_xsmk = Convert.ToBoolean(xmlutil.Read("M_SYXT", "b_ck_syxt_xsmk")); //是否显示模块
  594. m_mbszclass.M_SYXT.index_cb_syxt_jsfs = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_jsfs")); //计算方式
  595. m_mbszclass.M_SYXT.index_cb_syxt_klfw = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_klfw")); //颗粒范围
  596. m_mbszclass.M_SYXT.str_cb_syxt_mhxssl = xmlutil.Read("M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
  597. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
  598. for (int i = 0; i < 100; i++) //取得所有模板列表
  599. {
  600. string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
  601. if (str == null)
  602. {
  603. break;
  604. }
  605. else
  606. {
  607. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
  608. }
  609. }
  610. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
  611. for (int i = 0; i < 100; i++) //取得所有模板列表 索引
  612. {
  613. string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
  614. if (str == null)
  615. {
  616. break;
  617. }
  618. else
  619. {
  620. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(Convert.ToInt32(str));
  621. }
  622. }
  623. //颗粒列表信息
  624. m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_xsmk")); //是否显示模块
  625. m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_jsfs")); //计算方式
  626. m_mbszclass.M_KLLBXX.index_cb_kllb_klfw = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_klfw")); //颗粒范围
  627. m_mbszclass.M_KLLBXX.int_tb_kllb_ylsx = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "int_tb_kllb_ylsx")); //数量上限
  628. m_mbszclass.M_KLLBXX.str_tb_kllb_sxys = xmlutil.Read("M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
  629. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Clear();
  630. for (int i = 0; i < 100; i++) //取得所有元素列表
  631. {
  632. string str = xmlutil.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
  633. if (str == null)
  634. {
  635. break;
  636. }
  637. else
  638. {
  639. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Add(str);
  640. }
  641. }
  642. m_mbszclass.M_KLLBXX.b_ck_kllb_ystx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_ystx")); //原始图像
  643. m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_fdtx")); //放大图像
  644. m_mbszclass.M_KLLBXX.b_ck_kllb_npxx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_npxx")); //能谱图像
  645. }
  646. }
  647. ///<summary>
  648. ///从配置文件中读取报告模板信息
  649. /// </summary>
  650. private void LoadRouteclass()
  651. {
  652. string strPath2 = "";
  653. if (m_mbszclass.M_DZ.route == null)
  654. {
  655. //strPath2 = strPath;
  656. m_mbszclass.M_DZ.route = m_arg2;
  657. }
  658. else
  659. if (m_mbszclass.M_DZ.route == "")
  660. {
  661. //strPath2 = strPath;
  662. m_mbszclass.M_DZ.route = m_arg2;
  663. }
  664. else
  665. {
  666. strPath2 = m_mbszclass.M_DZ.route;
  667. }
  668. xmlutil2 = new XmlConfigUtil(strPath2);
  669. //首页
  670. m_mbszclass.M_SY.str_tb_ZBT = xmlutil2.Read("M_SY", "str_tb_ZBT");
  671. m_mbszclass.M_SY.str_tb_FBT = xmlutil2.Read("M_SY", "str_tb_FBT");
  672. m_mbszclass.M_SY.str_tb_YPBH = xmlutil2.Read("M_SY", "str_tb_YPBH");
  673. m_mbszclass.M_SY.str_tb_CKBZ = xmlutil2.Read("M_SY", "str_tb_CKBZ");
  674. m_mbszclass.M_SY.b_ck_ypsm = Convert.ToBoolean(xmlutil2.Read("M_SY", "b_ck_ypsm"));
  675. m_mbszclass.M_SY.b_ck_jggk = Convert.ToBoolean(xmlutil2.Read("M_SY", "b_ck_jggk"));
  676. //页眉页脚
  677. m_mbszclass.M_YMYJ.str_tb_ymwb = xmlutil2.Read("M_YMYJ", "str_tb_ymwb");
  678. m_mbszclass.M_YMYJ.str_tb_KHH = xmlutil2.Read("M_YMYJ", "str_tb_KHH");
  679. m_mbszclass.M_YMYJ.b_ck_ym = Convert.ToBoolean(xmlutil2.Read("M_YMYJ", "b_ck_ym"));
  680. m_mbszclass.M_YMYJ.str_tb_yjwb = xmlutil2.Read("M_YMYJ", "str_tb_yjwb");
  681. //颗粒分析结果
  682. m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLFXJG", "b_ck_klcc_xsmk"));//是否显示模块
  683. m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_jsfs"));//计算方式
  684. m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_ljb"));//粒级表
  685. m_mbszclass.M_KLFXJG.index_cb_klcc_klfw = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_klfw"));//颗粒范围
  686. m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLFXJG", "b_cb_jzwfl_xsmk"));//是否显示该模块
  687. m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_xstx"));//选择图像
  688. m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_jsfs"));//计算方式
  689. m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_ljb"));//粒级表
  690. m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_klfw"));//颗粒范围
  691. //元素分析结果
  692. m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = Convert.ToBoolean(xmlutil2.Read("M_YSFXJG", "b_ck_ysfx_xsmk")); //是否显示模块
  693. m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yxfx_jsfs")); //计算方式
  694. m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_ysfx_klfw")); //颗粒范围
  695. m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = xmlutil2.Read("M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
  696. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
  697. for (int i = 0; i < 100; i++) //取得所有元素列表
  698. {
  699. string str = xmlutil2.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
  700. if (str == null)
  701. {
  702. break;
  703. }
  704. else
  705. {
  706. m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(str);
  707. }
  708. }
  709. m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk = Convert.ToBoolean(xmlutil2.Read("M_YSFXJG", "b_ck_yscf_xsmk")); //是否显示模块
  710. m_mbszclass.M_YSFXJG.index_cb_yscf_xstx = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_xstx")); //显示图形
  711. m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_jsfs")); //计算方式
  712. m_mbszclass.M_YSFXJG.index_cb_yscf_klfw = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_klfw")); //颗粒范围
  713. m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx = xmlutil2.Read("M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
  714. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Clear();
  715. for (int i = 0; i < 100; i++) //取得所有元素列表
  716. {
  717. string str = xmlutil2.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
  718. if (str == null)
  719. {
  720. break;
  721. }
  722. else
  723. {
  724. m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Add(str);
  725. }
  726. }
  727. //三元相图
  728. m_mbszclass.M_SYXT.b_ck_syxt_xsmk = Convert.ToBoolean(xmlutil2.Read("M_SYXT", "b_ck_syxt_xsmk")); //是否显示模块
  729. m_mbszclass.M_SYXT.index_cb_syxt_jsfs = Convert.ToInt32(xmlutil2.Read("M_SYXT", "index_cb_syxt_jsfs")); //计算方式
  730. m_mbszclass.M_SYXT.index_cb_syxt_klfw = Convert.ToInt32(xmlutil2.Read("M_SYXT", "index_cb_syxt_klfw")); //颗粒范围
  731. m_mbszclass.M_SYXT.str_cb_syxt_mhxssl = xmlutil2.Read("M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
  732. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
  733. for (int i = 0; i < 100; i++) //取得所有模板列表
  734. {
  735. string str = xmlutil2.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
  736. if (str == null)
  737. {
  738. break;
  739. }
  740. else
  741. {
  742. m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
  743. }
  744. }
  745. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
  746. for (int i = 0; i < 100; i++) //取得所有模板列表 索引
  747. {
  748. string str = xmlutil2.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
  749. if (str == null)
  750. {
  751. break;
  752. }
  753. else
  754. {
  755. m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(Convert.ToInt32(str));
  756. }
  757. }
  758. //颗粒列表信息
  759. m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_xsmk")); //是否显示模块
  760. m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "index_cb_kllb_jsfs")); //计算方式
  761. m_mbszclass.M_KLLBXX.index_cb_kllb_klfw = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "index_cb_kllb_klfw")); //颗粒范围
  762. m_mbszclass.M_KLLBXX.int_tb_kllb_ylsx = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "int_tb_kllb_ylsx")); //数量上限
  763. m_mbszclass.M_KLLBXX.str_tb_kllb_sxys = xmlutil2.Read("M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
  764. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Clear();
  765. for (int i = 0; i < 100; i++) //取得所有元素列表
  766. {
  767. string str = xmlutil2.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
  768. if (str == null)
  769. {
  770. break;
  771. }
  772. else
  773. {
  774. m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Add(str);
  775. }
  776. }
  777. m_mbszclass.M_KLLBXX.b_ck_kllb_ystx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_ystx")); //原始图像
  778. m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_fdtx")); //放大图像
  779. m_mbszclass.M_KLLBXX.b_ck_kllb_npxx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_npxx")); //能谱图像
  780. }
  781. /// <summary>
  782. /// 从配置文件中读取报告模板路径
  783. /// </summary>
  784. private void LoadMBSZClass()
  785. {
  786. //文件路径
  787. m_mbszclass.M_DZ.route = xmlutil.Read("M_address", "Path");
  788. if (m_mbszclass.M_DZ.route == "")
  789. {
  790. //tb_mblj.Text = strPath;
  791. m_mbszclass.M_DZ.route = m_arg2;
  792. }
  793. else
  794. if (File.Exists(m_mbszclass.M_DZ.route))
  795. {
  796. //tb_mblj.Text = m_mbszclass.M_DZ.route;
  797. }
  798. else
  799. {
  800. //tb_mblj.Text = strPath;
  801. m_mbszclass.M_DZ.route = m_arg2;
  802. }
  803. }
  804. #endregion
  805. #region 读取DB数据库文件
  806. /// <summary>
  807. /// 读取DB数据库文件,主报表部份
  808. /// </summary>
  809. private void LoadReportTemplateDBFile()
  810. {
  811. string strpath = m_arg1;//db数据库路径
  812. SqLiteHelper sh = new SqLiteHelper("data source='" + strpath + "'");
  813. list_dt.Clear();
  814. DataTable ls_ResultGrid = sh.ExecuteQuery("select * from ResultGrid");
  815. ls_ResultGrid.TableName = "ResultGrid";
  816. list_dt.Add(ls_ResultGrid);
  817. string strmix = m_arg5.Substring(0, m_arg5.IndexOf("-"));
  818. string strmax = m_arg5.Substring(m_arg5.IndexOf("-") + 1, m_arg5.Length - m_arg5.IndexOf("-") - 1);
  819. DataTable ls_Largest_frame2 = sh.ExecuteQuery("select * from Largest_frame where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
  820. ls_Largest_frame2.TableName = "Largest_frame";
  821. list_dt.Add(ls_Largest_frame2);
  822. //DataTable ls_FrameGraphSubTable = sh.ExecuteQuery("select * from FrameGraphSubTable where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
  823. DataTable ls_FrameGraphSubTable = sh.ExecuteQuery("select * from FrameGraphSubTable ");
  824. ls_FrameGraphSubTable.TableName = "FrameGraphSubTable";
  825. list_dt.Add(ls_FrameGraphSubTable);
  826. DataTable ls_Largest20 = sh.ExecuteQuery("select * from Largest20");
  827. ls_Largest20.TableName = "Largest20";
  828. list_dt.Add(ls_Largest20);
  829. DataTable ls_AreaRatio = sh.ExecuteQuery("select * from AreaRatio");
  830. ls_AreaRatio.TableName = "AreaRatio";
  831. list_dt.Add(ls_AreaRatio);
  832. //DataTable ls_Largest2new = sh.ExecuteQuery("select * from Largest2new");
  833. //ls_Largest2new.TableName = "Largest2new";
  834. //list_dt.Add(ls_Largest2new);
  835. //DataTable ls_field_dt = sh.ExecuteQuery("select * from field_dt where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
  836. DataTable ls_field_dt = sh.ExecuteQuery("select * from field_dt ");
  837. ls_field_dt.TableName = "field_dt";
  838. list_dt.Add(ls_field_dt);
  839. DataTable ls_ElementName = sh.ExecuteQuery("select * from ElementName");
  840. ls_ElementName.TableName = "ElementName";
  841. list_dt.Add(ls_ElementName);
  842. DataTable ls_ElementValue = sh.ExecuteQuery("select * from ElementValue");
  843. ls_ElementValue.TableName = "ElementValue";
  844. list_dt.Add(ls_ElementValue);
  845. DataTable ls_PartSize = sh.ExecuteQuery("select * from PartSize");
  846. ls_PartSize.TableName = "PartSize";
  847. list_dt.Add(ls_PartSize);
  848. DataTable ls_Particel = sh.ExecuteQuery("select * from Particel");
  849. ls_Particel.TableName = "Particel";
  850. list_dt.Add(ls_Particel);
  851. //DataTable ls_PicKL = sh.ExecuteQuery("select * from PicKL");
  852. //ls_PicKL.TableName = "PicKL";
  853. //list_dt.Add(ls_PicKL);
  854. DataTable ls_PicYS = sh.ExecuteQuery("select * from PicYS");
  855. ls_PicYS.TableName = "PicYS";
  856. list_dt.Add(ls_PicYS);
  857. DataTable ls_PicInclusionAreaRatio = sh.ExecuteQuery("select * from PicInclusionAreaRatio");
  858. ls_PicInclusionAreaRatio.TableName = "PicInclusionAreaRatio";
  859. list_dt.Add(ls_PicInclusionAreaRatio);
  860. DataTable ls_PicSYXT2T = sh.ExecuteQuery("select * from PicSYXT2T");
  861. ls_PicSYXT2T.TableName = "PicSYXT2T";
  862. list_dt.Add(ls_PicSYXT2T);
  863. DataTable ls_PicSYXT3T = sh.ExecuteQuery("select * from PicSYXT3T");
  864. ls_PicSYXT3T.TableName = "PicSYXT3T";
  865. list_dt.Add(ls_PicSYXT3T);
  866. }
  867. /// <summary>
  868. /// 读取DB数据库文件,颗粒列表部份
  869. /// </summary>
  870. private void LoadReportTemplateDBFile_ParticleList()
  871. {
  872. string strpath = m_arg1;//db数据库路径
  873. SqLiteHelper sh = new SqLiteHelper("data source='" + strpath + "'");
  874. list_dt.Clear();
  875. string strmix = m_arg4.Substring(0, m_arg4.IndexOf("-"));
  876. string strmax = m_arg4.Substring(m_arg4.IndexOf("-") + 1, m_arg4.Length - m_arg4.IndexOf("-") - 1);
  877. DataTable ls_Largest3 = sh.ExecuteQuery("select * from largest3 where cast(pid as int) > " + strmix + " and cast(pid as int) < " + strmax + " ");
  878. ls_Largest3.TableName = "Largest3";
  879. list_dt.Add(ls_Largest3);
  880. }
  881. /// <summary>
  882. /// 读取DB数据库文件,国标部分
  883. /// </summary>
  884. private void LoadReportGBDBFile()
  885. {
  886. string strpath = m_arg1;//db数据库路径
  887. SqLiteHelper sh = new SqLiteHelper("data source='" + strpath + "'");
  888. list_dt.Clear();
  889. DataTable ls_ResultGrid = sh.ExecuteQuery("select * from ResultGrid");
  890. ls_ResultGrid.TableName = "ResultGrid";
  891. list_dt.Add(ls_ResultGrid);
  892. DataTable ls_GB1_A = sh.ExecuteQuery("select * from GB1_A");
  893. ls_GB1_A.TableName = "GB1_A";
  894. list_dt.Add(ls_GB1_A);
  895. DataTable ls_GB1_B = sh.ExecuteQuery("select * from GB1_B");
  896. ls_GB1_B.TableName = "GB1_B";
  897. list_dt.Add(ls_GB1_B);
  898. DataTable ls_GB1_C = sh.ExecuteQuery("select * from GB1_C");
  899. ls_GB1_C.TableName = "GB1_C";
  900. list_dt.Add(ls_GB1_C);
  901. DataTable ls_GB1_D = sh.ExecuteQuery("select * from GB1_D");
  902. ls_GB1_D.TableName = "GB1_D";
  903. list_dt.Add(ls_GB1_D);
  904. DataTable ls_GB1_DS = sh.ExecuteQuery("select * from GB1_DS");
  905. ls_GB1_DS.TableName = "GB1_DS";
  906. list_dt.Add(ls_GB1_DS);
  907. DataTable ls_GB2_A = sh.ExecuteQuery("select * from GB2_A");
  908. ls_GB2_A.TableName = "GB2_A";
  909. list_dt.Add(ls_GB2_A);
  910. DataTable ls_GB2_B = sh.ExecuteQuery("select * from GB2_B");
  911. ls_GB2_B.TableName = "GB2_B";
  912. list_dt.Add(ls_GB2_B);
  913. DataTable ls_GB2_C = sh.ExecuteQuery("select * from GB2_C");
  914. ls_GB2_C.TableName = "GB2_C";
  915. list_dt.Add(ls_GB2_C);
  916. DataTable ls_GB2_D = sh.ExecuteQuery("select * from GB2_D");
  917. ls_GB2_D.TableName = "GB2_D";
  918. list_dt.Add(ls_GB2_D);
  919. DataTable ls_GB2_D_sulfide = sh.ExecuteQuery("select * from GB2_D_sulfide");
  920. ls_GB2_D_sulfide.TableName = "GB2_D_sulfide";
  921. list_dt.Add(ls_GB2_D_sulfide);
  922. DataTable ls_GB2_DS = sh.ExecuteQuery("select * from GB2_DS");
  923. ls_GB2_DS.TableName = "GB2_DS";
  924. list_dt.Add(ls_GB2_DS);
  925. }
  926. #endregion
  927. #region 回收内存
  928. /// <summary>
  929. /// 回收内存
  930. /// </summary>
  931. public void FlushMemory()
  932. {
  933. //回收内存
  934. MemoryManagement mm = new MemoryManagement();
  935. mm.FlushMemory();
  936. }
  937. public class MemoryManagement
  938. {
  939. [System.Runtime.InteropServices.DllImport("kernel32.dll")]
  940. public static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
  941. public void FlushMemory()
  942. {
  943. GC.Collect();
  944. GC.WaitForPendingFinalizers();
  945. if (Environment.OSVersion.Platform == PlatformID.Win32NT)
  946. { SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1); }
  947. }
  948. }
  949. [System.Runtime.InteropServices.DllImport("coredll.dll")]
  950. [return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
  951. public static extern bool DeleteObject(IntPtr hgdiobj);
  952. private void timer1_Tick(object sender, EventArgs e)
  953. {
  954. FlushMemory();
  955. }
  956. #endregion
  957. }
  958. #region 模板设置类
  959. /// <summary>
  960. /// 模板设置类
  961. /// </summary>
  962. public class MBSZClass
  963. {
  964. //#region 文件路径
  965. public DZ M_DZ { get; set; }
  966. //#endregion
  967. #region 属性
  968. /// <summary>
  969. /// 首页
  970. /// </summary>
  971. public SY M_SY { get; set; }
  972. /// <summary>
  973. /// 页眉页脚
  974. /// </summary>
  975. public YMYJ M_YMYJ { get; set; }
  976. /// <summary>
  977. /// 颗粒分析结果
  978. /// </summary>
  979. public KLFXJG M_KLFXJG { get; set; }
  980. /// <summary>
  981. /// 元素分析结果
  982. /// </summary>
  983. public YSFXJG M_YSFXJG { get; set; }
  984. /// <summary>
  985. /// 三元相图
  986. /// </summary>
  987. public SYXT M_SYXT { get; set; }
  988. /// <summary>
  989. /// 颗粒列表信息
  990. /// </summary>
  991. public KLLBXX M_KLLBXX { get; set; }
  992. #endregion
  993. #region 构造函数
  994. public MBSZClass()
  995. {
  996. M_SY = new SY();
  997. M_YMYJ = new YMYJ();
  998. M_KLFXJG = new KLFXJG();
  999. M_YSFXJG = new YSFXJG();
  1000. M_YSFXJG.list_str_tb_yscf_ysxx = new List<string>();
  1001. M_YSFXJG.list_str_tb_ysfx_xsys = new List<string>();
  1002. M_SYXT = new SYXT();
  1003. M_SYXT.list_lbv_syxt_mblb = new List<string>();
  1004. M_SYXT.list_lbv_syxt_mblb_index = new List<int>();
  1005. M_KLLBXX = new KLLBXX();
  1006. M_KLLBXX.list_str_tb_lllb_sxys = new List<string>();
  1007. M_DZ = new DZ();
  1008. }
  1009. #endregion
  1010. public class DZ
  1011. {
  1012. public string route { get; set; }
  1013. }
  1014. #region 首页部份
  1015. public class SY
  1016. {
  1017. /// <summary>
  1018. /// 主标题
  1019. /// </summary>
  1020. public string str_tb_ZBT { get; set; }
  1021. /// <summary>
  1022. /// 副标题
  1023. /// </summary>
  1024. public string str_tb_FBT { get; set; }
  1025. /// <summary>
  1026. /// 样品编号
  1027. /// </summary>
  1028. public string str_tb_YPBH { get; set; }
  1029. /// <summary>
  1030. /// 参考标准
  1031. /// </summary>
  1032. public string str_tb_CKBZ { get; set; }
  1033. /// <summary>
  1034. /// 是否显示样品说明
  1035. /// </summary>
  1036. public bool b_ck_ypsm { get; set; }
  1037. /// <summary>
  1038. /// 是否显示结果概况
  1039. /// </summary>
  1040. public bool b_ck_jggk { get; set; }
  1041. }
  1042. #endregion
  1043. #region 页眉页脚部份
  1044. public class YMYJ
  1045. {
  1046. /// <summary>
  1047. /// 页眉文本
  1048. /// </summary>
  1049. public string str_tb_ymwb { get; set; }
  1050. /// <summary>
  1051. /// 客户号
  1052. /// </summary>
  1053. public string str_tb_KHH { get; set; }
  1054. /// <summary>
  1055. /// 是否显示页码
  1056. /// </summary>
  1057. public bool b_ck_ym { get; set; }
  1058. /// <summary>
  1059. /// 页脚文本
  1060. /// </summary>
  1061. public string str_tb_yjwb { get; set; }
  1062. }
  1063. #endregion
  1064. #region 颗粒分析结果部份
  1065. public class KLFXJG
  1066. {
  1067. /// <summary>
  1068. /// 是否显示颗粒尺寸分析结果表
  1069. /// </summary>
  1070. public bool b_ck_klcc_xsmk { get; set; }
  1071. /// <summary>
  1072. ///颗粒尺寸分析结果表 计算方式文本
  1073. /// </summary>
  1074. public string str_cb_klcc_jsfs { get; set; }
  1075. /// <summary>
  1076. ///颗粒尺寸分析结果表 计算方式索引
  1077. /// </summary>
  1078. public int index_cb_klcc_jsfs { get; set; }
  1079. /// <summary>
  1080. ///颗粒尺寸分析结果表 粒级表文本
  1081. /// </summary>
  1082. public string str_cb_klcc_ljb { get; set; }
  1083. /// <summary>
  1084. ///颗粒尺寸分析结果表 粒级表索引
  1085. /// </summary>
  1086. public int index_cb_klcc_ljb { get; set; }
  1087. /// <summary>
  1088. ///颗粒尺寸分析结果表 颗粒选择范围文本
  1089. /// </summary>
  1090. public string str_cb_klcc_klfw { get; set; }
  1091. /// <summary>
  1092. ///颗粒尺寸分析结果表 颗粒选择范围索引
  1093. /// </summary>
  1094. public int index_cb_klcc_klfw { get; set; }
  1095. /// <summary>
  1096. /// 夹杂物分类图 是否显示该模块
  1097. /// </summary>
  1098. public bool b_cb_jzwfl_xsmk { get; set; }
  1099. /// <summary>
  1100. ///夹杂物分类图 显示图形选择文本
  1101. /// </summary>
  1102. public string str_cb_jzwfl_xstx { get; set; }
  1103. /// <summary>
  1104. ///夹杂物分类图 显示图形 选择索引
  1105. /// </summary>
  1106. public int index_cb_jzwfl_xstx { get; set; }
  1107. /// <summary>
  1108. ///夹杂物分类图 计算方式 选择文本
  1109. /// </summary>
  1110. public string str_cb_jzwfl_jsfs { get; set; }
  1111. /// <summary>
  1112. ///夹杂物分类图 计算方式 选择索引
  1113. /// </summary>
  1114. public int index_cb_jzwfl_jsfs { get; set; }
  1115. /// <summary>
  1116. ///夹杂物分类图 粒级表 选择文本
  1117. /// </summary>
  1118. public string str_cb_jzwfl_ljb { get; set; }
  1119. /// <summary>
  1120. ///夹杂物分类图 粒级表 选择索引
  1121. /// </summary>
  1122. public int index_cb_jzwfl_ljb { get; set; }
  1123. /// <summary>
  1124. ///夹杂物分类图 颗粒范围 选择文本
  1125. /// </summary>
  1126. public string str_cb_jzwfl_klfw { get; set; }
  1127. /// <summary>
  1128. ///夹杂物分类图 颗粒范围 选择索引
  1129. /// </summary>
  1130. public int index_cb_jzwfl_klfw { get; set; }
  1131. }
  1132. #endregion
  1133. #region 元素分析结果部份
  1134. public class YSFXJG
  1135. {
  1136. /// <summary>
  1137. /// 元素分析表 是否显示该模块
  1138. /// </summary>
  1139. public bool b_ck_ysfx_xsmk { get; set; }
  1140. /// <summary>
  1141. /// 元素分析表 计算方式 选择文本
  1142. /// </summary>
  1143. public string str_cb_yxfx_jsfs { get; set; }
  1144. /// <summary>
  1145. /// 元素分析表 计算方式 选择索引
  1146. /// </summary>
  1147. public int index_cb_yxfx_jsfs { get; set; }
  1148. /// <summary>
  1149. /// 元素分析表 颗粒范围 选择文本
  1150. /// </summary>
  1151. public string str_cb_ysfx_klfw { get; set; }
  1152. /// <summary>
  1153. /// 元素分析表 颗粒范围 选择索引
  1154. /// </summary>
  1155. public int index_cb_ysfx_klfw { get; set; }
  1156. /// <summary>
  1157. /// 元素分析表 显示元素显示文本
  1158. /// </summary>
  1159. public string str_tb_ysfx_xsys { get; set; }
  1160. /// <summary>
  1161. /// 元素分析表 显示元素拆分元素列表
  1162. /// </summary>
  1163. public List<string> list_str_tb_ysfx_xsys { get; set; }
  1164. /// <summary>
  1165. /// 元素成份图 是否显示该模块
  1166. /// </summary>
  1167. public bool b_ck_yscf_xsmk { get; set; }
  1168. /// <summary>
  1169. /// 元素成份图 显示图形 文本
  1170. /// </summary>
  1171. public string str_cb_yscf_xstx { get; set; }
  1172. /// <summary>
  1173. /// 元素成份图 显示图形 索引
  1174. /// </summary>
  1175. public int index_cb_yscf_xstx { get; set; }
  1176. /// <summary>
  1177. /// 元素成份图 计算方式 文本
  1178. /// </summary>
  1179. public string str_cb_yscf_jsfs { get; set; }
  1180. /// <summary>
  1181. /// 元素成份图 计算方式 索引
  1182. /// </summary>
  1183. public int index_cb_yscf_jsfs { get; set; }
  1184. /// <summary>
  1185. /// 元素成份图 颗粒范围 文本
  1186. /// </summary>
  1187. public string str_cb_yscf_klfw { get; set; }
  1188. /// <summary>
  1189. /// 元素成份图 颗粒范围 索引
  1190. /// </summary>
  1191. public int index_cb_yscf_klfw { get; set; }
  1192. /// <summary>
  1193. /// 元素成份图 元素信息
  1194. /// </summary>
  1195. public string str_tb_yscf_ysxx { get; set; }
  1196. /// <summary>
  1197. /// 元素成份图 元素信息列表拆分字符列表
  1198. /// </summary>
  1199. public List<string> list_str_tb_yscf_ysxx { get; set; }
  1200. }
  1201. #endregion
  1202. #region 三元相图部份
  1203. public class SYXT
  1204. {
  1205. /// <summary>
  1206. /// 三元相图 是否显示该模块
  1207. /// </summary>
  1208. public bool b_ck_syxt_xsmk { get; set; }
  1209. /// <summary>
  1210. /// 计算方式 文本
  1211. /// </summary>
  1212. public string str_cb_syxt_jsfs { get; set; }
  1213. /// <summary>
  1214. /// 计算方式 索引
  1215. /// </summary>
  1216. public int index_cb_syxt_jsfs { get; set; }
  1217. /// <summary>
  1218. /// 颗粒范围 文本
  1219. /// </summary>
  1220. public string str_cb_syxt_klfw { get; set; }
  1221. /// <summary>
  1222. /// 颗粒范围 索引
  1223. /// </summary>
  1224. public int index_cb_syxt_klfw { get; set; }
  1225. /// <summary>
  1226. /// 粒级表信息 文本
  1227. /// </summary>
  1228. public string str_cb_syxt_ljb { get; set; }
  1229. /// <summary>
  1230. /// 粒级表信息 索引
  1231. /// </summary>
  1232. public int index_cb_syxt_ljb { get; set; }
  1233. /// <summary>
  1234. /// 每行显示数量 文本
  1235. /// </summary>
  1236. public string str_cb_syxt_mhxssl { get; set; }
  1237. /// <summary>
  1238. /// 每行显示数量 索引
  1239. /// </summary>
  1240. public int index_cb_syxt_mhxssl { get; set; }
  1241. /// <summary>
  1242. /// 三元相图模板集合列表
  1243. /// </summary>
  1244. public List<string> list_lbv_syxt_mblb { get; set; }
  1245. /// <summary>
  1246. /// 三元相图模板索引集合列表
  1247. /// </summary>
  1248. public List<int> list_lbv_syxt_mblb_index { get; set; }
  1249. }
  1250. #endregion
  1251. #region 颗粒列表信息部份
  1252. public class KLLBXX
  1253. {
  1254. /// <summary>
  1255. /// 颗粒列表 是否显示该模块
  1256. /// </summary>
  1257. public bool b_ck_kllb_xsmk { get; set; }
  1258. /// <summary>
  1259. /// 颗粒列表 计算方式 文本
  1260. /// </summary>
  1261. public string str_cb_kllb_jsfs { get; set; }
  1262. /// <summary>
  1263. /// 颗粒列表 计算方式 索引
  1264. /// </summary>
  1265. public int index_cb_kllb_jsfs { get; set; }
  1266. /// <summary>
  1267. /// 颗粒列表 颗粒范围 文本
  1268. /// </summary>
  1269. public string str_cb_kllb_klfw { get; set; }
  1270. /// <summary>
  1271. /// 颗粒列表 颗粒范围 索引
  1272. /// </summary>
  1273. public int index_cb_kllb_klfw { get; set; }
  1274. /// <summary>
  1275. /// 颗粒列表 数量上限
  1276. /// </summary>
  1277. public int int_tb_kllb_ylsx { get; set; }
  1278. /// <summary>
  1279. /// 颗粒列表 显示元素
  1280. /// </summary>
  1281. public string str_tb_kllb_sxys { get; set; }
  1282. /// <summary>
  1283. /// 颗粒列表 显示元素拆分元素列表
  1284. /// </summary>
  1285. public List<string> list_str_tb_lllb_sxys { get; set; }
  1286. /// <summary>
  1287. /// 颗粒列表 是否显示原始图像
  1288. /// </summary>
  1289. public bool b_ck_kllb_ystx { get; set; }
  1290. /// <summary>
  1291. /// 颗粒列表 是否显示放大图像
  1292. /// </summary>
  1293. public bool b_ck_kllb_fdtx { get; set; }
  1294. /// <summary>
  1295. /// 颗粒列表 是否显示能谱信息
  1296. /// </summary>
  1297. public bool b_ck_kllb_npxx { get; set; }
  1298. }
  1299. #endregion
  1300. }
  1301. #endregion
  1302. #region 保存ini结构类
  1303. /// <summary>
  1304. /// 内容部份包含结构类
  1305. /// </summary>
  1306. public class TemplateContent
  1307. {
  1308. private string mkm = ""; //模块名
  1309. private int ix = 0; //位置x
  1310. private int iy = 0; //位置y
  1311. private string sjlx = ""; //数据类型
  1312. private string ljb = ""; //粒级表
  1313. private string ccjsfs = ""; //尺寸计算方式
  1314. private string syxtmb = ""; //三元相图模板
  1315. /// <summary>
  1316. /// 模块名
  1317. /// </summary>
  1318. public string MKM
  1319. {
  1320. get { return mkm; }
  1321. set { mkm = value; }
  1322. }
  1323. /// <summary>
  1324. /// 坐标x
  1325. /// </summary>
  1326. public int IX
  1327. {
  1328. get { return ix; }
  1329. set { ix = value; }
  1330. }
  1331. /// <summary>
  1332. /// 坐标y
  1333. /// </summary>
  1334. public int IY
  1335. {
  1336. get { return iy; }
  1337. set { iy = value; }
  1338. }
  1339. /// <summary>
  1340. /// 数据类型,全部颗粒,选择颗粒
  1341. /// </summary>
  1342. public string SJLX
  1343. {
  1344. get { return sjlx; }
  1345. set { sjlx = value; }
  1346. }
  1347. /// <summary>
  1348. /// 所使用粒级表的名称
  1349. /// </summary>
  1350. public string LJB
  1351. {
  1352. get { return ljb; }
  1353. set { ljb = value; }
  1354. }
  1355. /// <summary>
  1356. /// 尺寸计算方式,直径,面积,费雷特直径,等效圆直径,最长直径,最短直径
  1357. /// </summary>
  1358. public string CCJSFS
  1359. {
  1360. get { return ccjsfs; }
  1361. set { ccjsfs = value; }
  1362. }
  1363. /// <summary>
  1364. /// 三元相图模板
  1365. /// </summary>
  1366. public string SYXTMB
  1367. {
  1368. get { return syxtmb; }
  1369. set { syxtmb = value; }
  1370. }
  1371. }
  1372. /// <summary>
  1373. /// 整个模板结构包含类
  1374. /// </summary>
  1375. public class TemplateInfo
  1376. {
  1377. //页眉部份
  1378. private string logopath = ""; //logo路径
  1379. private string ym_xsmc = ""; //报告名称
  1380. //页脚部份
  1381. private string yj_xsmc = ""; //公司名称
  1382. //内容部份
  1383. public List<TemplateContent> mouble_s = new List<TemplateContent>();//内容类列表,包含多个
  1384. /// <summary>
  1385. /// LOGO的图像路径
  1386. /// </summary>
  1387. public string LOGOPath
  1388. {
  1389. get { return logopath; }
  1390. set { logopath = value; }
  1391. }
  1392. /// <summary>
  1393. /// 报告名称
  1394. /// </summary>
  1395. public string YM_XSMC
  1396. {
  1397. get { return ym_xsmc; }
  1398. set { ym_xsmc = value; }
  1399. }
  1400. /// <summary>
  1401. /// 报告名称字体
  1402. /// </summary>
  1403. public string YJ_XSMC
  1404. {
  1405. get { return yj_xsmc; }
  1406. set { yj_xsmc = value; }
  1407. }
  1408. /// <summary>
  1409. /// 模板内容页列表
  1410. /// </summary>
  1411. public List<TemplateContent> MOUBLE_S
  1412. {
  1413. get { return mouble_s; }
  1414. set { mouble_s = value; }
  1415. }
  1416. }
  1417. #endregion
  1418. }