DataTemplate.cs 127 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516
  1. using DevExpress.Utils;
  2. using DevExpress.XtraCharts;
  3. using DevExpress.XtraPrinting.Drawing;
  4. using DevExpress.XtraReports.UI;
  5. using NPOI.Util;
  6. using OTSCommon;
  7. using OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration;
  8. using OTSIncAReportApp._1_UI.OTSReportExport.Template;
  9. using OTSIncAReportApp.OTSRstMgrFunction;
  10. using System;
  11. using System.Collections;
  12. using System.Collections.Generic;
  13. using System.Data;
  14. using System.Drawing;
  15. using System.Windows.Forms;
  16. using static OTSDataType.otsdataconst;
  17. using static OTSIncAReportApp.OTSReport_Export;
  18. namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner
  19. {
  20. public partial class OTS_DEVReport : DevExpress.XtraReports.UI.XtraReport
  21. {
  22. public OTSReport_Export m_otsreport_export;
  23. string Schriftart_chinese = "微软雅黑";
  24. string Schriftart_english = "Calibri";
  25. List<string> TemplateList;
  26. float NeueStartposition = 3300f;
  27. private string FieldOfViewArea = "";
  28. List<DataTable> FrameData = new List<DataTable>();
  29. ElementSubscript subscript = new ElementSubscript();
  30. c_TemplateClass TemplateClass;
  31. private string ComputeMode = "";//计算方式
  32. private string ComputeModeName = "";//计算方式
  33. private string PartSizeFile = "";//粒级文件
  34. BasicData basicData = new BasicData();
  35. Hashtable table;
  36. public OTS_DEVReport(OTSReport_Export in_export, c_TemplateClass a_Template, frmReportApp a_frmReportApp , Hashtable a_table)
  37. {
  38. table = a_table;
  39. TemplateClass = a_Template;
  40. m_otsreport_export = in_export;
  41. TemplateList = new List<string>();
  42. //加载三元相图各项
  43. string pathtpf = in_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.TrigTemplateFileFolder + "\\" + in_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.TriTempFile;
  44. DataSet ds = DataOperation.DataAccess.XMLoperate.GetXmlData(pathtpf, "XMLData");
  45. DataTable dt = ds.Tables["Member"];
  46. foreach (DataRow item in dt.Rows)
  47. {
  48. if (item["TemplateName"].ToString() != "")
  49. {
  50. TemplateList.Add(item["TemplateName"].ToString());
  51. }
  52. }
  53. string con = "";
  54. DataSet ds1 = XMLoperate.GetXmlData(Application.StartupPath + RptConfigFile.m_ReportMgrParamFile, "XMLData");
  55. DataTable dt1 = ds1.Tables["Member"];
  56. string po = "";
  57. foreach (DataRow element in dt1.Rows)
  58. {
  59. string RegName = element["RegName"].ToString();
  60. if (RegName == "PartSizeFile")
  61. {
  62. PartSizeFile = element["name"].ToString();
  63. }
  64. if (RegName == "TRIO_CHART_TYPE")
  65. {
  66. po = element["strValue"].ToString();
  67. }
  68. if (RegName == "SIZE_CAL_METHOD_TYPE")
  69. {
  70. po = element["strValue"].ToString();
  71. }
  72. }
  73. for (int i=0;i< dt1.Rows.Count;i++)
  74. {
  75. if (dt1.Rows[i]["RegName"].ToString()== "SIZE_CAL_METHOD_TYPE")
  76. {
  77. con = dt1.Rows[i]["strValue"].ToString();
  78. }
  79. }
  80. switch (con)
  81. {
  82. case "DMAX":
  83. po = "DMAX";
  84. break;
  85. case "DMIN":
  86. po = "DMIN";
  87. break;
  88. case "ECD":
  89. po = "Area";
  90. break;
  91. case "FERET":
  92. po = "DFERET";
  93. break;
  94. }
  95. if(po=="")
  96. {
  97. ComputeMode = "Area";
  98. ComputeModeName = "ECD";
  99. }
  100. else
  101. {
  102. ComputeMode = po;
  103. ComputeModeName = con;
  104. }
  105. InitializeComponent();
  106. }
  107. #region 接口
  108. /// <summary>
  109. /// 国际化显示
  110. /// </summary>
  111. /// <param name="languageData"></param>
  112. public void International_language()
  113. {
  114. basicData = new BasicData();
  115. basicData.IsFilePath(m_otsreport_export);
  116. basicData.IsResultFilesList(m_otsreport_export);
  117. basicData.SetDBData(TemplateClass,m_otsreport_export,ComputeMode);
  118. basicData.SetParticlesizeTable(m_otsreport_export);
  119. basicData.newParticleData(m_otsreport_export);
  120. basicData.SetAllClass();
  121. basicData.SetAllElement();
  122. basicData.IsThereAMajorClassification(basicData, m_otsreport_export);
  123. setXRLabelData(dev_ypmc_up, "产品名称:");
  124. setXRLabelData(dev_ypbh_up, "产品型号:");//样品编号(中间的)
  125. setXRLabelData(dev_bgsj_up, GetlanguageData("dev_bgsj_up", dev_bgsj_up.Text));//报告时间(中间的)
  126. setXRLabelData(dev_ypsm, GetlanguageData("dev_ypsm", dev_ypsm.Text));//表中样品说明
  127. setXRLabelData(dev_jcjgwj, GetlanguageData("dev_jcjgwj", dev_jcjgwj.Text));//表中测量结果名称
  128. setXRLabelData(dev_cljggk, GetlanguageData("dev_cljggk", dev_cljggk.Text));//表中测量结果概况
  129. setXRLabelData(dev_yxsj, GetlanguageData("dev_yxsj", dev_yxsj.Text));//表中运行时间
  130. setXRLabelData(dev_sczs, GetlanguageData("dev_sczs", dev_sczs.Text));//表中视场总数
  131. setXRLabelData(dev_flfa, GetlanguageData("dev_flfa", dev_flfa.Text));//表中分类方案
  132. setXRLabelData(dev_ckbz, GetlanguageData("dev_ckbz", dev_ckbz.Text));//表中参考标准
  133. setXRLabelData(dev_yjctz, GetlanguageData("dev_yjctz", dev_yjctz.Text));//表中已检测特征
  134. setXRLabelData(dev_scmj, GetlanguageData("dev_scmj", dev_scmj.Text));//表中视场面积 总检测面积
  135. setXRLabelData(dev_bgsj, GetlanguageData("dev_bgsj", dev_bgsj.Text));//表中报告时间
  136. setXRLabelData(dev_fdbs, GetlanguageData("dev_fdbs", dev_fdbs.Text));//表中放大倍数
  137. //颗粒列表图
  138. setXRLabelData(xrLabel_size_IconQuestion_Class, GetlanguageData("xrlabel_size_iconquestion_class", xrLabel_size_IconQuestion_Class.Text));//大类图表头
  139. setXRLabelData(xrLabel_size_IconQuestion_Subdivision, GetlanguageData("xrlabel_size_iconquestion_subdivision", xrLabel_size_IconQuestion_Subdivision.Text));//细分类表头
  140. //夹杂物面积比图
  141. setXRLabelData(xrLabel_inca_pic_class, GetlanguageData("xrlabel_inca_pic_class", xrLabel_inca_pic_class.Text));//夹杂物面积比图
  142. setXRLabelData(xrLabel_inca_pic_subdivision, GetlanguageData("xrlabel_inca_pic_subdivision", xrLabel_inca_pic_subdivision.Text));
  143. setXRLabelData(xrTableCell1, "Notes");//备注
  144. setXRLabelData(xrLabel1, GetlanguageData("xrlabel1", xrLabel1.Text));
  145. Bitmap bitmap = (Bitmap)Image.FromFile(System.IO.Directory.GetCurrentDirectory() + "\\Config\\ReportTemplate\\"+ TemplateClass.M_SY.LOGName);
  146. xrPictureBox1.ImageSource = new ImageSource(bitmap);
  147. xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze;
  148. }
  149. /// <summary>
  150. /// 首页部分数据插入
  151. /// </summary>ReportIdentification
  152. /// <param name="TemplateClass"></param>
  153. public void setResultGrid(bool a_isINCA)
  154. {
  155. xrChart_ParticelSizeCalss.Visible = false;
  156. xrChart_ParticelSizeSubdivision.Visible = false;
  157. #region 从Grid表中读取样品数据
  158. TableHeaderData HeaderData = new TableHeaderData();
  159. DataTable data = HeaderData.GetData(m_otsreport_export);
  160. #endregion
  161. #region 加载Grid表数据
  162. setXRLabelData(dev_jcjgwj_text, data.Rows[0][1].ToString());//测量结果名称
  163. setXRLabelData(dev_yxsj_text, data.Rows[1][1].ToString());//运行时间
  164. setXRLabelData(dev_sczs_text, data.Rows[2][1].ToString());//视场总数
  165. setXRLabelData(dev_flfa_text, data.Rows[3][1].ToString());//分类方案
  166. setXRLabelData(dev_yjctz_text, data.Rows[4][1].ToString());//已检测特征
  167. setXRLabelData(dev_scmj_text, data.Rows[5][1].ToString() + "mm²");//视场面积
  168. setXRLabelData(dev_fdbs_text, data.Rows[6][1].ToString()+"X");//放大倍数
  169. setXRLabelData(dev_bgsj_text, DateTime.Now.ToShortDateString().ToString());//报告时间:
  170. setXRLabelData(dev_ckbz_text, TemplateClass.M_SY.str_tb_CKBZ.ToString());//参考标准
  171. FieldOfViewArea= HeaderData.filedsArea.ToString();
  172. //FieldOfViewArea = data.Rows[5][1].ToString();
  173. #endregion
  174. #region 加载模板设置文档数据
  175. setXRLabelData(dev_yj, TemplateClass.M_YMYJ.str_tb_yjwb.ToString());//页脚
  176. setXRLabelData(dev_zbt, TemplateClass.M_SY.str_tb_ZBT.ToString());//主标题
  177. setXRLabelData(dev_fbt, TemplateClass.M_SY.str_tb_FBT.ToString());//副标题
  178. setXRLabelData(dev_ypmc_text_up, TemplateClass.M_SY.str_tb_SampleName.ToString());
  179. setXRLabelData(dev_ypbh_text_up, TemplateClass.M_SY.str_tb_YPBH.ToString());//样品编号
  180. setXRLabelData(dev_bgsj_text_up, DateTime.Now.ToShortDateString().ToString());//当前日期
  181. setXRLabelData(dev_sb_text, TemplateClass.M_SY.str_tb_djsb.ToString());//电镜设备名称
  182. setXRLabelData(dev_np_text, TemplateClass.M_SY.str_tb_npsb.ToString());//能谱设备名称
  183. //setXRLabelData(xrTableCell1, xrTableCell1)
  184. #endregion
  185. if (a_isINCA)
  186. xrTable1.Rows.Add(AddInclusionIndex( data.Rows[7][1].ToString()));
  187. xrTableCell3.Text = TemplateClass.M_DZ.Notes.ToString();
  188. xrTable3.SizeF = new SizeF(630f, 90.62f);
  189. xrTable3.Borders = DevExpress.XtraPrinting.BorderSide.All;
  190. xrTable2.Borders = DevExpress.XtraPrinting.BorderSide.All;
  191. if(TemplateClass.M_DZ.Notes.ToString()=="")
  192. {
  193. xrTable3.Visible = false;
  194. xrTable2.Visible = false;
  195. xrTable1.LocationF = new PointF(30.42f, 721.79f);
  196. }
  197. }
  198. /// <summary>
  199. /// 普通颗粒尺寸表(大分类)
  200. /// </summary>
  201. /// <param name="CompositeData"></param>
  202. /// <param name="surface_dt2"></param>
  203. private void add_Particle_size_table_multi_element(List<DataTable> CompositeData, DataTable surface_dt2)
  204. {
  205. ParticleSizeTableCreation particleSizeTableCreation = new ParticleSizeTableCreation();
  206. //XRTable xrTa_ParticleSizeTable = add_particleSizeS();
  207. XRTable xrTa_ParticleSizeTable = particleSizeTableCreation.add_particleSizeS();
  208. xrChart_ParticelSizeCalss.Visible = true;
  209. xrChart_ParticelSizeSubdivision.Visible = true;
  210. List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
  211. List<List<string>> llstr = new List<List<string>>();
  212. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  213. {
  214. List<string> strings = new List<string>();
  215. for (int a = 4; a < CompositeData[1].Columns.Count; a++)
  216. {
  217. strings.Add(CompositeData[1].Rows[i][a].ToString());
  218. }
  219. llstr.Add(strings);
  220. }
  221. List<List<string>> llwrite = new List<List<string>>();
  222. for (int i = 0; i < llstr.Count; i++)
  223. {
  224. List<string> strings = new List<string>();
  225. for (int a = 0; a < 12; a++)
  226. {
  227. if (llstr[i].Count <= a)
  228. {
  229. strings.Add("");
  230. }
  231. else
  232. {
  233. strings.Add(llstr[i][a]);
  234. }
  235. }
  236. llwrite.Add(strings);
  237. }
  238. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  239. {
  240. list_ParticelSizeData.Add(switch_ParticleSize(subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Name"].ToString()),
  241. CompositeData[1].Rows[i]["total"].ToString(),
  242. llwrite[i][0], llwrite[i][1], llwrite[i][2],llwrite[i][3],llwrite[i][4],llwrite[i][5],llwrite[i][6],
  243. llwrite[i][7], llwrite[i][8], llwrite[i][9], llwrite[i][10], llwrite[i][11]));
  244. }
  245. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[0], GetlanguageData("dev_classify", "分类"));//分类
  246. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[1], GetlanguageData("dev_subdivision", "二级分类"));//二级分类(子分类)
  247. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[2], GetlanguageData("dev_quantity", "数量"));//数量
  248. setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], "颗粒尺寸分析结果");//颗粒尺寸分析结果
  249. setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于"));//尺寸计算基于:
  250. //dev_classify.Text = "分类";
  251. xrTa_ParticleSizeTable.Rows[2].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[0].Font.Size);
  252. //dev_subdivision.Text = "子分类";
  253. xrTa_ParticleSizeTable.Rows[2].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[1].Font.Size);
  254. //dev_quantity.Text = "数量";
  255. xrTa_ParticleSizeTable.Rows[2].Cells[2].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[2].Font.Size);
  256. for (int i=0;i< CompositeData[0].Columns.Count;i++)
  257. {
  258. if (i>11)
  259. {
  260. continue;
  261. }
  262. xrTa_ParticleSizeTable.Rows[2].Cells[i+3].Text = CompositeData[0].Rows[0]["c"+(i+1).ToString()].ToString();
  263. }
  264. xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
  265. xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
  266. xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
  267. int total = 0;
  268. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  269. {
  270. XRTableRow row = new XRTableRow();
  271. XRTableCell tCell_Class = new XRTableCell();
  272. XRTableCell tCell_Name = new XRTableCell();
  273. XRTableCell tCell_total = new XRTableCell();
  274. XRTableCell tCell_size_1 = new XRTableCell();
  275. XRTableCell tCell_size_2 = new XRTableCell();
  276. XRTableCell tCell_size_3 = new XRTableCell();
  277. XRTableCell tCell_size_4 = new XRTableCell();
  278. XRTableCell tCell_size_5 = new XRTableCell();
  279. XRTableCell tCell_size_6 = new XRTableCell();
  280. XRTableCell tCell_size_7 = new XRTableCell();
  281. XRTableCell tCell_size_8 = new XRTableCell();
  282. XRTableCell tCell_size_9 = new XRTableCell();
  283. XRTableCell tCell_size_10 = new XRTableCell();
  284. XRTableCell tCell_size_11 = new XRTableCell();
  285. XRTableCell tCell_size_12 = new XRTableCell();
  286. tCell_Class.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[0].WidthF;
  287. tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[1].WidthF;
  288. tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[2].WidthF;
  289. tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[3].WidthF;
  290. tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[4].WidthF;
  291. tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[5].WidthF;
  292. tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[6].WidthF;
  293. tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[7].WidthF;
  294. tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF;
  295. tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[9].WidthF;
  296. tCell_size_8.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[10].WidthF;
  297. tCell_size_9.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[11].WidthF;
  298. tCell_size_10.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[12].WidthF;
  299. tCell_size_11.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[13].WidthF;
  300. tCell_size_12.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[14].WidthF;
  301. XRTableCellData(row, tCell_Class, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Class");
  302. XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
  303. XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
  304. XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
  305. XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
  306. XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
  307. XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
  308. XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
  309. XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
  310. XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
  311. XRTableCellData(row, tCell_size_8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_8");
  312. XRTableCellData(row, tCell_size_9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_9");
  313. XRTableCellData(row, tCell_size_10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_10");
  314. XRTableCellData(row, tCell_size_11, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_11");
  315. XRTableCellData(row, tCell_size_12, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_12");
  316. xrTa_ParticleSizeTable.Rows.Add(row);
  317. if (CompositeData[1].Rows[i]["Name"].ToString()!="")
  318. {
  319. total += Convert.ToInt32(CompositeData[1].Rows[i]["total"]);
  320. }
  321. }
  322. this.Detail.Controls.Add(xrTa_ParticleSizeTable);
  323. float fl = xrPageBreak1.LocationF.Y + 20;
  324. xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
  325. XRTable xrTable3 = particleSizeTableCreation.add_particleSizeS_end();
  326. xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
  327. List<int> vs = new List<int>();
  328. for (int i = 0; i < surface_dt2.Columns.Count - 4; i++)
  329. {
  330. vs.Add(0);
  331. }
  332. for (int i = 0; i < surface_dt2.Rows.Count; i++)
  333. {
  334. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  335. {
  336. if ( surface_dt2.Rows[i]["c" + (a+1).ToString()] != null)
  337. {
  338. bool isNumeric = double.TryParse(surface_dt2.Rows[i]["c" + (a + 1).ToString()].ToString(), out double result);
  339. if (isNumeric)
  340. vs[a] += Convert.ToInt32(result);
  341. }
  342. }
  343. }
  344. setXRLabelData(xrTable3.Rows[0].Cells[0], GetlanguageData("dev_total", "总数量"));
  345. xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  346. xrTable3.Rows[0].Cells[1].Text = total.ToString();
  347. xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  348. for(int i=0;i< vs.Count;i++)
  349. {
  350. if (i > 11)
  351. {
  352. continue;
  353. }
  354. xrTable3.Rows[0].Cells[i+2].Text = vs[i].ToString();
  355. xrTable3.Rows[0].Cells[i + 2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  356. }
  357. NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
  358. this.Detail.Controls.Add(xrTable3);
  359. }
  360. /// <summary>
  361. /// VDA19颗粒尺寸表(大分类)
  362. /// </summary>
  363. /// <param name="CompositeData"></param>
  364. /// <param name="surface_dt2"></param>
  365. private void add_Set_VDA19_TableS(List<DataTable> CompositeData, DataTable surface_dt2)
  366. {
  367. //XRTable xrTa_ParticleSizeTable = add_VDA19_particleSizeS();
  368. ParticleSizeTableCreation particleSizeTableCreation = new ParticleSizeTableCreation();
  369. XRTable xrTa_ParticleSizeTable = particleSizeTableCreation.add_VDA19_particleSizeS();
  370. xrChart_ParticelSizeCalss.Visible = true;
  371. xrChart_ParticelSizeSubdivision.Visible = true;
  372. List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
  373. List<List<string>> llstr = new List<List<string>>();
  374. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  375. {
  376. List<string> strings = new List<string>();
  377. for (int a = 4; a < CompositeData[1].Columns.Count; a++)
  378. {
  379. strings.Add(CompositeData[1].Rows[i][a].ToString());
  380. }
  381. llstr.Add(strings);
  382. }
  383. List<List<string>> llwrite = new List<List<string>>();
  384. for (int i = 0; i < llstr.Count; i++)
  385. {
  386. List<string> strings = new List<string>();
  387. for (int a = 0; a < 12; a++)
  388. {
  389. if (llstr[i].Count <= a)
  390. {
  391. strings.Add("");
  392. }
  393. else
  394. {
  395. strings.Add(llstr[i][a]);
  396. }
  397. }
  398. llwrite.Add(strings);
  399. }
  400. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  401. {
  402. list_ParticelSizeData.Add(switch_ParticleSize(subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Name"].ToString()),
  403. CompositeData[1].Rows[i]["total"].ToString(),
  404. llwrite[i][0], llwrite[i][1], llwrite[i][2], llwrite[i][3], llwrite[i][4], llwrite[i][5], llwrite[i][6],
  405. llwrite[i][7], llwrite[i][8], llwrite[i][9], llwrite[i][10], llwrite[i][11]));
  406. }
  407. setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[0], GetlanguageData("dev_classify", "分类"));//分类
  408. setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[1], GetlanguageData("dev_subdivision", "二级分类"));//二级分类(子分类)
  409. setXRLabelData(xrTa_ParticleSizeTable.Rows[3].Cells[2], GetlanguageData("dev_quantity", "数量"));//数量
  410. setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], GetlanguageData("dev_dimensiontable", "颗粒尺寸分析结果 ISO16232/VDA-19 Results"));//颗粒尺寸分析结果
  411. setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于"));//尺寸计算基于:
  412. //dev_classify.Text = "分类";
  413. xrTa_ParticleSizeTable.Rows[3].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[0].Font.Size);
  414. //dev_subdivision.Text = "子分类";
  415. xrTa_ParticleSizeTable.Rows[3].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[1].Font.Size);
  416. //dev_quantity.Text = "数量";
  417. xrTa_ParticleSizeTable.Rows[3].Cells[2].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[3].Cells[2].Font.Size);
  418. for (int i = 0; i < CompositeData[0].Columns.Count; i++)
  419. {
  420. if (i > 9)
  421. {
  422. continue;
  423. }
  424. xrTa_ParticleSizeTable.Rows[3].Cells[i + 3].Text = CompositeData[0].Rows[0]["c" + (i + 1).ToString()].ToString();
  425. }
  426. xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
  427. xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
  428. xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
  429. int total = 0;
  430. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  431. {
  432. XRTableRow row = new XRTableRow();
  433. XRTableCell tCell_Class = new XRTableCell();
  434. XRTableCell tCell_Name = new XRTableCell();
  435. XRTableCell tCell_total = new XRTableCell();
  436. XRTableCell tCell_size_1 = new XRTableCell();
  437. XRTableCell tCell_size_2 = new XRTableCell();
  438. XRTableCell tCell_size_3 = new XRTableCell();
  439. XRTableCell tCell_size_4 = new XRTableCell();
  440. XRTableCell tCell_size_5 = new XRTableCell();
  441. XRTableCell tCell_size_6 = new XRTableCell();
  442. XRTableCell tCell_size_7 = new XRTableCell();
  443. XRTableCell tCell_size_8 = new XRTableCell();
  444. XRTableCell tCell_size_9 = new XRTableCell();
  445. XRTableCell tCell_size_10 = new XRTableCell();
  446. tCell_Class.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[0].WidthF;
  447. tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[1].WidthF;
  448. tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[2].WidthF;
  449. tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[3].WidthF;
  450. tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[4].WidthF;
  451. tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[5].WidthF;
  452. tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[6].WidthF;
  453. tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[7].WidthF;
  454. tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[8].WidthF;
  455. tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[9].WidthF;
  456. tCell_size_8.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[10].WidthF;
  457. tCell_size_9.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[11].WidthF;
  458. tCell_size_10.WidthF = xrTa_ParticleSizeTable.Rows[3].Cells[12].WidthF;
  459. XRTableCellData(row, tCell_Class, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Class");
  460. XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
  461. XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
  462. XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
  463. XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
  464. XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
  465. XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
  466. XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
  467. XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
  468. XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
  469. XRTableCellData(row, tCell_size_8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_8");
  470. XRTableCellData(row, tCell_size_9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_9");
  471. XRTableCellData(row, tCell_size_10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_10");
  472. xrTa_ParticleSizeTable.Rows.Add(row);
  473. if (CompositeData[1].Rows[i]["Name"].ToString() != "")
  474. {
  475. total += Convert.ToInt32(CompositeData[1].Rows[i]["total"]);
  476. }
  477. }
  478. this.Detail.Controls.Add(xrTa_ParticleSizeTable);
  479. float fl = xrPageBreak1.LocationF.Y + 20;
  480. xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
  481. XRTable xrTable3 = particleSizeTableCreation.add_VDA19_particleSizeS_end();
  482. xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
  483. List<int> vs = new List<int>();
  484. for (int i = 0; i < surface_dt2.Columns.Count - 4; i++)
  485. {
  486. vs.Add(0);
  487. }
  488. for (int i = 0; i < surface_dt2.Rows.Count; i++)
  489. {
  490. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  491. {
  492. if (surface_dt2.Rows[i]["c" + (a + 1).ToString()] != null)
  493. {
  494. bool isNumeric = double.TryParse(surface_dt2.Rows[i]["c" + (a + 1).ToString()].ToString(), out double result);
  495. if (isNumeric)
  496. vs[a] += Convert.ToInt32(result);
  497. }
  498. }
  499. }
  500. setXRLabelData(xrTable3.Rows[0].Cells[0], GetlanguageData("dev_total", "总数量"));
  501. xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  502. xrTable3.Rows[0].Cells[1].Text = total.ToString();
  503. xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  504. for (int i = 0; i < vs.Count; i++)
  505. {
  506. if (i > 9)
  507. {
  508. continue;
  509. }
  510. xrTable3.Rows[0].Cells[i + 2].Text = vs[i].ToString();
  511. xrTable3.Rows[0].Cells[i + 2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  512. }
  513. NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
  514. this.Detail.Controls.Add(xrTable3);
  515. XRPageBreak();
  516. XRTable VDA19_ResultTable = particleSizeTableCreation.add_VDA19_ResultTable();
  517. setXRLabelData(VDA19_ResultTable.Rows[0].Cells[0], GetlanguageData("dev_dimensiontable", "颗粒尺寸分析结果 ISO16232/VDA-19 Results"));//颗粒尺寸分析结果
  518. //粒级名称
  519. for (int i = 0; i < CompositeData[0].Columns.Count; i++)
  520. {
  521. VDA19_ResultTable.Rows[2].Cells[i + 2].Text = CompositeData[0].Rows[0][i].ToString();
  522. }
  523. //总数量
  524. VDA19_ResultTable.Rows[3].Cells[1].Text = total.ToString();
  525. List<string> strings1 = new List<string>();
  526. strings1.Add("B");
  527. strings1.Add("C");
  528. strings1.Add("D");
  529. strings1.Add("E");
  530. strings1.Add("F");
  531. strings1.Add("G");
  532. strings1.Add("H");
  533. strings1.Add("I");
  534. strings1.Add("J");
  535. strings1.Add("K");
  536. //当前级别
  537. List<string> List_Level = new List<string>();
  538. int pos = 0;
  539. string currentLevel = "";
  540. bool isPass = true;
  541. //粒级数量+粒级评级
  542. for (int i = 4; i < surface_dt2.Columns.Count; i++)
  543. {
  544. int quantity = Convert.ToInt32(surface_dt2.Rows[0][i]);
  545. VDA19_ResultTable.Rows[3].Cells[i - 2].Text = quantity.ToString();
  546. string Level = particleSizeTableCreation.VDA_Level(quantity);
  547. VDA19_ResultTable.Rows[4].Cells[i - 3].Text = Level;
  548. strings1[pos] = strings1[pos] + Level;
  549. pos++;
  550. List_Level.Add(Level);
  551. }
  552. for (int i = 0; i < strings1.Count; i++)
  553. {
  554. if (i != strings1.Count - 1)
  555. currentLevel = currentLevel + strings1[i] + "/";
  556. else currentLevel = currentLevel + strings1[i];
  557. }
  558. VDA19_ResultTable.Rows[5].Cells[1].Text = "V("+ currentLevel+")";
  559. VDA19_ResultTable.Rows[6].Cells[2].Text = particleSizeTableCreation.isPassLevel(List_Level);
  560. VDA19_ResultTable.LocationF = new PointF(10f, NeueStartposition);
  561. NeueStartposition = VDA19_ResultTable.LocationF.Y + VDA19_ResultTable.SizeF.Height + 1;
  562. this.Detail.Controls.Add(VDA19_ResultTable);
  563. }
  564. private void add_SetTable(List<DataTable> CompositeData, DataTable surface_dt2)
  565. {
  566. ParticleSizeTableCreation particleSizeTableCreation = new ParticleSizeTableCreation();
  567. XRTable xrTa_ParticleSizeTable = particleSizeTableCreation.add_particleSize();
  568. xrChart_ParticelSizeCalss.Visible = true;
  569. xrChart_ParticelSizeSubdivision.Visible = true;
  570. List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
  571. DataTable data = CompositeData[1].Clone();
  572. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  573. {
  574. if (CompositeData[1].Rows[i]["Class"].ToString() == "")
  575. {
  576. data.Rows.Add(CompositeData[1].Rows[i].ItemArray);
  577. }
  578. }
  579. List<List<string>> llstr = new List<List<string>>();
  580. for (int i=0;i< data.Rows.Count;i++)
  581. {
  582. List<string> strings = new List<string>();
  583. for (int a = 4; a < data.Columns.Count ; a++)
  584. {
  585. strings.Add(data.Rows[i][a].ToString());
  586. }
  587. llstr.Add(strings);
  588. }
  589. List<List<string>> llwrite = new List<List<string>>();
  590. for (int i=0;i< llstr.Count;i++)
  591. {
  592. List<string> strings = new List<string>();
  593. for (int a = 0; a < 12; a++)
  594. {
  595. if (llstr[i].Count <= a)
  596. {
  597. strings.Add("");
  598. }
  599. else
  600. {
  601. strings.Add(llstr[i][a]);
  602. }
  603. }
  604. llwrite.Add(strings);
  605. }
  606. for (int i = 0; i < data.Rows.Count; i++)
  607. {
  608. list_ParticelSizeData.Add(switch_ParticleSize(subscript.Getsubscriptstring(data.Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(data.Rows[i]["Name"].ToString()), data.Rows[i]["total"].ToString(),
  609. llwrite[i][0], llwrite[i][1], llwrite[i][2],llwrite[i][3], llwrite[i][4],
  610. llwrite[i][5], llwrite[i][6], llwrite[i][7], llwrite[i][8], llwrite[i][9],
  611. llwrite[i][10], llwrite[i][11]));
  612. }
  613. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[0], GetlanguageData("dev_classify", "分类"));//二级分类(子分类)
  614. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[1], GetlanguageData("dev_quantity", "数量"));//数量
  615. setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], "颗粒尺寸分析结果");//颗粒尺寸分析结果
  616. setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于:"));//尺寸计算基于:
  617. //dev_subdivision.Text = "子分类";
  618. xrTa_ParticleSizeTable.Rows[2].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[0].Font.Size);
  619. //dev_quantity.Text = "数量";
  620. xrTa_ParticleSizeTable.Rows[2].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[1].Font.Size);
  621. for(int i=0;i< CompositeData[0].Columns.Count;i++)
  622. {
  623. if (i > 11)
  624. {
  625. continue;
  626. }
  627. xrTa_ParticleSizeTable.Rows[2].Cells[i+2].Text= CompositeData[0].Rows[0]["c"+(i+1).ToString()].ToString();
  628. }
  629. xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
  630. xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
  631. xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
  632. for (int i = 0; i < data.Rows.Count; i++)
  633. {
  634. XRTableRow row = new XRTableRow();
  635. XRTableCell tCell_Name = new XRTableCell();
  636. XRTableCell tCell_total = new XRTableCell();
  637. XRTableCell tCell_size_1 = new XRTableCell();
  638. XRTableCell tCell_size_2 = new XRTableCell();
  639. XRTableCell tCell_size_3 = new XRTableCell();
  640. XRTableCell tCell_size_4 = new XRTableCell();
  641. XRTableCell tCell_size_5 = new XRTableCell();
  642. XRTableCell tCell_size_6 = new XRTableCell();
  643. XRTableCell tCell_size_7 = new XRTableCell();
  644. XRTableCell tCell_size_8 = new XRTableCell();
  645. XRTableCell tCell_size_9 = new XRTableCell();
  646. XRTableCell tCell_size_10 = new XRTableCell();
  647. XRTableCell tCell_size_11 = new XRTableCell();
  648. XRTableCell tCell_size_12 = new XRTableCell();
  649. tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[0].WidthF;
  650. tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[1].WidthF;
  651. tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[2].WidthF;
  652. tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[3].WidthF;
  653. tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[4].WidthF;
  654. tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[5].WidthF;
  655. tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[6].WidthF;
  656. tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[7].WidthF;
  657. tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF;
  658. tCell_size_8.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[9].WidthF;
  659. tCell_size_9.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[10].WidthF;
  660. tCell_size_10.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[11].WidthF;
  661. tCell_size_11.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[12].WidthF;
  662. tCell_size_12.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[13].WidthF;
  663. XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
  664. XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
  665. XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
  666. XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
  667. XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
  668. XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
  669. XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
  670. XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
  671. XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
  672. XRTableCellData(row, tCell_size_8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_8");
  673. XRTableCellData(row, tCell_size_9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_9");
  674. XRTableCellData(row, tCell_size_10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_10");
  675. XRTableCellData(row, tCell_size_11, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_11");
  676. XRTableCellData(row, tCell_size_12, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_12");
  677. xrTa_ParticleSizeTable.Rows.Add(row);
  678. }
  679. this.Detail.Controls.Add(xrTa_ParticleSizeTable);
  680. float fl = xrPageBreak1.LocationF.Y + 20;
  681. xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
  682. XRTable xrTable3 = particleSizeTableCreation.add_particleSize_end();
  683. xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
  684. List<int> vs = new List<int>();
  685. for(int i=0;i< surface_dt2.Columns.Count - 4;i++)
  686. {
  687. vs.Add(0);
  688. }
  689. int total = 0;
  690. for (int i = 0; i < surface_dt2.Rows.Count; i++)
  691. {
  692. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  693. {
  694. if (surface_dt2.Rows[i]["c" + (a + 1).ToString()] != null)
  695. {
  696. bool isNumeric = double.TryParse(surface_dt2.Rows[i]["c" + (a + 1).ToString()].ToString(), out double result);
  697. if (isNumeric)
  698. vs[a] += Convert.ToInt32(result);
  699. }
  700. }
  701. }
  702. setXRLabelData(xrTable3.Rows[0].Cells[0], "总数量");
  703. xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  704. xrTable3.Rows[0].Cells[1].Text = total.ToString();
  705. xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  706. for (int i=0;i< vs.Count; i++)
  707. {
  708. if (i > 11)
  709. {
  710. continue;
  711. }
  712. xrTable3.Rows[0].Cells[i+2].Text = vs[i].ToString();
  713. xrTable3.Rows[0].Cells[i + 2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  714. }
  715. NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
  716. this.Detail.Controls.Add(xrTable3);
  717. }
  718. private void add_ParticleList_Below7_NoGrouping(List<DataTable> CompositeData, DataTable surface_dt2)
  719. {
  720. ParticleSizeTableCreation particleSizeTableCreation = new ParticleSizeTableCreation();
  721. XRTable xrTa_ParticleSizeTable = particleSizeTableCreation.add_particleSize_Below7();
  722. xrChart_ParticelSizeCalss.Visible = true;
  723. xrChart_ParticelSizeSubdivision.Visible = true;
  724. List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
  725. int ls = 0;
  726. DataTable data = CompositeData[1].Clone();
  727. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  728. {
  729. if (CompositeData[1].Rows[i]["Class"].ToString() == "")
  730. {
  731. data.Rows.Add(CompositeData[1].Rows[i].ItemArray);
  732. }
  733. }
  734. for (int i = 0; i < data.Rows.Count; i++)
  735. {
  736. List<string> strings = new List<string>();
  737. for (int a = 0; a < 12; a++)
  738. {
  739. if (CompositeData[0].Columns.Count > a)
  740. {
  741. strings.Add(data.Rows[i]["c" + (a + 1)].ToString());
  742. }
  743. else
  744. {
  745. strings.Add("");
  746. }
  747. }
  748. list_ParticelSizeData.Add(switch_ParticleSize(
  749. subscript.Getsubscriptstring(data.Rows[i]["Class"].ToString()),
  750. subscript.Getsubscriptstring(data.Rows[i]["Name"].ToString()),
  751. data.Rows[i]["total"].ToString(),
  752. strings[0], strings[1],
  753. strings[2], strings[3],
  754. strings[4], strings[5],
  755. strings[6], strings[7], strings[8], strings[9], strings[10], strings[11]));
  756. }
  757. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[0], GetlanguageData("dev_classify", "分类"));//二级分类(子分类)
  758. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[1], GetlanguageData("dev_quantity", "数量"));//数量
  759. setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], "颗粒尺寸分析结果");//颗粒尺寸分析结果
  760. setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于:"));//尺寸计算基于:
  761. //dev_subdivision.Text = "子分类";
  762. xrTa_ParticleSizeTable.Rows[2].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[0].Font.Size);
  763. //dev_quantity.Text = "数量";
  764. xrTa_ParticleSizeTable.Rows[2].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[1].Font.Size);
  765. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  766. {
  767. xrTa_ParticleSizeTable.Rows[2].Cells[a + 2].Text = CompositeData[0].Rows[0]["c" + (a + 1)].ToString();
  768. }
  769. xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
  770. xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
  771. xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
  772. int total = 0;
  773. for (int i = 0; i < data.Rows.Count; i++)
  774. {
  775. XRTableRow row = new XRTableRow();
  776. XRTableCell tCell_Name = new XRTableCell();
  777. XRTableCell tCell_total = new XRTableCell();
  778. XRTableCell tCell_size_1 = new XRTableCell();
  779. XRTableCell tCell_size_2 = new XRTableCell();
  780. XRTableCell tCell_size_3 = new XRTableCell();
  781. XRTableCell tCell_size_4 = new XRTableCell();
  782. XRTableCell tCell_size_5 = new XRTableCell();
  783. XRTableCell tCell_size_6 = new XRTableCell();
  784. XRTableCell tCell_size_7 = new XRTableCell();
  785. tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[0].WidthF;
  786. tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[1].WidthF;
  787. tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[2].WidthF;
  788. tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[3].WidthF;
  789. tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[4].WidthF;
  790. tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[5].WidthF;
  791. tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[6].WidthF;
  792. tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[7].WidthF;
  793. tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF;
  794. XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
  795. XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
  796. XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
  797. XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
  798. XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
  799. XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
  800. XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
  801. XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
  802. XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
  803. xrTa_ParticleSizeTable.Rows.Add(row);
  804. if (data.Rows[i]["Name"].ToString() != "")
  805. {
  806. total += Convert.ToInt32(data.Rows[i]["total"]);
  807. }
  808. }
  809. this.Detail.Controls.Add(xrTa_ParticleSizeTable);
  810. float fl = xrPageBreak1.LocationF.Y + 20;
  811. xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
  812. XRTable xrTable3 = particleSizeTableCreation.add_particleSize_Below7_end();
  813. xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
  814. List<int> vs = new List<int>();
  815. for (int i = 0; i < surface_dt2.Columns.Count - 4; i++)
  816. {
  817. vs.Add(0);
  818. }
  819. for (int i = 0; i < surface_dt2.Rows.Count; i++)
  820. {
  821. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  822. {
  823. if (surface_dt2.Rows[i]["c" + (a + 1).ToString()] != null)
  824. {
  825. bool isNumeric = double.TryParse(surface_dt2.Rows[i]["c" + (a + 1).ToString()].ToString(), out double result);
  826. if (isNumeric)
  827. vs[a] += Convert.ToInt32(result);
  828. }
  829. }
  830. }
  831. if (vs.Count < 7)
  832. {
  833. for (int i = 0; i < 7; i++)
  834. {
  835. vs.Add(0);
  836. }
  837. }
  838. setXRLabelData(xrTable3.Rows[0].Cells[0], "总数量");
  839. xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  840. xrTable3.Rows[0].Cells[1].Text = total.ToString();
  841. xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  842. xrTable3.Rows[0].Cells[2].Text = vs[0].ToString();
  843. xrTable3.Rows[0].Cells[2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  844. xrTable3.Rows[0].Cells[3].Text = vs[1].ToString();
  845. xrTable3.Rows[0].Cells[3].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  846. xrTable3.Rows[0].Cells[4].Text = vs[2].ToString();
  847. xrTable3.Rows[0].Cells[4].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  848. xrTable3.Rows[0].Cells[5].Text = vs[3].ToString();
  849. xrTable3.Rows[0].Cells[5].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  850. xrTable3.Rows[0].Cells[6].Text = vs[4].ToString();
  851. xrTable3.Rows[0].Cells[6].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  852. xrTable3.Rows[0].Cells[7].Text = vs[5].ToString();
  853. xrTable3.Rows[0].Cells[7].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  854. xrTable3.Rows[0].Cells[8].Text = vs[6].ToString();
  855. xrTable3.Rows[0].Cells[8].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  856. NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
  857. this.Detail.Controls.Add(xrTable3);
  858. }
  859. private void add_ParticleList_Below7(List<DataTable> CompositeData, DataTable surface_dt2)
  860. {
  861. ParticleSizeTableCreation particleSizeTableCreation = new ParticleSizeTableCreation();
  862. //XRTable xrTa_ParticleSizeTable = add_particleSizeS_Below7();
  863. XRTable xrTa_ParticleSizeTable = particleSizeTableCreation. add_particleSizeS_Below7();
  864. xrChart_ParticelSizeCalss.Visible = true;
  865. xrChart_ParticelSizeSubdivision.Visible = true;
  866. List<List<ParticleSizeDEVData>> list_ParticelSizeData = new List<List<ParticleSizeDEVData>>();
  867. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  868. {
  869. List<string> strings = new List<string>();
  870. for (int a = 0; a < 12; a++)
  871. {
  872. if (CompositeData[0].Columns.Count > a)
  873. {
  874. strings.Add(CompositeData[1].Rows[i]["c" + (a + 1)].ToString());
  875. }
  876. else
  877. {
  878. strings.Add("");
  879. }
  880. }
  881. list_ParticelSizeData.Add(switch_ParticleSize(
  882. subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Class"].ToString()),
  883. subscript.Getsubscriptstring(CompositeData[1].Rows[i]["Name"].ToString()),
  884. CompositeData[1].Rows[i]["total"].ToString(), strings[0],
  885. strings[1], strings[2],
  886. strings[3], strings[4],
  887. strings[5], strings[6], strings[7], strings[8], strings[9], strings[10], strings[11]));
  888. }
  889. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[0], GetlanguageData("dev_classify", "分类"));//分类
  890. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[1], GetlanguageData("dev_subdivision", "二级分类"));//二级分类(子分类)
  891. setXRLabelData(xrTa_ParticleSizeTable.Rows[2].Cells[2], GetlanguageData("dev_quantity", "数量"));//数量
  892. setXRLabelData(xrTa_ParticleSizeTable.Rows[0].Cells[0], "颗粒尺寸分析结果");//颗粒尺寸分析结果
  893. setXRLabelData(xrTa_ParticleSizeTable.Rows[1].Cells[0], GetlanguageData("dev_dimensiontable_2", "尺寸计算基于"));//尺寸计算基于:
  894. //dev_classify.Text = "分类";
  895. xrTa_ParticleSizeTable.Rows[2].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[0].Font.Size);
  896. //dev_subdivision.Text = "子分类";
  897. xrTa_ParticleSizeTable.Rows[2].Cells[1].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[1].Font.Size);
  898. //dev_quantity.Text = "数量";
  899. xrTa_ParticleSizeTable.Rows[2].Cells[2].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[2].Cells[2].Font.Size);
  900. for (int a = 0; a < CompositeData[0].Columns.Count; a++)
  901. {
  902. xrTa_ParticleSizeTable.Rows[2].Cells[a + 3].Text = CompositeData[0].Rows[0]["c" + (a + 1)].ToString();
  903. }
  904. xrTa_ParticleSizeTable.Rows[1].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
  905. xrTa_ParticleSizeTable.Rows[1].Cells[0].Text = xrTa_ParticleSizeTable.Rows[1].Cells[0].Text + ComputeModeName + "(μm)";
  906. xrTa_ParticleSizeTable.Rows[1].Cells[0].Font = new Font(Schriftart_chinese, xrTa_ParticleSizeTable.Rows[1].Cells[0].Font.Size);
  907. for (int i = 0; i < CompositeData[1].Rows.Count; i++)
  908. {
  909. XRTableRow row = new XRTableRow();
  910. XRTableCell tCell_Class = new XRTableCell();
  911. XRTableCell tCell_Name = new XRTableCell();
  912. XRTableCell tCell_total = new XRTableCell();
  913. XRTableCell tCell_size_1 = new XRTableCell();
  914. XRTableCell tCell_size_2 = new XRTableCell();
  915. XRTableCell tCell_size_3 = new XRTableCell();
  916. XRTableCell tCell_size_4 = new XRTableCell();
  917. XRTableCell tCell_size_5 = new XRTableCell();
  918. XRTableCell tCell_size_6 = new XRTableCell();
  919. XRTableCell tCell_size_7 = new XRTableCell();
  920. tCell_Class.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[0].WidthF;
  921. tCell_Name.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[1].WidthF;
  922. tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[2].WidthF;
  923. tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[3].WidthF;
  924. tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[4].WidthF;
  925. tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[5].WidthF;
  926. tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[6].WidthF;
  927. tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[7].WidthF;
  928. tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF;
  929. tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[9].WidthF;
  930. XRTableCellData(row, tCell_Class, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Class");
  931. XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name");
  932. XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total");
  933. XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1");
  934. XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2");
  935. XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3");
  936. XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4");
  937. XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5");
  938. XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6");
  939. XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7");
  940. xrTa_ParticleSizeTable.Rows.Add(row);
  941. }
  942. this.Detail.Controls.Add(xrTa_ParticleSizeTable);
  943. float fl = xrPageBreak1.LocationF.Y + 20;
  944. xrTa_ParticleSizeTable.LocationF = new PointF(10f, fl);
  945. XRTable xrTable3 = particleSizeTableCreation.add_particleSizeS_Below7_end();
  946. xrTable3.LocationF = new PointF(10f, xrTa_ParticleSizeTable.LocationF.Y + xrTa_ParticleSizeTable.HeightF);
  947. List<int> vs = new List<int>();
  948. int total = 0;
  949. for (int i = 0; i < surface_dt2.Rows.Count; i++)
  950. {
  951. for (int a = 4; a < surface_dt2.Columns.Count; a++)
  952. {
  953. if (surface_dt2.Rows[i][a] != null)
  954. {
  955. bool isNumeric = double.TryParse(surface_dt2.Rows[i][a].ToString(), out double result);
  956. if (isNumeric)
  957. {
  958. vs.Add(Convert.ToInt32(result));
  959. total = total + Convert.ToInt32(result);
  960. }
  961. }
  962. }
  963. }
  964. if (vs.Count < 7)
  965. {
  966. for (int i = 0; i < 7; i++)
  967. {
  968. vs.Add(0);
  969. }
  970. }
  971. setXRLabelData(xrTable3.Rows[0].Cells[0], GetlanguageData("dev_total", "总数量"));
  972. //xrTable3.Rows[0].Cells[0].Text = "总数量";
  973. xrTable3.Rows[0].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  974. xrTable3.Rows[0].Cells[1].Text = total.ToString();
  975. xrTable3.Rows[0].Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  976. xrTable3.Rows[0].Cells[2].Text = vs[0].ToString();
  977. xrTable3.Rows[0].Cells[2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  978. xrTable3.Rows[0].Cells[3].Text = vs[1].ToString();
  979. xrTable3.Rows[0].Cells[3].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  980. xrTable3.Rows[0].Cells[4].Text = vs[2].ToString();
  981. xrTable3.Rows[0].Cells[4].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  982. xrTable3.Rows[0].Cells[5].Text = vs[3].ToString();
  983. xrTable3.Rows[0].Cells[5].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  984. xrTable3.Rows[0].Cells[6].Text = vs[4].ToString();
  985. xrTable3.Rows[0].Cells[6].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  986. xrTable3.Rows[0].Cells[7].Text = vs[5].ToString();
  987. xrTable3.Rows[0].Cells[7].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  988. xrTable3.Rows[0].Cells[8].Text = vs[6].ToString();
  989. xrTable3.Rows[0].Cells[8].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  990. NeueStartposition = xrTable3.LocationF.Y + xrTable3.SizeF.Height + 1;
  991. this.Detail.Controls.Add(xrTable3);
  992. }
  993. /// <summary>
  994. /// 优先级排序
  995. /// </summary>
  996. /// <param name="data"></param>
  997. /// <param name="field"></param>
  998. /// <returns></returns>
  999. private DataTable REORDER(DataTable data,string field)
  1000. {
  1001. DataTable dataTable = data.Clone();
  1002. List<int> vs = new List<int>();
  1003. for (int i=0;i< data.Rows.Count;i++)
  1004. {
  1005. if (TemplateClass.list_str_MainPriority_Serial.Count!=0)
  1006. {
  1007. for (int a = 0; a < TemplateClass.list_str_MainPriority_Serial.Count; a++)
  1008. {
  1009. if (data.Rows[i][field].ToString() == TemplateClass.list_str_MainPriority_Serial[a])
  1010. {
  1011. dataTable.Rows.Add(data.Rows[i].ItemArray);
  1012. break;
  1013. }
  1014. }
  1015. }
  1016. else
  1017. {
  1018. dataTable.Rows.Add(data.Rows[i].ItemArray);
  1019. }
  1020. }
  1021. DataTable dt = dataTable.Clone();
  1022. for (int i=0;i< dataTable.Rows.Count;i++)
  1023. {
  1024. if (dataTable.Rows[i]["Name"].ToString()!="")
  1025. {
  1026. dt.Rows.Add(dataTable.Rows[i].ItemArray);
  1027. }
  1028. }
  1029. return dt.Copy();
  1030. }
  1031. /// <summary>
  1032. /// 颗粒尺寸分析表
  1033. /// </summary>
  1034. /// <param name="a_pieSeriesClass">大分类</param>
  1035. /// <param name="a_pieSeries">小分类</param>
  1036. public void setParticleSizeTable(c_TemplateClass m_mbszclass)
  1037. {
  1038. //if (m_ReportApp.m_RptConfigFile.Systype != OTS_SysType_ID.IncA)
  1039. xrPageBreak1.Visible = true;
  1040. ParticleAnalysis particleList = new ParticleAnalysis();
  1041. DataTable statisticalAuantity = new DataTable();
  1042. List<DataTable> CompositeData = particleList.GetClassificationConsolidationTable(m_otsreport_export,basicData,out statisticalAuantity);
  1043. DataTable classData = particleList.GetLargeClassification(m_otsreport_export,basicData);
  1044. DataTable subdivdeData = particleList.GetSubClassification(basicData);
  1045. if (m_mbszclass.M_VDA19.IsVDA19)
  1046. {
  1047. add_Set_VDA19_TableS(CompositeData, statisticalAuantity);
  1048. }
  1049. else
  1050. {
  1051. if (basicData.GetParticlesizeTable().Count > 7)
  1052. {
  1053. if (CompositeData[1].Rows.Count > 0)
  1054. {
  1055. if (basicData.GetIsThereAMajorClassification())
  1056. {
  1057. add_Particle_size_table_multi_element(CompositeData, statisticalAuantity);
  1058. }
  1059. else
  1060. {
  1061. add_SetTable(CompositeData, statisticalAuantity);
  1062. }
  1063. }
  1064. }
  1065. else
  1066. {
  1067. if (CompositeData[1].Rows.Count > 0)
  1068. {
  1069. if (basicData.GetIsThereAMajorClassification())
  1070. {
  1071. add_ParticleList_Below7(CompositeData, statisticalAuantity);
  1072. }
  1073. else
  1074. {
  1075. add_ParticleList_Below7_NoGrouping(CompositeData, statisticalAuantity);
  1076. }
  1077. }
  1078. }
  1079. }
  1080. #region 插入数据
  1081. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsddt)
  1082. {
  1083. HistogramChart(particleList, basicData);
  1084. }
  1085. if (m_mbszclass.M_KLFXJG.b_ck_klcc_dfl || m_mbszclass.M_KLFXJG.b_ck_klcc_xfl)
  1086. {
  1087. XRPageBreak();
  1088. }
  1089. xrChart_ParticelSizeCalss.Visible = false;
  1090. ViewType viewType;
  1091. DefaultBoolean VisDefaultBoolean;
  1092. string Pat;
  1093. string CPat;
  1094. if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection==0)
  1095. {
  1096. viewType = ViewType.Pie;
  1097. Pat = "{A}";
  1098. CPat = "{A}";
  1099. VisDefaultBoolean = DefaultBoolean.True;
  1100. }
  1101. else if(m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 1)
  1102. {
  1103. viewType = ViewType.Bar;
  1104. Pat = "{V}";
  1105. CPat = "{V}";
  1106. VisDefaultBoolean = DefaultBoolean.False;
  1107. }
  1108. else /*if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 2)*/
  1109. {
  1110. viewType = ViewType.Line;
  1111. Pat = "{V}";
  1112. CPat = "{V}";
  1113. VisDefaultBoolean = DefaultBoolean.False;
  1114. }
  1115. #region 大分类chart图
  1116. if (m_mbszclass.M_KLFXJG.b_ck_klcc_dfl && classData.Rows.Count>0)
  1117. {
  1118. xrChart_ParticelSizeCalss.Visible = true;
  1119. xrLabel_size_IconQuestion_Class.Visible = true;
  1120. xrLabel_size_IconQuestion_Class.LocationF = new PointF(xrLabel_size_IconQuestion_Class.LocationF.X, NeueStartposition);
  1121. NeueStartposition = xrLabel_size_IconQuestion_Class.LocationF.Y + xrLabel_size_IconQuestion_Class.SizeF.Height + 10;
  1122. // 实例化饼图对象
  1123. Series pieSeriesClass = new Series("尺寸分类", viewType);
  1124. for (int i=0;i< classData.Rows.Count;i++)
  1125. {
  1126. string name = classData.Rows[i]["Class"].ToString();
  1127. double Cunt = Convert.ToDouble(classData.Rows[i]["total"]);
  1128. pieSeriesClass.Points.Add(new SeriesPoint(name, Cunt));
  1129. }
  1130. pieSeriesClass.LabelsVisibility = DefaultBoolean.True;
  1131. pieSeriesClass.Label.TextPattern = Pat;
  1132. if(m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 0)
  1133. {
  1134. pieSeriesClass.LabelsVisibility = DefaultBoolean.False;
  1135. }
  1136. xrChart_ParticelSizeCalss.Series.Add(pieSeriesClass);
  1137. xrChart_ParticelSizeCalss.Legend.Visibility = VisDefaultBoolean;
  1138. xrChart_ParticelSizeCalss.LocationF = new PointF(30f, NeueStartposition);
  1139. NeueStartposition = xrChart_ParticelSizeCalss.LocationF.Y + xrChart_ParticelSizeCalss.SizeF.Height+1 ;
  1140. }
  1141. #endregion
  1142. #region 细分chart图
  1143. xrChart_ParticelSizeSubdivision.Visible = false;
  1144. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xfl && subdivdeData.Rows.Count>0)
  1145. {
  1146. xrChart_ParticelSizeSubdivision.Visible = true;
  1147. xrLabel_size_IconQuestion_Subdivision.Visible = true;
  1148. xrLabel_size_IconQuestion_Subdivision.LocationF = new PointF(xrLabel_size_IconQuestion_Subdivision.LocationF.X, NeueStartposition);
  1149. NeueStartposition = xrLabel_size_IconQuestion_Subdivision.LocationF.Y + xrLabel_size_IconQuestion_Subdivision.SizeF.Height + 1;
  1150. Series pieSeries = new Series("颗粒尺寸细化分类", viewType);
  1151. for (int i = 0; i < subdivdeData.Rows.Count; i++)
  1152. {
  1153. string name = subdivdeData.Rows[i]["Name"].ToString();
  1154. double Cunt = Convert.ToDouble(subdivdeData.Rows[i]["total"]);
  1155. pieSeries.Points.Add(new SeriesPoint(name, Cunt));
  1156. }
  1157. pieSeries.LabelsVisibility = DefaultBoolean.True;
  1158. pieSeries.Label.TextPattern = CPat;
  1159. if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 0)
  1160. {
  1161. pieSeries.LabelsVisibility = DefaultBoolean.False;
  1162. }
  1163. xrChart_ParticelSizeSubdivision.Series.Add(pieSeries);
  1164. xrChart_ParticelSizeSubdivision.Legend.Visibility = VisDefaultBoolean;
  1165. xrChart_ParticelSizeSubdivision.LocationF = new PointF(30f, NeueStartposition);
  1166. NeueStartposition = xrChart_ParticelSizeSubdivision.LocationF.Y + xrChart_ParticelSizeSubdivision.SizeF.Height + 10;
  1167. }
  1168. #endregion
  1169. #endregion
  1170. }
  1171. private void HistogramChart(ParticleAnalysis particleList, BasicData basicData)
  1172. {
  1173. XRPageBreak();
  1174. List<Series> seriesList = new List<Series>();
  1175. DataTable dataTable = particleList.GetSubClassification(basicData);
  1176. DataTable TypeRange = particleList.TypeRange(TemplateClass, m_otsreport_export);
  1177. if(dataTable.Rows.Count==0)
  1178. {
  1179. return;
  1180. }
  1181. xrLabel1.Visible = true;
  1182. xrChart1.Visible = true;
  1183. DataTable dt = new DataTable();
  1184. dt.Columns.Add("name");
  1185. dt.Columns.Add("range");
  1186. dt.Columns.Add("num");
  1187. for (int i = 0; i < dataTable.Rows.Count; i++)
  1188. {
  1189. for (int a = 0; a < TypeRange.Columns.Count; a++)
  1190. {
  1191. if (string.IsNullOrEmpty(TypeRange.Rows[0][a].ToString()))
  1192. continue;
  1193. DataRow dr = dt.NewRow();
  1194. dr["name"] = subscript.Getsubscriptstring(dataTable.Rows[i]["Name"].ToString());
  1195. dr["range"] = TypeRange.Rows[0][a];
  1196. if (double.TryParse(dataTable.Rows[i]["c" + (a+1).ToString()].ToString(), out double result))
  1197. {
  1198. dr["num"] = result;
  1199. }
  1200. else
  1201. {
  1202. dr["num"] = 0;
  1203. }
  1204. dt.Rows.Add(dr);
  1205. }
  1206. }
  1207. foreach (DataRow dr in dt.DefaultView.ToTable(true, "name").Rows)
  1208. {
  1209. Series s = new Series(dr["name"].ToString(), ViewType.StackedBar)
  1210. {
  1211. LegendTextPattern = dr["name"].ToString(),
  1212. ArgumentScaleType = ScaleType.Qualitative,
  1213. };
  1214. foreach (DataRow drl in dt.Select("name='" + dr["name"].ToString() + "'"))
  1215. s.Points.Add(new SeriesPoint(drl["range"].ToString(), int.Parse(drl["num"].ToString())));
  1216. s.LabelsVisibility = DefaultBoolean.False;
  1217. seriesList.Add(s);
  1218. }
  1219. foreach (Series sr in seriesList.ToArray())
  1220. xrChart1.Series.Add(sr);
  1221. ((XYDiagram)xrChart1.Diagram).AxisY.Title.Text = "";
  1222. ((XYDiagram)xrChart1.Diagram).AxisX.Title.Text = "";
  1223. ((XYDiagram)xrChart1.Diagram).AxisY.Title.Visibility = DefaultBoolean.True;
  1224. ((XYDiagram)xrChart1.Diagram).AxisX.Title.Visibility = DefaultBoolean.True;
  1225. ((XYDiagram)xrChart1.Diagram).AxisY.Title.Font = new Font("Tahoma", 9);
  1226. ((XYDiagram)xrChart1.Diagram).AxisX.Title.Font = new Font("Tahoma", 9);
  1227. ((XYDiagram)xrChart1.Diagram).AxisY.Title.Alignment = StringAlignment.Far;
  1228. ((XYDiagram)xrChart1.Diagram).AxisX.Title.Alignment = StringAlignment.Far;
  1229. xrLabel1.LocationF = new PointF(xrLabel1.LocationF.X, NeueStartposition);
  1230. NeueStartposition = xrLabel1.LocationF.Y + xrLabel1.SizeF.Height ;
  1231. xrChart1.LocationF = new PointF(xrChart1.LocationF.X, NeueStartposition);
  1232. NeueStartposition = xrChart1.LocationF.Y + xrChart1.SizeF.Height + 20;
  1233. }
  1234. /// <summary>
  1235. /// 添加元素分析表格式并填充数据(大于7个元素种类的表格显示)
  1236. /// </summary>
  1237. private void Add_and_create_element_analysis_table_multi_element(List<DataTable> a_datas)
  1238. {
  1239. ElementAnalysisTableCreation elementAnalysisTableCreation = new ElementAnalysisTableCreation();
  1240. XRTable xRTable = elementAnalysisTableCreation.add_ElementListS();
  1241. //元素分析表
  1242. setXRLabelData(xRTable.Rows[0].Cells[0], GetlanguageData("xrcellelementarea", "元素分析表"));//元素分析表表头
  1243. setXRLabelData(xRTable.Rows[1].Cells[0], GetlanguageData("xrcellelementarea_details", "Reported average chemical composition (w %), area(μ m^2)"));//详情
  1244. setXRLabelData(xRTable.Rows[2].Cells[0], GetlanguageData("xrcell_element_classify", "分类"));//分类
  1245. setXRLabelData(xRTable.Rows[2].Cells[1], GetlanguageData("xrcell_element_subdivision", "二级分类"));//细分
  1246. setXRLabelData(xRTable.Rows[2].Cells[2], GetlanguageData("xrcell_element_area", "面积"));//面积
  1247. setXRLabelData(xRTable.Rows[2].Cells[3], a_datas[0].Rows[0][4].ToString());
  1248. setXRLabelData(xRTable.Rows[2].Cells[4], a_datas[0].Rows[0][5].ToString());
  1249. setXRLabelData(xRTable.Rows[2].Cells[5], a_datas[0].Rows[0][6].ToString());
  1250. setXRLabelData(xRTable.Rows[2].Cells[6], a_datas[0].Rows[0][7].ToString());
  1251. setXRLabelData(xRTable.Rows[2].Cells[7], a_datas[0].Rows[0][8].ToString());
  1252. setXRLabelData(xRTable.Rows[2].Cells[8], a_datas[0].Rows[0][9].ToString());
  1253. setXRLabelData(xRTable.Rows[2].Cells[9], a_datas[0].Rows[0][10].ToString());
  1254. setXRLabelData(xRTable.Rows[2].Cells[10], a_datas[0].Rows[0][11].ToString());
  1255. setXRLabelData(xRTable.Rows[2].Cells[11], a_datas[0].Rows[0][12].ToString());
  1256. setXRLabelData(xRTable.Rows[2].Cells[12], a_datas[0].Rows[0][13].ToString());
  1257. List<List<ElementalAnalysisDEVData>> list_ElementalAnalysisData = new List<List<ElementalAnalysisDEVData>>();
  1258. for (int i = 0; i < a_datas[1].Rows.Count; i++)
  1259. {
  1260. double quantity = 0;
  1261. for (int a = 4; a < 12; a++)
  1262. {
  1263. if (a_datas[1].Rows[i][a].ToString() != "")
  1264. {
  1265. if (double.TryParse(a_datas[1].Rows[i][a].ToString(), out double number))
  1266. {
  1267. quantity = quantity + number;
  1268. }
  1269. }
  1270. }
  1271. list_ElementalAnalysisData.Add(set_ElementalAnalysis(subscript.Getsubscriptstring(a_datas[1].Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(a_datas[1].Rows[i]["Name"].ToString()), a_datas[1].Rows[i]["Area"].ToString(),
  1272. a_datas[1].Rows[i][4].ToString(), a_datas[1].Rows[i][5].ToString(), a_datas[1].Rows[i][6].ToString(), a_datas[1].Rows[i][7].ToString(), a_datas[1].Rows[i][8].ToString(),
  1273. a_datas[1].Rows[i][9].ToString(), a_datas[1].Rows[i][10].ToString(), a_datas[1].Rows[i][11].ToString(), a_datas[1].Rows[i][12].ToString(), a_datas[1].Rows[i][13].ToString()));
  1274. }
  1275. for (int i = 0; i < a_datas[1].Rows.Count; i++)
  1276. {
  1277. XRTableRow row = new XRTableRow();
  1278. XRTableCell tCell_classify = new XRTableCell();
  1279. XRTableCell tCell_subdivision = new XRTableCell();
  1280. XRTableCell tCell_area = new XRTableCell();
  1281. XRTableCell tCell_s1 = new XRTableCell();
  1282. XRTableCell tCell_s2 = new XRTableCell();
  1283. XRTableCell tCell_s3 = new XRTableCell();
  1284. XRTableCell tCell_s4 = new XRTableCell();
  1285. XRTableCell tCell_s5 = new XRTableCell();
  1286. XRTableCell tCell_s6 = new XRTableCell();
  1287. XRTableCell tCell_s7 = new XRTableCell();
  1288. XRTableCell tCell_s8 = new XRTableCell();
  1289. XRTableCell tCell_s9 = new XRTableCell();
  1290. XRTableCell tCell_s10 = new XRTableCell();
  1291. tCell_classify.WidthF = xRTable.Rows[2].Cells[0].WidthF;
  1292. tCell_subdivision.WidthF = xRTable.Rows[2].Cells[1].WidthF;
  1293. tCell_area.WidthF = xRTable.Rows[2].Cells[2].WidthF;
  1294. tCell_s1.WidthF = xRTable.Rows[2].Cells[3].WidthF;
  1295. tCell_s2.WidthF = xRTable.Rows[2].Cells[4].WidthF;
  1296. tCell_s3.WidthF = xRTable.Rows[2].Cells[5].WidthF;
  1297. tCell_s4.WidthF = xRTable.Rows[2].Cells[6].WidthF;
  1298. tCell_s5.WidthF = xRTable.Rows[2].Cells[7].WidthF;
  1299. tCell_s6.WidthF = xRTable.Rows[2].Cells[8].WidthF;
  1300. tCell_s7.WidthF = xRTable.Rows[2].Cells[9].WidthF;
  1301. tCell_s8.WidthF = xRTable.Rows[2].Cells[10].WidthF;
  1302. tCell_s9.WidthF = xRTable.Rows[2].Cells[11].WidthF;
  1303. tCell_s10.WidthF = xRTable.Rows[2].Cells[12].WidthF;
  1304. XRTableCellData_ElementAnalysis(row, tCell_classify, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "classify");
  1305. XRTableCellData_ElementAnalysis(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "subdivision");
  1306. XRTableCellData_ElementAnalysis(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Area");
  1307. XRTableCellData_ElementAnalysis(row, tCell_s1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data1");
  1308. XRTableCellData_ElementAnalysis(row, tCell_s2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data2");
  1309. XRTableCellData_ElementAnalysis(row, tCell_s3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data3");
  1310. XRTableCellData_ElementAnalysis(row, tCell_s4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data4");
  1311. XRTableCellData_ElementAnalysis(row, tCell_s5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data5");
  1312. XRTableCellData_ElementAnalysis(row, tCell_s6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data6");
  1313. XRTableCellData_ElementAnalysis(row, tCell_s7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data7");
  1314. XRTableCellData_ElementAnalysis(row, tCell_s8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data8");
  1315. XRTableCellData_ElementAnalysis(row, tCell_s9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data9");
  1316. XRTableCellData_ElementAnalysis(row, tCell_s10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data10");
  1317. xRTable.Rows.Add(row);
  1318. }
  1319. xRTable.LocationF = new PointF(10f, NeueStartposition);
  1320. NeueStartposition = xRTable.LocationF.Y + xRTable.SizeF.Height + 10;
  1321. this.Detail.Controls.Add(xRTable);
  1322. }
  1323. /// <summary>
  1324. /// 添加创建元素分析表针对7钟元素以下的表格显示
  1325. /// </summary>
  1326. /// <param name="a_datas">大类表排序的数据</param>
  1327. private void Add_and_create_element_analysis_table(List<DataTable> a_datas)
  1328. {
  1329. ElementAnalysisTableCreation elementAnalysisTableCreation = new ElementAnalysisTableCreation();
  1330. XRTable xRTable = elementAnalysisTableCreation.add_ElementList();
  1331. //元素分析表
  1332. setXRLabelData(xRTable.Rows[0].Cells[0], GetlanguageData("xrcellelementarea", "元素分析表"));//元素分析表表头
  1333. setXRLabelData(xRTable.Rows[1].Cells[0], GetlanguageData("xrcellelementarea_details", "Reported average chemical composition (w %), area(μ m^2)"));//详情
  1334. setXRLabelData(xRTable.Rows[2].Cells[0], GetlanguageData("xrcell_element_classify", "分类"));//细分
  1335. setXRLabelData(xRTable.Rows[2].Cells[1], GetlanguageData("xrcell_element_area", "面积"));//面积
  1336. setXRLabelData(xRTable.Rows[2].Cells[2], a_datas[0].Rows[0][4].ToString());
  1337. setXRLabelData(xRTable.Rows[2].Cells[3], a_datas[0].Rows[0][5].ToString());
  1338. setXRLabelData(xRTable.Rows[2].Cells[4], a_datas[0].Rows[0][6].ToString());
  1339. setXRLabelData(xRTable.Rows[2].Cells[5], a_datas[0].Rows[0][7].ToString());
  1340. setXRLabelData(xRTable.Rows[2].Cells[6], a_datas[0].Rows[0][8].ToString());
  1341. setXRLabelData(xRTable.Rows[2].Cells[7], a_datas[0].Rows[0][9].ToString());
  1342. setXRLabelData(xRTable.Rows[2].Cells[8], a_datas[0].Rows[0][10].ToString());
  1343. setXRLabelData(xRTable.Rows[2].Cells[9], a_datas[0].Rows[0][11].ToString());
  1344. setXRLabelData(xRTable.Rows[2].Cells[10], a_datas[0].Rows[0][12].ToString());
  1345. setXRLabelData(xRTable.Rows[2].Cells[11], a_datas[0].Rows[0][13].ToString());
  1346. int ls = 0;
  1347. DataTable REORDER_data = REORDER(a_datas[1], "TypeId");
  1348. if (REORDER_data.Rows.Count == 0)
  1349. return;
  1350. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1351. {
  1352. if (REORDER_data.Rows[i]["Name"].ToString() == "" || REORDER_data.Rows[i]["Name"].ToString() == null)
  1353. {
  1354. ls = i;
  1355. continue;
  1356. }
  1357. }
  1358. List<List<ElementalAnalysisDEVData>> list_ElementalAnalysisData = new List<List<ElementalAnalysisDEVData>>();
  1359. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1360. {
  1361. double quantity = 0;
  1362. for (int a = 4; a < 14; a++)
  1363. {
  1364. if (REORDER_data.Rows[i][a].ToString() != "")
  1365. {
  1366. if (double.TryParse(REORDER_data.Rows[i][a].ToString(), out double number))
  1367. {
  1368. quantity = quantity + number;
  1369. }
  1370. }
  1371. }
  1372. list_ElementalAnalysisData.Add(set_ElementalAnalysisS(subscript.Getsubscriptstring(REORDER_data.Rows[i]["Name"].ToString()), REORDER_data.Rows[i]["Area"].ToString(),
  1373. REORDER_data.Rows[i][4].ToString(), REORDER_data.Rows[i][5].ToString(), REORDER_data.Rows[i][6].ToString(), REORDER_data.Rows[i][7].ToString(), REORDER_data.Rows[i][8].ToString(),
  1374. REORDER_data.Rows[i][9].ToString(), REORDER_data.Rows[i][10].ToString(), REORDER_data.Rows[i][11].ToString(), REORDER_data.Rows[i][12].ToString(), REORDER_data.Rows[i][13].ToString()));
  1375. }
  1376. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1377. {
  1378. XRTableRow row = new XRTableRow();
  1379. XRTableCell tCell_subdivision = new XRTableCell();
  1380. XRTableCell tCell_area = new XRTableCell();
  1381. XRTableCell tCell_s1 = new XRTableCell();
  1382. XRTableCell tCell_s2 = new XRTableCell();
  1383. XRTableCell tCell_s3 = new XRTableCell();
  1384. XRTableCell tCell_s4 = new XRTableCell();
  1385. XRTableCell tCell_s5 = new XRTableCell();
  1386. XRTableCell tCell_s6 = new XRTableCell();
  1387. XRTableCell tCell_s7 = new XRTableCell();
  1388. XRTableCell tCell_s8 = new XRTableCell();
  1389. XRTableCell tCell_s9 = new XRTableCell();
  1390. XRTableCell tCell_s10 = new XRTableCell();
  1391. tCell_subdivision.WidthF = xRTable.Rows[2].Cells[0].WidthF;
  1392. tCell_area.WidthF = xRTable.Rows[2].Cells[1].WidthF;
  1393. tCell_s1.WidthF = xRTable.Rows[2].Cells[2].WidthF;
  1394. tCell_s2.WidthF = xRTable.Rows[2].Cells[3].WidthF;
  1395. tCell_s3.WidthF = xRTable.Rows[2].Cells[4].WidthF;
  1396. tCell_s4.WidthF = xRTable.Rows[2].Cells[5].WidthF;
  1397. tCell_s5.WidthF = xRTable.Rows[2].Cells[6].WidthF;
  1398. tCell_s6.WidthF = xRTable.Rows[2].Cells[7].WidthF;
  1399. tCell_s7.WidthF = xRTable.Rows[2].Cells[8].WidthF;
  1400. tCell_s8.WidthF = xRTable.Rows[2].Cells[9].WidthF;
  1401. tCell_s9.WidthF = xRTable.Rows[2].Cells[10].WidthF;
  1402. tCell_s10.WidthF = xRTable.Rows[2].Cells[11].WidthF;
  1403. XRTableCellData_ElementAnalysis(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "subdivision");
  1404. XRTableCellData_ElementAnalysis(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Area");
  1405. XRTableCellData_ElementAnalysis(row, tCell_s1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data1");
  1406. XRTableCellData_ElementAnalysis(row, tCell_s2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data2");
  1407. XRTableCellData_ElementAnalysis(row, tCell_s3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data3");
  1408. XRTableCellData_ElementAnalysis(row, tCell_s4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data4");
  1409. XRTableCellData_ElementAnalysis(row, tCell_s5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data5");
  1410. XRTableCellData_ElementAnalysis(row, tCell_s6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data6");
  1411. XRTableCellData_ElementAnalysis(row, tCell_s7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data7");
  1412. XRTableCellData_ElementAnalysis(row, tCell_s8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data8");
  1413. XRTableCellData_ElementAnalysis(row, tCell_s9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data9");
  1414. XRTableCellData_ElementAnalysis(row, tCell_s10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Data10");
  1415. xRTable.Rows.Add(row);
  1416. }
  1417. xRTable.LocationF = new PointF(10f, NeueStartposition);
  1418. NeueStartposition = xRTable.LocationF.Y + xRTable.SizeF.Height + 10;
  1419. this.Detail.Controls.Add(xRTable);
  1420. }
  1421. /// <summary>
  1422. /// 设置插入元素分析表数据
  1423. /// </summary>
  1424. /// <param name="TemplateClass"></param>
  1425. public void setElementAvgGrid()
  1426. {
  1427. ElementalAnalysis elementalAnalysis = new ElementalAnalysis();
  1428. //判断元素数量是否大于7
  1429. if (basicData.GetIsThereAMajorClassification())
  1430. {
  1431. //得到元素分析数据列表
  1432. List<DataTable> datas = elementalAnalysis.GetElementData(basicData, m_otsreport_export);
  1433. //动态创建表格形式并填充数据
  1434. Add_and_create_element_analysis_table_multi_element(datas);
  1435. }
  1436. else
  1437. {
  1438. List<DataTable> datas = elementalAnalysis.GetElementData(basicData, m_otsreport_export);
  1439. Add_and_create_element_analysis_table(datas);
  1440. }
  1441. }
  1442. private XRTableRow AddInclusionIndex(string a_str)
  1443. {
  1444. XRTableRow row = new XRTableRow();
  1445. XRTableCell tCell_Name = new XRTableCell();
  1446. XRTableCell tCell_Text = new XRTableCell();
  1447. XRTableCell tCell_Notes = new XRTableCell();
  1448. string name = "";
  1449. string notes = "";
  1450. name = GetlanguageData("tcell_name", "特征/夹杂物指数");
  1451. notes = GetlanguageData("tcell_notes", "夹杂物指数=夹杂物面积/扫描面积*比例因子");
  1452. tCell_Name.Font = new Font(Schriftart_chinese, tCell_Name.Font.Size);
  1453. tCell_Name.Text = name;
  1454. tCell_Name.WidthF = 157.5f;
  1455. tCell_Text.Font = new Font(Schriftart_chinese, tCell_Text.Font.Size);
  1456. tCell_Text.Text = a_str;
  1457. tCell_Text.WidthF = 157.5f;
  1458. tCell_Notes.Font = new Font(Schriftart_chinese, tCell_Notes.Font.Size);
  1459. tCell_Notes.Text = notes;
  1460. tCell_Notes.WidthF = 315f;
  1461. row.Cells.Add(tCell_Name);
  1462. row.Cells.Add(tCell_Text);
  1463. row.Cells.Add(tCell_Notes);
  1464. row.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  1465. return row;
  1466. }
  1467. private void add_SetINCAtableS(DataTable a_data)
  1468. {
  1469. CreationOfInclusionAreaTable creationOfInclusionAreaTable = new CreationOfInclusionAreaTable();
  1470. XRTable xRTable = creationOfInclusionAreaTable.add_IncaDormS();
  1471. setXRLabelData(xRTable.Rows[0].Cells[0], GetlanguageData("xrcellareaofinclusion", "夹杂物面积比表"));//夹杂物面积比表表头
  1472. setXRLabelData(xRTable.Rows[1].Cells[0], GetlanguageData("xrcell_inclusion_classify", "分类"));//分类
  1473. setXRLabelData(xRTable.Rows[1].Cells[1], GetlanguageData("xrcell_inclusion_subdivision", "二级分类"));//细分类
  1474. setXRLabelData(xRTable.Rows[1].Cells[2], GetlanguageData("xrcell_inclusion_area", "面积(μm^2)"));//面积(μm^2)
  1475. setXRLabelData(xRTable.Rows[1].Cells[3], GetlanguageData("xrcell_inclusion_percentageofinca", "夹杂物比(%)"));//夹杂物比(%)
  1476. setXRLabelData(xRTable.Rows[1].Cells[4], GetlanguageData("xrcell_inclusion_fieldratio", "视场占比(%)"));//视场占比(%)
  1477. List<List<AreaOfInclusionDEVData>> list_AreaOfInclusion = new List<List<AreaOfInclusionDEVData>>();
  1478. for (int i = 0; i < a_data.Rows.Count; i++)
  1479. {
  1480. list_AreaOfInclusion.Add(set_AreaOfInclusion(subscript.Getsubscriptstring(a_data.Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(a_data.Rows[i]["subdivision"].ToString()), a_data.Rows[i]["Area"].ToString(), a_data.Rows[i]["inca_proportion"].ToString(),
  1481. a_data.Rows[i]["inca_FieldRatio"].ToString()));
  1482. }
  1483. double area_total = 0;
  1484. float Fieldratio = 0;
  1485. for (int i = 0; i < a_data.Rows.Count; i++)
  1486. {
  1487. XRTableRow row = new XRTableRow();
  1488. XRTableCell tCell_classify = new XRTableCell();
  1489. XRTableCell tCell_subdivision = new XRTableCell();
  1490. XRTableCell tCell_area = new XRTableCell();
  1491. XRTableCell tCell_inca_proportion = new XRTableCell();
  1492. XRTableCell tCell_inca_FieldRatio = new XRTableCell();
  1493. XRTableCellData_AreaOfInclusion(row, tCell_classify, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "classify");
  1494. XRTableCellData_AreaOfInclusion(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "subdivision");
  1495. XRTableCellData_AreaOfInclusion(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "Area");
  1496. XRTableCellData_AreaOfInclusion(row, tCell_inca_proportion, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_proportion");
  1497. XRTableCellData_AreaOfInclusion(row, tCell_inca_FieldRatio, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_FieldRatio");
  1498. xRTable.Rows.Add(row);
  1499. if (a_data.Rows[i]["Class"].ToString() != "")
  1500. {
  1501. area_total = area_total + Convert.ToDouble(a_data.Rows[i]["Area"]);
  1502. Fieldratio = Fieldratio+ float.Parse(a_data.Rows[i]["inca_FieldRatio"].ToString());
  1503. }
  1504. }
  1505. XRTableRow row_z = new XRTableRow();
  1506. XRTableCell tCell_classify_z = new XRTableCell();
  1507. tCell_classify_z.WidthF = 267.2f;
  1508. tCell_classify_z.Text = "统计";
  1509. XRTableCell tCell_area_z = new XRTableCell();
  1510. tCell_area_z.WidthF = 133.6f;
  1511. tCell_area_z.Text = area_total.ToString();
  1512. XRTableCell tCell_inca_proportion_z = new XRTableCell();
  1513. tCell_inca_proportion_z.WidthF = 133.6f;
  1514. tCell_inca_proportion_z.Text = "100%";
  1515. XRTableCell tCell_inca_FieldRatio_z = new XRTableCell();
  1516. tCell_inca_FieldRatio_z.WidthF = 133.6f;
  1517. tCell_inca_FieldRatio_z.Text = Fieldratio.ToString()+"%";
  1518. row_z.WidthF = 668f;
  1519. row_z.Borders = DevExpress.XtraPrinting.BorderSide.All;
  1520. row_z.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  1521. row_z.Controls.Add(tCell_classify_z);
  1522. row_z.Controls.Add(tCell_area_z);
  1523. row_z.Controls.Add(tCell_inca_proportion_z);
  1524. row_z.Controls.Add(tCell_inca_FieldRatio_z);
  1525. xRTable.Rows.Add(row_z);
  1526. xRTable.LocationF = new PointF(10f, NeueStartposition);
  1527. NeueStartposition = xRTable.LocationF.Y + xRTable.SizeF.Height;
  1528. this.Detail.Controls.Add(xRTable);
  1529. }
  1530. private void add_SetINCAtable(DataTable a_data)
  1531. {
  1532. CreationOfInclusionAreaTable creationOfInclusionAreaTable = new CreationOfInclusionAreaTable();
  1533. XRTable xRTable = creationOfInclusionAreaTable.add_IncaDorm();
  1534. setXRLabelData(xRTable.Rows[0].Cells[0], GetlanguageData("xrcellareaofinclusion", "夹杂物面积比表"));//夹杂物面积比表表头
  1535. setXRLabelData(xRTable.Rows[1].Cells[0], "分类");//细分类
  1536. setXRLabelData(xRTable.Rows[1].Cells[1], GetlanguageData("xrcell_inclusion_area", "面积(μm^2)"));//面积(μm^2)
  1537. setXRLabelData(xRTable.Rows[1].Cells[2], GetlanguageData("xrcell_inclusion_percentageofinca", "夹杂物比(%)"));//夹杂物比(%)
  1538. setXRLabelData(xRTable.Rows[1].Cells[3], GetlanguageData("xrcell_inclusion_fieldratio", "视场占比(%)"));//视场占比(%)
  1539. int ls = 0;
  1540. DataTable REORDER_data = a_data.Copy();
  1541. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1542. {
  1543. if (REORDER_data.Rows[i]["subdivision"].ToString() == "" || REORDER_data.Rows[i]["subdivision"].ToString() == null)
  1544. {
  1545. ls = i;
  1546. continue;
  1547. }
  1548. }
  1549. REORDER_data.Rows[ls].Delete();
  1550. REORDER_data.AcceptChanges();
  1551. List<List<AreaOfInclusionDEVData>> list_AreaOfInclusion = new List<List<AreaOfInclusionDEVData>>();
  1552. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1553. {
  1554. list_AreaOfInclusion.Add(set_AreaOfInclusion(subscript.Getsubscriptstring(REORDER_data.Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(REORDER_data.Rows[i]["subdivision"].ToString()), REORDER_data.Rows[i]["Area"].ToString(), REORDER_data.Rows[i]["inca_proportion"].ToString(),
  1555. REORDER_data.Rows[i]["inca_FieldRatio"].ToString()));
  1556. }
  1557. for (int i = 0; i < REORDER_data.Rows.Count; i++)
  1558. {
  1559. XRTableRow row = new XRTableRow();
  1560. XRTableCell tCell_subdivision = new XRTableCell();
  1561. XRTableCell tCell_area = new XRTableCell();
  1562. XRTableCell tCell_inca_proportion = new XRTableCell();
  1563. XRTableCell tCell_inca_FieldRatio = new XRTableCell();
  1564. XRTableCellData_AreaOfInclusion(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "subdivision");
  1565. XRTableCellData_AreaOfInclusion(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "Area");
  1566. XRTableCellData_AreaOfInclusion(row, tCell_inca_proportion, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_proportion");
  1567. XRTableCellData_AreaOfInclusion(row, tCell_inca_FieldRatio, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_FieldRatio");
  1568. xRTable.Rows.Add(row);
  1569. }
  1570. xRTable.LocationF = new PointF(10f, NeueStartposition);
  1571. NeueStartposition = xRTable.LocationF.Y + xRTable.SizeF.Height;
  1572. this.Detail.Controls.Add(xRTable);
  1573. }
  1574. /// <summary>
  1575. /// 设置插入夹杂物面积比表数据
  1576. /// </summary>
  1577. /// <param name="TemplateClass"></param>
  1578. public void setINCAtable()
  1579. {
  1580. InclusionProportion inclusionProportion = new InclusionProportion();
  1581. DataTable dt = inclusionProportion.GetINCAtable(basicData, FieldOfViewArea, TemplateClass);
  1582. if (basicData.GetIsThereAMajorClassification())
  1583. add_SetINCAtableS(dt);
  1584. else
  1585. add_SetINCAtable(dt);
  1586. }
  1587. public void XRPageBreak()
  1588. {
  1589. XRPageBreak xRPage = new XRPageBreak();
  1590. xRPage.Name = "kllb_Page";
  1591. xRPage.LocationF = new PointF(0, NeueStartposition);
  1592. this.Detail.Controls.Add(xRPage);
  1593. NeueStartposition = xRPage.LocationF.Y + xRPage.HeightF + 1;
  1594. }
  1595. /// <summary>
  1596. /// 设置插入夹杂物面积比图像
  1597. /// </summary>
  1598. /// <param name="TemplateClass"></param>
  1599. public void set_incaPIC_classify(c_TemplateClass m_mbszclass)
  1600. {
  1601. ViewType viewType;
  1602. DefaultBoolean VisDefaultBoolean;
  1603. string Pat;
  1604. string CPat;
  1605. if (m_mbszclass.M_KLFXJG.INCAGraphicSelection == 0)
  1606. {
  1607. viewType = ViewType.Pie;
  1608. Pat = "{A}";
  1609. CPat = "{A}";
  1610. VisDefaultBoolean = DefaultBoolean.True;
  1611. }
  1612. else if (m_mbszclass.M_KLFXJG.INCAGraphicSelection == 1)
  1613. {
  1614. viewType = ViewType.Bar;
  1615. Pat = "{V}";
  1616. CPat = "{V}";
  1617. VisDefaultBoolean = DefaultBoolean.False;
  1618. }
  1619. else /*if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 2)*/
  1620. {
  1621. viewType = ViewType.Line;
  1622. Pat = "{V}";
  1623. CPat = "{V}";
  1624. VisDefaultBoolean = DefaultBoolean.False;
  1625. }
  1626. if (m_mbszclass.M_KLFXJG.b_ck_klcc_dfl)
  1627. {
  1628. InclusionProportion inclusionProportion = new InclusionProportion();
  1629. DataTable data = inclusionProportion.Get_incaPIC_classify(dev_sczs_text.Text, TemplateClass, m_otsreport_export);
  1630. if (data.Rows.Count == 0)
  1631. {
  1632. return;
  1633. }
  1634. xrLabel_inca_pic_class.Visible = true;
  1635. xrLabel_inca_pic_class.LocationF = new PointF(xrLabel_inca_pic_class.LocationF.X, NeueStartposition);
  1636. NeueStartposition = xrLabel_inca_pic_class.LocationF.Y + xrLabel_inca_pic_class.SizeF.Height + 1;
  1637. for (int i = 0; i < data.Rows.Count; i++)
  1638. {
  1639. if (data.Rows[i]["Class"].ToString() == "Other")
  1640. {
  1641. data.Rows[i].Delete();
  1642. }
  1643. }
  1644. data.AcceptChanges();
  1645. DataView dv = data.DefaultView;
  1646. dv.Sort = "Cunt DESC";
  1647. DataTable dt_data = dv.ToTable();
  1648. for (int i = 0; i < dt_data.Rows.Count; i++)
  1649. {
  1650. dt_data.Rows[i]["Class"] = subscript.Getsubscriptstring(dt_data.Rows[i]["Class"].ToString());
  1651. }
  1652. // 实例化饼图对象
  1653. Series pieSeriesClass = new Series("夹杂物面积比分类", viewType);
  1654. for (int i = 0; i < dt_data.Rows.Count; i++)
  1655. {
  1656. string name = dt_data.Rows[i]["Class"].ToString();
  1657. double Cunt = Convert.ToDouble(dt_data.Rows[i]["Cunt"]);
  1658. pieSeriesClass.Points.Add(new SeriesPoint(name, Cunt));
  1659. }
  1660. pieSeriesClass.LabelsVisibility = DefaultBoolean.True;
  1661. pieSeriesClass.Label.TextPattern = Pat;
  1662. if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 0)
  1663. {
  1664. pieSeriesClass.LabelsVisibility = DefaultBoolean.False;
  1665. }
  1666. xrChart_incaClass.Series.Add(pieSeriesClass);
  1667. xrChart_incaClass.Legend.Visibility = VisDefaultBoolean;
  1668. xrChart_incaClass.Visible = true;
  1669. xrChart_incaClass.LocationF = new PointF(30f, NeueStartposition);
  1670. NeueStartposition = xrChart_incaClass.LocationF.Y + xrChart_incaClass.SizeF.Height + 1;
  1671. }
  1672. }
  1673. public void set_incaPIC_subdivision(c_TemplateClass m_mbszclass)
  1674. {
  1675. ViewType viewType;
  1676. DefaultBoolean VisDefaultBoolean;
  1677. string Pat;
  1678. string CPat;
  1679. if (m_mbszclass.M_KLFXJG.INCAGraphicSelection == 0)
  1680. {
  1681. viewType = ViewType.Pie;
  1682. Pat = "{A}";
  1683. CPat = "{A}";
  1684. VisDefaultBoolean = DefaultBoolean.True;
  1685. }
  1686. else if (m_mbszclass.M_KLFXJG.INCAGraphicSelection == 1)
  1687. {
  1688. viewType = ViewType.Bar;
  1689. Pat = "{V}";
  1690. CPat = "{V}";
  1691. VisDefaultBoolean = DefaultBoolean.False;
  1692. }
  1693. else /*if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 2)*/
  1694. {
  1695. viewType = ViewType.Line;
  1696. Pat = "{V}";
  1697. CPat = "{V}";
  1698. VisDefaultBoolean = DefaultBoolean.False;
  1699. }
  1700. if (m_mbszclass.M_KLFXJG.b_ck_klcc_xfl)
  1701. {
  1702. InclusionProportion inclusionProportion = new InclusionProportion();
  1703. DataTable data = inclusionProportion.Get_incaPIC_subdivision(TemplateClass, m_otsreport_export);
  1704. if (data.Rows.Count == 0)
  1705. {
  1706. return;
  1707. }
  1708. xrChart_incaSubdivision.Visible = true;
  1709. xrLabel_inca_pic_subdivision.Visible = true;
  1710. xrLabel_inca_pic_subdivision.LocationF = new PointF(xrLabel_inca_pic_subdivision.LocationF.X, NeueStartposition);
  1711. NeueStartposition = xrLabel_inca_pic_subdivision.LocationF.Y + xrLabel_inca_pic_subdivision.Height + 1;
  1712. for (int i = 0; i < data.Rows.Count; i++)
  1713. {
  1714. if (data.Rows[i]["TypeName"].ToString() == "Not Identified")
  1715. {
  1716. data.Rows[i].Delete();
  1717. }
  1718. }
  1719. data.AcceptChanges();
  1720. DataView dv = data.DefaultView;
  1721. dv.Sort = "con DESC";
  1722. DataTable dt_data = dv.ToTable();
  1723. for (int i = 0; i < dt_data.Rows.Count; i++)
  1724. {
  1725. dt_data.Rows[i]["TypeName"] = subscript.Getsubscriptstring(dt_data.Rows[i]["TypeName"].ToString());
  1726. dt_data.Rows[i]["GroupName"] = subscript.Getsubscriptstring(dt_data.Rows[i]["GroupName"].ToString());
  1727. }
  1728. // 实例化饼图对象
  1729. Series pieSeriesClass = new Series("夹杂物面积比细分类", viewType);
  1730. for (int i = 0; i < dt_data.Rows.Count; i++)
  1731. {
  1732. string name = dt_data.Rows[i]["TypeName"].ToString();
  1733. double Cunt = Convert.ToDouble(dt_data.Rows[i]["con"]);
  1734. pieSeriesClass.Points.Add(new SeriesPoint(name, Cunt));
  1735. }
  1736. pieSeriesClass.LabelsVisibility = DefaultBoolean.True;
  1737. pieSeriesClass.Label.TextPattern = Pat;
  1738. if (m_mbszclass.M_KLFXJG.ParticleSizeGraphicSelection == 0)
  1739. {
  1740. pieSeriesClass.LabelsVisibility = DefaultBoolean.False;
  1741. }
  1742. xrChart_incaSubdivision.Series.Add(pieSeriesClass);
  1743. xrChart_incaSubdivision.Legend.Visibility = VisDefaultBoolean;
  1744. xrChart_incaSubdivision.LocationF = new PointF(30f, NeueStartposition);
  1745. NeueStartposition = xrChart_incaSubdivision.LocationF.Y + xrChart_incaSubdivision.Height + 1;
  1746. }
  1747. }
  1748. public static Color FromHex(string hex)
  1749. {
  1750. hex = hex.Replace("#", ""); // 移除 # 前缀
  1751. byte a = 255; // 默认Alpha值为255(不透明)
  1752. byte r = Convert.ToByte(hex.Substring(0, 2), 16);
  1753. byte g = Convert.ToByte(hex.Substring(2, 2), 16);
  1754. byte b = Convert.ToByte(hex.Substring(4, 2), 16);
  1755. return Color.FromArgb(a, r, g, b);
  1756. }
  1757. /// <summary>
  1758. /// 三元图
  1759. /// </summary>
  1760. /// <param name="TemplateClass"></param>
  1761. public void InsertReportTemplateChart_Trianglediagram()
  1762. {
  1763. this.Detail.Controls.Add(add_label(GetlanguageData("dev_ternary_diagram", "三元图")));
  1764. List<Color> Color_list = new List<Color>();
  1765. Color_list.Add(FromHex("#0f4471"));
  1766. Color_list.Add(FromHex("#FFD700"));
  1767. Color_list.Add(FromHex("#ff5722"));
  1768. Color_list.Add(FromHex("#5628b4"));
  1769. Color_list.Add(FromHex("#20BF55"));
  1770. Color_list.Add(FromHex("#f23557"));
  1771. Color_list.Add(FromHex("#118df0"));
  1772. Color_list.Add(FromHex("#FF00FF"));
  1773. Color_list.Add(FromHex("#d3327b"));
  1774. Color_list.Add(FromHex("#ae318a"));
  1775. Color_list.Add(FromHex("#993090"));
  1776. Color_list.Add(FromHex("#6f3071"));
  1777. Color_list.Add(FromHex("#7711AF"));
  1778. Color_list.Add(FromHex("#CF77FF"));
  1779. Color_list.Add(FromHex("#AE004F"));
  1780. Color_list.Add(FromHex("#F35872"));
  1781. Color_list.Add(FromHex("#FA7729"));
  1782. Color_list.Add(FromHex("#FFC526"));
  1783. Color_list.Add(FromHex("#F8E71C"));
  1784. Color_list.Add(FromHex("#34ADAE"));
  1785. Color_list.Add(FromHex("#3DDFD2"));
  1786. Color_list.Add(FromHex("#A0FFFF"));
  1787. TernaryDiagram ternaryDiagram = new TernaryDiagram();
  1788. for (int i = 0; i < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count; i = i + 4)
  1789. {
  1790. var xRPicture = set_syt_pic_legend(Color_list, i, ternaryDiagram);
  1791. if (i < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count)
  1792. {
  1793. set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i], Color_list, new PointF(10f, NeueStartposition), ternaryDiagram);
  1794. }
  1795. if (i + 1 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count)
  1796. {
  1797. set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i + 1], Color_list, new PointF(343.8f, NeueStartposition), ternaryDiagram);
  1798. }
  1799. if (i + 2 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count)
  1800. {
  1801. set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i + 2], Color_list, new PointF(10f, NeueStartposition + 345), ternaryDiagram);
  1802. }
  1803. if (i + 3 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count)
  1804. {
  1805. set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i + 3], Color_list, new PointF(343.8f, NeueStartposition + 345), ternaryDiagram);
  1806. }
  1807. XRLine rLine = new XRLine();
  1808. rLine.SizeF = new SizeF(5f, 698.5f);
  1809. rLine.LineDirection = LineDirection.Vertical;
  1810. rLine.LocationF = new PointF(335f, NeueStartposition + 2);
  1811. this.Detail.Controls.Add(rLine);
  1812. XRLine rLine_level = new XRLine();
  1813. rLine_level.SizeF = new SizeF(668f, 5f);
  1814. rLine_level.LineDirection = LineDirection.Horizontal;
  1815. rLine_level.LocationF = new PointF(10f, NeueStartposition + 345);
  1816. this.Detail.Controls.Add(rLine_level);
  1817. XRPageBreak xRPage = new XRPageBreak();
  1818. xRPage.LocationF = new PointF(0, NeueStartposition + 850);
  1819. this.Detail.Controls.Add(xRPicture);
  1820. NeueStartposition = NeueStartposition + 870;
  1821. this.Detail.Controls.Add(xRPage);
  1822. }
  1823. }
  1824. /// <summary>
  1825. /// 颗粒列表
  1826. /// </summary>
  1827. /// <param name="TemplateClass"></param>
  1828. public void set_Particle_List_data()
  1829. {
  1830. ParticleList particleList = new ParticleList();
  1831. ParticleListCreation particleListCreation = new ParticleListCreation();
  1832. List<DataTable> datas = particleList.Get_dev_kllb_data(TemplateClass, m_otsreport_export, basicData,out List<DataTable> OutDt );
  1833. //DataTable dataTable = particleList.Get_dev_kllb_data(TemplateClass, m_otsreport_export, out DataTable data, out List<DataTable> ElementIcons);
  1834. FrameData = OutDt.Copy();
  1835. for (int i = 0; i < datas.Count; i++)
  1836. {
  1837. if (datas[i].Rows.Count == 0)
  1838. {
  1839. continue;
  1840. }
  1841. XRPageBreak();
  1842. XRPageBreak xRPage = new XRPageBreak();
  1843. xRPage.Name = "kllb_Page";
  1844. xRPage.LocationF = new PointF(0, NeueStartposition);
  1845. this.Detail.Controls.Add(xRPage);
  1846. //表头
  1847. XRTable Template = particleListCreation.CreateParticleListHeader(
  1848. "颗粒列表(" + datas[i].Rows[0]["GroupName"] + "组)",
  1849. "Selected particles based on:" + TemplateClass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + "(μm)",
  1850. Schriftart_chinese, NeueStartposition);
  1851. NeueStartposition = NeueStartposition + Template.SizeF.Height+25;
  1852. this.Detail.Controls.Add(Template);
  1853. for (int a = 0; a < datas[i].Rows.Count; a++)
  1854. {
  1855. XRTable table = particleListCreation.add_XRTable(Schriftart_chinese);
  1856. add_Particle_List(TemplateClass, datas[i], a, table);
  1857. }
  1858. NeueStartposition = NeueStartposition + 10;
  1859. }
  1860. }
  1861. /// <summary>
  1862. /// 颗粒列表 帧图
  1863. /// </summary>
  1864. /// <param name="TemplateClass"></param>
  1865. public void set_Particle_List_data_frame()
  1866. {
  1867. ParticleListCreation particleListCreation = new ParticleListCreation();
  1868. ParticleList particleList = new ParticleList();
  1869. //particleList.Get_dev_kllb_data_frame(TemplateClass, out List<DataTable> dt_pic, out List<List<DataTable>> listData, m_otsreport_export, FrameData);
  1870. particleList.Get_dev_kllb_data_frame_pic(TemplateClass, out DataTable dt_pic, out List<DataTable> listData, m_otsreport_export, FrameData);
  1871. for (int i = 0; i < listData.Count; i++)
  1872. {
  1873. for (int a = 0; a < listData[i].Rows.Count; a++)
  1874. {
  1875. listData[i].Rows[a]["Class"] = subscript.Getsubscriptstring(listData[i].Rows[a]["Class"].ToString());
  1876. }
  1877. }
  1878. for (int i = 0; i < dt_pic.Rows.Count; i++)
  1879. {
  1880. //分页符
  1881. XRPageBreak xRPage = new XRPageBreak();
  1882. xRPage.Name = "framePage_" + i.ToString();
  1883. xRPage.LocationF = new PointF(0, NeueStartposition);
  1884. NeueStartposition = NeueStartposition + 10;
  1885. this.Detail.Controls.Add(xRPage);
  1886. //表头
  1887. XRTable Template = particleListCreation.CreateParticleListHeader(GetlanguageData("dev_frame_diagram", "帧图") + dt_pic.Rows[i]["id"],
  1888. NeueStartposition, Schriftart_chinese);
  1889. this.Detail.Controls.Add(Template);
  1890. //图片
  1891. XRPictureBox xRPicture = new XRPictureBox();
  1892. xRPicture.Name = "frameName_" + i.ToString();
  1893. xRPicture.SizeF = new SizeF(688f, 485f);
  1894. xRPicture.ImageAlignment = DevExpress.XtraPrinting.ImageAlignment.MiddleCenter;
  1895. xRPicture.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze;
  1896. ImageSource imageSource = new ImageSource((Bitmap)dt_pic.Rows[i]["Field_pic"]);
  1897. xRPicture.ImageSource = imageSource;
  1898. xRPicture.LocationF = new PointF(0, NeueStartposition + Template.SizeF.Height);
  1899. xRPicture.Borders = DevExpress.XtraPrinting.BorderSide.All;
  1900. this.Detail.Controls.Add(xRPicture);
  1901. NeueStartposition = NeueStartposition + xRPicture.SizeF.Height + Template.SizeF.Height;
  1902. for (int a = 0; a < listData.Count; a++)
  1903. {
  1904. if (dt_pic.Rows[i]["id"].ToString() == listData[a].Rows[0]["FieldId"].ToString())
  1905. {
  1906. for (int b = 0; b < listData[a].Rows.Count; b++)
  1907. {
  1908. //数据表
  1909. XRTable xRTable = particleListCreation.add_XRTable_frame(Schriftart_chinese);
  1910. xRTable.Rows[0].Cells[0].Text = GetlanguageData("dev_image", "图像");
  1911. xRTable.Rows[0].Cells[0].Font = new Font(Schriftart_chinese, xRTable.Rows[0].Cells[0].Font.Size);
  1912. xRTable.Rows[0].Cells[1].Text = GetlanguageData("dev_class", "分类");
  1913. xRTable.Rows[0].Cells[1].Font = new Font(Schriftart_chinese, xRTable.Rows[0].Cells[1].Font.Size);
  1914. xRTable.Rows[0].Cells[2].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p1.ToString();
  1915. xRTable.Rows[0].Cells[3].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p2.ToString();
  1916. xRTable.Rows[1].Cells[1].Text = listData[a].Rows[b]["Class"].ToString();
  1917. xRTable.Rows[1].Cells[2].Text = listData[a].Rows[b]["pid"].ToString();
  1918. xRTable.Rows[1].Cells[3].Text = listData[a].Rows[b]["Size"].ToString();
  1919. for (int c = 1; c < 10; c++)
  1920. {
  1921. xRTable.Rows[2].Cells[c].Text = listData[a].Rows[b]["ColName" + (c).ToString()].ToString();
  1922. xRTable.Rows[3].Cells[c].Text = listData[a].Rows[b]["ColVal" + (c).ToString()].ToString();
  1923. }
  1924. xRTable.LocationF = new PointF(0, NeueStartposition);
  1925. XRPictureBox xRPicture1 = new XRPictureBox();
  1926. xRPicture1.ImageSource = new ImageSource((Bitmap)listData[a].Rows[b]["pic"]);
  1927. xRPicture1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze;
  1928. xRPicture1.SizeF = new SizeF(94, 70);
  1929. xRPicture1.LocationF = new PointF(0, NeueStartposition + 20);
  1930. this.Detail.Controls.Add(xRTable);
  1931. this.Detail.Controls.Add(xRPicture1);
  1932. NeueStartposition = NeueStartposition + xRTable.SizeF.Height + 1;
  1933. }
  1934. }
  1935. }
  1936. }
  1937. }
  1938. #endregion
  1939. private void setXRLabelData(XRLabel cell, string str)
  1940. {
  1941. cell.Text = str;
  1942. cell.Font = new Font(Schriftart_chinese, cell.Font.Size);
  1943. }
  1944. /// <summary>
  1945. /// 读取报告控件中英文
  1946. /// </summary>
  1947. /// <param name="strName"></param>
  1948. /// <param name="languageData"></param>
  1949. /// <returns></returns>
  1950. private string GetlanguageData(string strName,string TextName)
  1951. {
  1952. string str = TextName;
  1953. try
  1954. {
  1955. str = table[strName].ToString();
  1956. }
  1957. catch { }
  1958. return str;
  1959. }
  1960. #region 整理成DEV需要的数据格式
  1961. private void XRTableCellData(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List<ParticleSizeDEVData> switchDEVDatas, string cellName)
  1962. {
  1963. rTableCell.TextAlignment = textAlignment;
  1964. rTableCell.Font = new Font(typeface, rTableCell.Font.Size);
  1965. xR.Cells.Add(rTableCell);
  1966. rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName);
  1967. }
  1968. private void XRTableCellData_ElementAnalysis(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List<ElementalAnalysisDEVData> switchDEVDatas, string cellName)
  1969. {
  1970. rTableCell.TextAlignment = textAlignment;
  1971. rTableCell.Font = new Font(typeface, rTableCell.Font.Size);
  1972. xR.Cells.Add(rTableCell);
  1973. rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName);
  1974. }
  1975. private void XRTableCellData_AreaOfInclusion(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List<AreaOfInclusionDEVData> switchDEVDatas, string cellName)
  1976. {
  1977. rTableCell.TextAlignment = textAlignment;
  1978. rTableCell.Font = new Font(typeface, rTableCell.Font.Size);
  1979. xR.Cells.Add(rTableCell);
  1980. rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName);
  1981. }
  1982. /// <summary>
  1983. /// 颗粒尺寸表向list中插入数据
  1984. /// </summary>
  1985. /// <param name="Class"></param>
  1986. /// <param name="Name"></param>
  1987. /// <param name="total"></param>
  1988. /// <param name="size_1"></param>
  1989. /// <param name="size_2"></param>
  1990. /// <param name="size_3"></param>
  1991. /// <param name="size_4"></param>
  1992. /// <param name="size_5"></param>
  1993. /// <param name="size_6"></param>
  1994. /// <param name="size_7"></param>
  1995. /// <returns></returns>
  1996. private List<ParticleSizeDEVData> switch_ParticleSize(string Class, string Name,
  1997. string total, string size_1, string size_2, string size_3, string size_4, string size_5,
  1998. string size_6, string size_7, string size_8, string size_9, string size_10, string size_11
  1999. , string size_12)
  2000. {
  2001. List<ParticleSizeDEVData> oTS_DEVs = new List<ParticleSizeDEVData>();
  2002. oTS_DEVs.Add(new ParticleSizeDEVData
  2003. {
  2004. size_total = total,
  2005. size_Class = Class,
  2006. size_Name = Name,
  2007. size_1 = size_1,
  2008. size_2 = size_2,
  2009. size_3 = size_3,
  2010. size_4 = size_4,
  2011. size_5 = size_5,
  2012. size_6 = size_6,
  2013. size_7 = size_7,
  2014. size_8 = size_8,
  2015. size_9 = size_9,
  2016. size_10 = size_10,
  2017. size_11 = size_11,
  2018. size_12 = size_12
  2019. });
  2020. return oTS_DEVs;
  2021. }
  2022. /// <summary>
  2023. /// 元素分析表向list中插入数据
  2024. /// </summary>
  2025. /// <param name="classify">分组名称</param>
  2026. /// <param name="subdivision">颗粒条目名称</param>
  2027. /// <param name="area">面积</param>
  2028. /// <param name="s1">数据1</param>
  2029. /// <param name="s2">数据2</param>
  2030. /// <param name="s3">数据3</param>
  2031. /// <param name="s4">数据4</param>
  2032. /// <param name="s5">数据5</param>
  2033. /// <param name="s6">数据6</param>
  2034. /// <param name="s7">数据7</param>
  2035. /// <param name="s8">数据8</param>
  2036. /// <param name="s9">数据9</param>
  2037. /// <param name="s10">数据10</param>
  2038. /// <returns></returns>
  2039. private List<ElementalAnalysisDEVData> set_ElementalAnalysis(string classify, string subdivision, string area, string s1, string s2, string s3, string s4, string s5, string s6, string s7, string s8, string s9, string s10)
  2040. {
  2041. List<ElementalAnalysisDEVData> oTS_DEVs = new List<ElementalAnalysisDEVData>();
  2042. oTS_DEVs.Add(new ElementalAnalysisDEVData
  2043. {
  2044. classify = classify,
  2045. subdivision = subdivision,
  2046. Area = area,
  2047. Data1 = s1,
  2048. Data2 = s2,
  2049. Data3 = s3,
  2050. Data4 = s4,
  2051. Data5 = s5,
  2052. Data6 = s6,
  2053. Data7 = s7,
  2054. Data8 = s8,
  2055. Data9 = s9,
  2056. Data10 = s10
  2057. });
  2058. return oTS_DEVs;
  2059. }
  2060. private List<ElementalAnalysisDEVData> set_ElementalAnalysisS( string subdivision, string area, string s1, string s2, string s3, string s4, string s5, string s6, string s7, string s8, string s9, string s10)
  2061. {
  2062. List<ElementalAnalysisDEVData> oTS_DEVs = new List<ElementalAnalysisDEVData>();
  2063. oTS_DEVs.Add(new ElementalAnalysisDEVData
  2064. {
  2065. subdivision = subdivision,
  2066. Area = area,
  2067. Data1 = s1,
  2068. Data2 = s2,
  2069. Data3 = s3,
  2070. Data4 = s4,
  2071. Data5 = s5,
  2072. Data6 = s6,
  2073. Data7 = s7,
  2074. Data8 = s8,
  2075. Data9 = s9,
  2076. Data10 = s10
  2077. });
  2078. return oTS_DEVs;
  2079. }
  2080. /// <summary>
  2081. /// 夹杂物分析表(清洁度不需要)
  2082. /// </summary>
  2083. /// <param name="classify"></param>
  2084. /// <param name="subdivision"></param>
  2085. /// <param name="Area"></param>
  2086. /// <param name="inca_proportion"></param>
  2087. /// <param name="inca_FieldRatio"></param>
  2088. /// <returns></returns>
  2089. private List<AreaOfInclusionDEVData> set_AreaOfInclusion(string classify, string subdivision, string Area, string inca_proportion, string inca_FieldRatio)
  2090. {
  2091. List<AreaOfInclusionDEVData> oTS_DEVs = new List<AreaOfInclusionDEVData>();
  2092. oTS_DEVs.Add(new AreaOfInclusionDEVData
  2093. {
  2094. classify = classify,
  2095. subdivision = subdivision,
  2096. Area = Area,
  2097. inca_proportion = inca_proportion,
  2098. inca_FieldRatio = inca_FieldRatio
  2099. });
  2100. return oTS_DEVs;
  2101. }
  2102. #endregion
  2103. #region 三元相图数据
  2104. /// <summary>
  2105. /// 动态生成加载三元图图片加分页符
  2106. /// </summary>
  2107. /// <param name="syt_pic_name"></param>
  2108. /// <param name="syt_Page_name"></param>
  2109. /// <param name="TemplateClass"></param>
  2110. /// <param name="index"></param>
  2111. private void set_syt_pic(c_TemplateClass TemplateClass, int index, List<Color> Color_list, PointF position, TernaryDiagram ternaryDiagram)
  2112. {
  2113. XRPictureBox xRPicture = new XRPictureBox();
  2114. xRPicture.LocationF = position;
  2115. xRPicture.SizeF = new SizeF(321f, 330.2f);
  2116. ImageSource imageSource = new ImageSource(ternaryDiagram.DrawATernaryPicture(index, TemplateClass, Color_list,m_otsreport_export, PartSizeFile));
  2117. xRPicture.ImageSource = imageSource;
  2118. xRPicture.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
  2119. xRPicture.Visible = true;
  2120. this.Detail.Controls.Add(xRPicture);
  2121. }
  2122. private XRPictureBox set_syt_pic_legend(List<Color> Color_list, int i, TernaryDiagram ternaryDiagram)
  2123. {
  2124. XRPictureBox xRPicture_legend = new XRPictureBox();
  2125. xRPicture_legend.Name = "XRPicture" + i.ToString();
  2126. xRPicture_legend.LocationF = new PointF(400f, NeueStartposition);
  2127. xRPicture_legend.SizeF = new SizeF(260f, 120f);
  2128. xRPicture_legend.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
  2129. ImageSource imageSource_legend = new ImageSource(ternaryDiagram.DrawATernaryDiagramLegend(Color_list,m_otsreport_export, PartSizeFile));
  2130. xRPicture_legend.ImageSource = imageSource_legend;
  2131. NeueStartposition = xRPicture_legend.LocationF.Y + xRPicture_legend.SizeF.Height;
  2132. return xRPicture_legend;
  2133. }
  2134. #endregion
  2135. private XRTable add_label(string str)
  2136. {
  2137. XRTable Template = new XRTable();
  2138. XRTableRow Template_Rows_1 = new XRTableRow();
  2139. XRTableCell Template_Rows1_Cell_2 = new XRTableCell();
  2140. Template_Rows1_Cell_2.WidthF = 630f;
  2141. setXRLabelData(Template_Rows1_Cell_2, str);
  2142. //Template_Rows1_Cell_2.Text = str;
  2143. Template_Rows_1.Controls.Add(Template_Rows1_Cell_2);
  2144. Template.Rows.Add(Template_Rows_1);
  2145. Template.WidthF = 630f;
  2146. Template.Borders = DevExpress.XtraPrinting.BorderSide.All;
  2147. Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  2148. Template.LocationF = new PointF(30.42f, NeueStartposition);
  2149. Template.BackColor = Color.DarkGray;
  2150. NeueStartposition = Template.LocationF.Y + Template.SizeF.Height;
  2151. return Template;
  2152. }
  2153. #region 颗粒列表
  2154. private void add_Particle_List(c_TemplateClass TemplateClass, DataTable dataTable, int position, XRTable xRTable)
  2155. {
  2156. XRTable table = new XRTable();
  2157. table = xRTable;
  2158. table.Name = "table_kllb_" + position.ToString();
  2159. table.Rows[0].Cells[0].Text = "ID";
  2160. table.Rows[0].Cells[1].Text = "Class";
  2161. table.Rows[0].Cells[2].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p1.ToString();
  2162. table.Rows[0].Cells[3].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p2.ToString();
  2163. table.Rows[0].Cells[4].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p3.ToString();
  2164. table.Rows[1].Cells[0].Text = dataTable.Rows[position]["pid"].ToString();
  2165. table.Rows[1].Cells[1].Text = dataTable.Rows[position]["Class"].ToString();
  2166. table.Rows[1].Cells[2].Text = dataTable.Rows[position]["Size"].ToString();
  2167. table.Rows[1].Cells[3].Text = dataTable.Rows[position]["DMAX"].ToString();
  2168. table.Rows[1].Cells[4].Text = dataTable.Rows[position]["DMIN"].ToString();
  2169. for (int i = 0; i < 10; i++)
  2170. {
  2171. table.Rows[2].Cells[i].Text = dataTable.Rows[position]["ColName" + (i + 1).ToString()].ToString();
  2172. string str_ColVal = "";
  2173. if (dataTable.Rows[position]["ColVal" + (i + 1).ToString()].ToString() == "0")
  2174. {
  2175. str_ColVal = "0";
  2176. }
  2177. else
  2178. {
  2179. str_ColVal = dataTable.Rows[position]["ColVal" + (i + 1).ToString()].ToString();
  2180. }
  2181. table.Rows[3].Cells[i].Text = str_ColVal;
  2182. }
  2183. XRPictureBox xRPicture2 = new XRPictureBox();
  2184. xRPicture2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.AutoSize;
  2185. xRPicture2.ImageSource = new ImageSource((Bitmap)dataTable.Rows[position]["p3"]);
  2186. XRPictureBox xRPicture3 = new XRPictureBox();
  2187. xRPicture3.ImageSource = new ImageSource((Bitmap)dataTable.Rows[position]["p1"]);
  2188. xRPicture3.SizeF = new SizeF(120f, 120f);
  2189. xRPicture3.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze;
  2190. XRPictureBox xRPicture4 = new XRPictureBox();
  2191. xRPicture4.ImageSource = new ImageSource((Bitmap)dataTable.Rows[position]["p2"]);
  2192. xRPicture4.SizeF = new SizeF(120f, 120f);
  2193. xRPicture4.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze;
  2194. table.Rows[4].Cells[0].Controls.Add(xRPicture3);
  2195. table.Rows[4].Cells[1].Controls.Add(xRPicture4);
  2196. table.Rows[4].Cells[2].Controls.Add(xRPicture2);
  2197. table.Rows[4].Cells[2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  2198. table.Visible = true;
  2199. table.LocationF = new PointF(0, NeueStartposition);
  2200. table.SendToBack();
  2201. table.BorderWidth = 0.5f;
  2202. this.Detail.Controls.Add(table);
  2203. NeueStartposition = table.SizeF.Height + NeueStartposition;
  2204. }
  2205. #endregion
  2206. private void xrLabel_pageinfo_PrintOnPage(object sender, PrintOnPageEventArgs e)
  2207. {
  2208. int pagecount = e.PageCount;
  2209. int pageindex = e.PageIndex;
  2210. if (pageindex < 1)
  2211. {
  2212. this.xrLabel_pageinfo.Visible = false;
  2213. }
  2214. else
  2215. {
  2216. xrLabel_pageinfo.Font = new Font(Schriftart_chinese, xrLabel_pageinfo.Font.Size);
  2217. this.xrLabel_pageinfo.Visible = true;
  2218. this.xrLabel_pageinfo.Text = string.Format(GetlanguageData("dev_page", "页码") + " {0} "+ GetlanguageData("dev_of", "/") + " {1}" , pageindex, pagecount - 1);
  2219. }
  2220. }
  2221. }
  2222. public class ParticleSizeDEVData
  2223. {
  2224. /// <summary>
  2225. /// 分组名称
  2226. /// </summary>
  2227. public string size_Class { get; set; }
  2228. /// <summary>
  2229. /// 种类条目名称
  2230. /// </summary>
  2231. public string size_Name { get; set; }
  2232. /// <summary>
  2233. /// 数量
  2234. /// </summary>
  2235. public string size_total { get; set; }
  2236. public string size_1 { get; set; }
  2237. public string size_2 { get; set; }
  2238. public string size_3 { get; set; }
  2239. public string size_4 { get; set; }
  2240. public string size_5 { get; set; }
  2241. public string size_6 { get; set; }
  2242. public string size_7 { get; set; }
  2243. public string size_8 { get; set; }
  2244. public string size_9 { get; set; }
  2245. public string size_10 { get; set; }
  2246. public string size_11 { get; set; }
  2247. public string size_12 { get; set; }
  2248. }
  2249. /// <summary>
  2250. /// 存储元素数据
  2251. /// </summary>
  2252. public class ElementalAnalysisDEVData
  2253. {
  2254. //分组名称
  2255. public string classify { get; set; }
  2256. //种类条目名称
  2257. public string subdivision { get; set; }
  2258. //面积
  2259. public string Area { get; set; }
  2260. public string Data1 { get; set; }
  2261. public string Data2 { get; set; }
  2262. public string Data3 { get; set; }
  2263. public string Data4 { get; set; }
  2264. public string Data5 { get; set; }
  2265. public string Data6 { get; set; }
  2266. public string Data7 { get; set; }
  2267. public string Data8 { get; set; }
  2268. public string Data9 { get; set; }
  2269. public string Data10 { get; set; }
  2270. }
  2271. public class AreaOfInclusionDEVData
  2272. {
  2273. public string classify { get; set; }
  2274. public string subdivision { get; set; }
  2275. public string Area { get; set; }
  2276. public string inca_proportion { get; set; }
  2277. public string inca_FieldRatio { get; set; }
  2278. }
  2279. }