OTSIncAReportTemplate.cs 72 KB

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