GBTemplate.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. using DevExpress.XtraReports.UI;
  2. using OTSIncAReportApp.OTSTemplateDesigner;
  3. using OTSIncAReportGrids;
  4. using System;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Data;
  9. using System.Drawing;
  10. using static OTSIncAReportApp.OTSReport_Export;
  11. namespace OTSIncAReportApp.ReportTemplate
  12. {
  13. public partial class GBReport : DevExpress.XtraReports.UI.XtraReport
  14. {
  15. string typeface = "微软雅黑";
  16. public OTSReport_Export m_otsreport_export;
  17. float LowPlace = 1000f;
  18. GBData m_export_reporttemplate;
  19. public GBReport(OTSReport_Export in_export)
  20. {
  21. m_otsreport_export = in_export;
  22. m_export_reporttemplate = new GBData(in_export);
  23. InitializeComponent();
  24. }
  25. private void setXRLabelData(XRLabel cell, string str)
  26. {
  27. cell.Text = str;
  28. cell.Font = new Font(typeface, cell.Font.Size);
  29. }
  30. private string GetlanguageData(string strName, DataTable languageData)
  31. {
  32. for (int i = 0; i < languageData.Rows.Count; i++)
  33. {
  34. if (strName == languageData.Rows[i]["Name"].ToString())
  35. {
  36. return languageData.Rows[i]["Text"].ToString();
  37. }
  38. }
  39. return "";
  40. }
  41. //国际化
  42. public void International_language(DataTable languageData)
  43. {
  44. setXRLabelData(GB_dev_ym, GetlanguageData(GB_dev_ym.Name.ToString(), languageData));//表头
  45. setXRLabelData(GB_bt, GetlanguageData(GB_bt.Name.ToString(), languageData));//标题
  46. setXRLabelData(GB_dev_ypsm, GetlanguageData(GB_dev_ypsm.Name.ToString(), languageData));//样品说明
  47. setXRLabelData(GB_dev_jcjgwj, GetlanguageData(GB_dev_jcjgwj.Name.ToString(), languageData));//测量结果名称:
  48. setXRLabelData(GB_dev_cljggk, GetlanguageData(GB_dev_cljggk.Name.ToString(), languageData));//测量结果概况
  49. setXRLabelData(GB_dev_yxsj, GetlanguageData(GB_dev_yxsj.Name.ToString(), languageData));//运行时间:
  50. setXRLabelData(GB_dev_flfa, GetlanguageData(GB_dev_flfa.Name.ToString(), languageData));//分类方案:
  51. setXRLabelData(GB_dev_scmj, GetlanguageData(GB_dev_scmj.Name.ToString(), languageData));//视场面积:
  52. setXRLabelData(GB_dev_sczs, GetlanguageData(GB_dev_sczs.Name.ToString(), languageData));//视场总数:
  53. setXRLabelData(GB_dev_yjctz, GetlanguageData(GB_dev_yjctz.Name.ToString(), languageData));//已检查特征:
  54. setXRLabelData(GB_dev_ckbz, GetlanguageData(GB_dev_ckbz.Name.ToString(), languageData));//参考标准:
  55. }
  56. public void set_GB_Method(List<DataTable> GB_List,List<string> GB1_NameList,string GBName)
  57. {
  58. XRPageBreak xRPage = new XRPageBreak();
  59. xRPage.LocationF = new PointF(0, LowPlace + 2);
  60. this.Detail.Controls.Add(xRPage);
  61. LowPlace = LowPlace + 4;
  62. XRLabel GBNameLabel = new XRLabel();
  63. GBNameLabel.SizeF = new SizeF(640, 0);
  64. GBNameLabel.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  65. GBNameLabel.Text = GBName;
  66. GBNameLabel.LocationF = new PointF(5, LowPlace);
  67. GBNameLabel.Font = new Font(typeface, 24);
  68. this.Detail.Controls.Add(GBNameLabel);
  69. LowPlace = LowPlace + GBNameLabel.SizeF.Height;
  70. GB_NameData(out DataTable HeaderData, out DataTable HeaderData_DS);//获取标准表头
  71. XRTable Template = new XRTable();
  72. for (int a = 0; a < GB_List.Count - 1; a++)
  73. {
  74. XRTableRow Template_Rows_A_Class = new XRTableRow();
  75. XRTableCell Template_Rows_A_cell = new XRTableCell();
  76. Template_Rows_A_cell.WidthF = 640f;
  77. Template_Rows_A_cell.Text = GB1_NameList[a];
  78. Template_Rows_A_Class.Controls.Add(Template_Rows_A_cell);
  79. Template_Rows_A_Class.BackColor = Color.DarkGray;
  80. Template.Rows.Add(Template_Rows_A_Class);
  81. Template.Rows.Add(GB_Class_dataRow(HeaderData, 0));
  82. for (int i = 0; i < GB_List[a].Rows.Count; i++)
  83. {
  84. Template.Rows.Add(GB_Class_dataRow(GB_List[a], i));
  85. }
  86. }
  87. XRTableRow Template_Rows_A_Class_DS = new XRTableRow();
  88. XRTableCell Template_Rows_A_cell_DS = new XRTableCell();
  89. Template_Rows_A_cell_DS.WidthF = 640f;
  90. Template_Rows_A_cell_DS.Text = GB1_NameList[GB1_NameList.Count - 1];
  91. Template_Rows_A_Class_DS.Controls.Add(Template_Rows_A_cell_DS);
  92. Template_Rows_A_Class_DS.BackColor= Color.DarkGray;
  93. Template.Rows.Add(Template_Rows_A_Class_DS);
  94. Template.Rows.Add(GB_Class_dataRows_DS(HeaderData_DS, 0));
  95. for (int i = 0; i < GB_List[GB_List.Count - 1].Rows.Count; i++)
  96. {
  97. Template.Rows.Add(GB_Class_dataRows_DS(GB_List[GB_List.Count - 1], i));
  98. }
  99. Template.Borders = DevExpress.XtraPrinting.BorderSide.All;
  100. Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
  101. Template.LocationF = new PointF(5, LowPlace);
  102. Template.SizeF = new SizeF(640, 0);
  103. Template.Font = new Font(typeface, Template.Font.Size);
  104. this.Detail.Controls.Add(Template);
  105. LowPlace = LowPlace + Template.SizeF.Height + 50;
  106. }
  107. private XRTableRow GB_Class_dataRow(DataTable dt,int index)
  108. {
  109. XRTableRow Template_Rows_A_Class_data = new XRTableRow();
  110. XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell();
  111. Template_Rows_A_cell_data_Class.WidthF = 73.96f;
  112. Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["Class"].ToString();
  113. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class);
  114. XRTableCell Template_Rows_A_cell_data_Width = new XRTableCell();
  115. Template_Rows_A_cell_data_Width.WidthF = 85.42f;
  116. Template_Rows_A_cell_data_Width.Text = dt.Rows[index]["Width/um"].ToString();
  117. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Width);
  118. XRTableCell Template_Rows_A_cell_data_1 = new XRTableCell();
  119. Template_Rows_A_cell_data_1.WidthF = 43.69f;
  120. Template_Rows_A_cell_data_1.Text = dt.Rows[index]["0.0"].ToString();
  121. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_1);
  122. XRTableCell Template_Rows_A_cell_data_2 = new XRTableCell();
  123. Template_Rows_A_cell_data_2.WidthF = 43.69f;
  124. Template_Rows_A_cell_data_2.Text = dt.Rows[index]["0.5"].ToString();
  125. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_2);
  126. XRTableCell Template_Rows_A_cell_data_3 = new XRTableCell();
  127. Template_Rows_A_cell_data_3.WidthF = 43.69f;
  128. Template_Rows_A_cell_data_3.Text = dt.Rows[index]["1.0"].ToString();
  129. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_3);
  130. XRTableCell Template_Rows_A_cell_data_4 = new XRTableCell();
  131. Template_Rows_A_cell_data_4.WidthF = 43.69f;
  132. Template_Rows_A_cell_data_4.Text = dt.Rows[index]["1.5"].ToString();
  133. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_4);
  134. XRTableCell Template_Rows_A_cell_data_5 = new XRTableCell();
  135. Template_Rows_A_cell_data_5.WidthF = 43.69f;
  136. Template_Rows_A_cell_data_5.Text = dt.Rows[index]["2.0"].ToString();
  137. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_5);
  138. XRTableCell Template_Rows_A_cell_data_6 = new XRTableCell();
  139. Template_Rows_A_cell_data_6.WidthF = 43.69f;
  140. Template_Rows_A_cell_data_6.Text = dt.Rows[index]["2.5"].ToString();
  141. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_6);
  142. XRTableCell Template_Rows_A_cell_data_7 = new XRTableCell();
  143. Template_Rows_A_cell_data_7.WidthF = 43.69f;
  144. Template_Rows_A_cell_data_7.Text = dt.Rows[index]["3.0"].ToString();
  145. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_7);
  146. XRTableCell Template_Rows_A_cell_data_8 = new XRTableCell();
  147. Template_Rows_A_cell_data_8.WidthF = 43.69f;
  148. Template_Rows_A_cell_data_8.Text = dt.Rows[index]["3.5"].ToString();
  149. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_8);
  150. XRTableCell Template_Rows_A_cell_data_9 = new XRTableCell();
  151. Template_Rows_A_cell_data_9.WidthF = 43.69f;
  152. Template_Rows_A_cell_data_9.Text = dt.Rows[index]["4.0"].ToString();
  153. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_9);
  154. XRTableCell Template_Rows_A_cell_data_10 = new XRTableCell();
  155. Template_Rows_A_cell_data_10.WidthF = 43.69f;
  156. Template_Rows_A_cell_data_10.Text = dt.Rows[index]["4.5"].ToString();
  157. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_10);
  158. XRTableCell Template_Rows_A_cell_data_11 = new XRTableCell();
  159. Template_Rows_A_cell_data_11.WidthF = 43.69f;
  160. Template_Rows_A_cell_data_11.Text = dt.Rows[index]["5.0"].ToString();
  161. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_11);
  162. return Template_Rows_A_Class_data;
  163. }
  164. private XRTableRow GB_Class_dataRows_DS(DataTable dt, int index)
  165. {
  166. XRTableRow Template_Rows_A_Class_data = new XRTableRow();
  167. XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell();
  168. Template_Rows_A_cell_data_Class.WidthF = 106.67f;
  169. Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["No."].ToString();
  170. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class);
  171. XRTableCell Template_Rows_A_cell_data_Area = new XRTableCell();
  172. Template_Rows_A_cell_data_Area.WidthF = 106.67f;
  173. Template_Rows_A_cell_data_Area.Text = dt.Rows[index]["Area/um2"].ToString();
  174. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Area);
  175. XRTableCell Template_Rows_A_cell_data_MaxFeret = new XRTableCell();
  176. Template_Rows_A_cell_data_MaxFeret.WidthF = 106.67f;
  177. Template_Rows_A_cell_data_MaxFeret.Text = dt.Rows[index]["MaxFeret/um"].ToString();
  178. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_MaxFeret);
  179. XRTableCell Template_Rows_A_cell_data_X = new XRTableCell();
  180. Template_Rows_A_cell_data_X.WidthF = 106.67f;
  181. Template_Rows_A_cell_data_X.Text = dt.Rows[index]["X/um"].ToString();
  182. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_X);
  183. XRTableCell Template_Rows_A_cell_data_Y = new XRTableCell();
  184. Template_Rows_A_cell_data_Y.WidthF = 106.67f;
  185. Template_Rows_A_cell_data_Y.Text = dt.Rows[index]["Y/um"].ToString();
  186. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Y);
  187. XRTableCell Template_Rows_A_cell_data_Grade = new XRTableCell();
  188. Template_Rows_A_cell_data_Grade.WidthF = 106.67f;
  189. Template_Rows_A_cell_data_Grade.Text = dt.Rows[index]["Grade"].ToString();
  190. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Grade);
  191. return Template_Rows_A_Class_data;
  192. }
  193. private void GB_NameData(out DataTable GBName_dt ,out DataTable GBName_dt_DS)
  194. {
  195. DataTable HeaderData = new DataTable();
  196. HeaderData.Columns.Add("Class");
  197. HeaderData.Columns.Add("Width/um");
  198. HeaderData.Columns.Add("0.0");
  199. HeaderData.Columns.Add("0.5");
  200. HeaderData.Columns.Add("1.0");
  201. HeaderData.Columns.Add("1.5");
  202. HeaderData.Columns.Add("2.0");
  203. HeaderData.Columns.Add("2.5");
  204. HeaderData.Columns.Add("3.0");
  205. HeaderData.Columns.Add("3.5");
  206. HeaderData.Columns.Add("4.0");
  207. HeaderData.Columns.Add("4.5");
  208. HeaderData.Columns.Add("5.0");
  209. DataRow dr = HeaderData.NewRow();
  210. dr["Class"] = "Class";
  211. dr["Width/um"] = "Width/um";
  212. dr["0.0"] = "0.0";
  213. dr["0.5"] = "0.5";
  214. dr["1.0"] = "1.0";
  215. dr["1.5"] = "1.5";
  216. dr["2.0"] = "2.0";
  217. dr["2.5"] = "2.5";
  218. dr["3.0"] = "3.0";
  219. dr["3.5"] = "3.5";
  220. dr["4.0"] = "4.0";
  221. dr["4.5"] = "4.5";
  222. dr["5.0"] = "5.0";
  223. HeaderData.Rows.Add(dr);
  224. GBName_dt = HeaderData.Copy();
  225. DataTable HeaderData_DS = new DataTable();
  226. HeaderData_DS.Columns.Add("No.");
  227. HeaderData_DS.Columns.Add("Area/um2");
  228. HeaderData_DS.Columns.Add("MaxFeret/um");
  229. HeaderData_DS.Columns.Add("X/um");
  230. HeaderData_DS.Columns.Add("Y/um");
  231. HeaderData_DS.Columns.Add("Grade");
  232. DataRow dr_DS = HeaderData_DS.NewRow();
  233. dr_DS["No."] = "No.";
  234. dr_DS["Area/um2"] = "Area/um2";
  235. dr_DS["MaxFeret/um"] = "MaxFeret/um";
  236. dr_DS["X/um"] = "X/um";
  237. dr_DS["Y/um"] = "Y/um";
  238. dr_DS["Grade"] = "Grade";
  239. HeaderData_DS.Rows.Add(dr_DS);
  240. GBName_dt_DS = HeaderData_DS.Copy();
  241. }
  242. /// <summary>
  243. /// 首页部分数据插入
  244. /// </summary>
  245. /// <param name="m_mbszclass"></param>
  246. public void setResultGrid(c_TemplateClass m_mbszclass)
  247. {
  248. #region 从Grid表中读取样品数据
  249. //------------------加载模块,获取数据-------------------------------------------------
  250. ResultGrid ls_resultgrid = new ResultGrid(m_otsreport_export.m_ReportApp);
  251. Dictionary<string, string> keyValues_ResultGrid = ls_resultgrid.GetData_ResultGrid_Report();
  252. //------------------加载模块,获取数据结束----------------------------------------------
  253. Dictionary<string, string>.Enumerator en = keyValues_ResultGrid.GetEnumerator();
  254. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col1"].ToString(), out string str_CLJGMC);//测量结果名称
  255. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col4"].ToString(), out string str_YXSJ);//运行时间
  256. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col5"].ToString(), out string str_SCZS);//视场总数
  257. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col6"].ToString(), out string str_FLFA);//分类方案
  258. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col7"].ToString(), out string str_YJCTZ);//已检测特征
  259. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col8"].ToString(), out string str_SCMJ);//视场面积
  260. keyValues_ResultGrid.TryGetValue("Magnification", out string Magnification);//放大倍数
  261. #endregion
  262. setXRLabelData(GB_dev_jcjgwj_text, str_CLJGMC);
  263. setXRLabelData(GB_dev_yxsj_text, str_YXSJ);
  264. setXRLabelData(GB_dev_sczs_text, str_SCZS);
  265. setXRLabelData(GB_dev_flfa_text, str_FLFA);
  266. setXRLabelData(GB_dev_yjctz_text, str_YJCTZ);
  267. setXRLabelData(GB_dev_scmj_text, str_SCMJ);
  268. setXRLabelData(GB_dev_ckbz_text, "GB30834");
  269. }
  270. }
  271. }