GBReport.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  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. Export_ReportTemplate m_export_reporttemplate;
  19. public GBReport(OTSReport_Export in_export)
  20. {
  21. m_otsreport_export = in_export;
  22. m_export_reporttemplate = new Export_ReportTemplate(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. this.Detail.Controls.Add(Template);
  104. LowPlace = LowPlace + Template.SizeF.Height + 50;
  105. }
  106. private XRTableRow GB_Class_dataRow(DataTable dt,int index)
  107. {
  108. XRTableRow Template_Rows_A_Class_data = new XRTableRow();
  109. XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell();
  110. Template_Rows_A_cell_data_Class.WidthF = 73.96f;
  111. Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["Class"].ToString();
  112. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class);
  113. XRTableCell Template_Rows_A_cell_data_Width = new XRTableCell();
  114. Template_Rows_A_cell_data_Width.WidthF = 85.42f;
  115. Template_Rows_A_cell_data_Width.Text = dt.Rows[index]["Width/um"].ToString();
  116. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Width);
  117. XRTableCell Template_Rows_A_cell_data_1 = new XRTableCell();
  118. Template_Rows_A_cell_data_1.WidthF = 43.69f;
  119. Template_Rows_A_cell_data_1.Text = dt.Rows[index]["0.0"].ToString();
  120. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_1);
  121. XRTableCell Template_Rows_A_cell_data_2 = new XRTableCell();
  122. Template_Rows_A_cell_data_2.WidthF = 43.69f;
  123. Template_Rows_A_cell_data_2.Text = dt.Rows[index]["0.5"].ToString();
  124. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_2);
  125. XRTableCell Template_Rows_A_cell_data_3 = new XRTableCell();
  126. Template_Rows_A_cell_data_3.WidthF = 43.69f;
  127. Template_Rows_A_cell_data_3.Text = dt.Rows[index]["1.0"].ToString();
  128. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_3);
  129. XRTableCell Template_Rows_A_cell_data_4 = new XRTableCell();
  130. Template_Rows_A_cell_data_4.WidthF = 43.69f;
  131. Template_Rows_A_cell_data_4.Text = dt.Rows[index]["1.5"].ToString();
  132. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_4);
  133. XRTableCell Template_Rows_A_cell_data_5 = new XRTableCell();
  134. Template_Rows_A_cell_data_5.WidthF = 43.69f;
  135. Template_Rows_A_cell_data_5.Text = dt.Rows[index]["2.0"].ToString();
  136. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_5);
  137. XRTableCell Template_Rows_A_cell_data_6 = new XRTableCell();
  138. Template_Rows_A_cell_data_6.WidthF = 43.69f;
  139. Template_Rows_A_cell_data_6.Text = dt.Rows[index]["2.5"].ToString();
  140. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_6);
  141. XRTableCell Template_Rows_A_cell_data_7 = new XRTableCell();
  142. Template_Rows_A_cell_data_7.WidthF = 43.69f;
  143. Template_Rows_A_cell_data_7.Text = dt.Rows[index]["3.0"].ToString();
  144. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_7);
  145. XRTableCell Template_Rows_A_cell_data_8 = new XRTableCell();
  146. Template_Rows_A_cell_data_8.WidthF = 43.69f;
  147. Template_Rows_A_cell_data_8.Text = dt.Rows[index]["3.5"].ToString();
  148. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_8);
  149. XRTableCell Template_Rows_A_cell_data_9 = new XRTableCell();
  150. Template_Rows_A_cell_data_9.WidthF = 43.69f;
  151. Template_Rows_A_cell_data_9.Text = dt.Rows[index]["4.0"].ToString();
  152. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_9);
  153. XRTableCell Template_Rows_A_cell_data_10 = new XRTableCell();
  154. Template_Rows_A_cell_data_10.WidthF = 43.69f;
  155. Template_Rows_A_cell_data_10.Text = dt.Rows[index]["4.5"].ToString();
  156. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_10);
  157. XRTableCell Template_Rows_A_cell_data_11 = new XRTableCell();
  158. Template_Rows_A_cell_data_11.WidthF = 43.69f;
  159. Template_Rows_A_cell_data_11.Text = dt.Rows[index]["5.0"].ToString();
  160. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_11);
  161. return Template_Rows_A_Class_data;
  162. }
  163. private XRTableRow GB_Class_dataRows_DS(DataTable dt, int index)
  164. {
  165. XRTableRow Template_Rows_A_Class_data = new XRTableRow();
  166. XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell();
  167. Template_Rows_A_cell_data_Class.WidthF = 106.67f;
  168. Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["No."].ToString();
  169. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class);
  170. XRTableCell Template_Rows_A_cell_data_Area = new XRTableCell();
  171. Template_Rows_A_cell_data_Area.WidthF = 106.67f;
  172. Template_Rows_A_cell_data_Area.Text = dt.Rows[index]["Area/um2"].ToString();
  173. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Area);
  174. XRTableCell Template_Rows_A_cell_data_MaxFeret = new XRTableCell();
  175. Template_Rows_A_cell_data_MaxFeret.WidthF = 106.67f;
  176. Template_Rows_A_cell_data_MaxFeret.Text = dt.Rows[index]["MaxFeret/um"].ToString();
  177. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_MaxFeret);
  178. XRTableCell Template_Rows_A_cell_data_X = new XRTableCell();
  179. Template_Rows_A_cell_data_X.WidthF = 106.67f;
  180. Template_Rows_A_cell_data_X.Text = dt.Rows[index]["X/um"].ToString();
  181. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_X);
  182. XRTableCell Template_Rows_A_cell_data_Y = new XRTableCell();
  183. Template_Rows_A_cell_data_Y.WidthF = 106.67f;
  184. Template_Rows_A_cell_data_Y.Text = dt.Rows[index]["Y/um"].ToString();
  185. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Y);
  186. XRTableCell Template_Rows_A_cell_data_Grade = new XRTableCell();
  187. Template_Rows_A_cell_data_Grade.WidthF = 106.67f;
  188. Template_Rows_A_cell_data_Grade.Text = dt.Rows[index]["Grade"].ToString();
  189. Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Grade);
  190. return Template_Rows_A_Class_data;
  191. }
  192. private void GB_NameData(out DataTable GBName_dt ,out DataTable GBName_dt_DS)
  193. {
  194. DataTable HeaderData = new DataTable();
  195. HeaderData.Columns.Add("Class");
  196. HeaderData.Columns.Add("Width/um");
  197. HeaderData.Columns.Add("0.0");
  198. HeaderData.Columns.Add("0.5");
  199. HeaderData.Columns.Add("1.0");
  200. HeaderData.Columns.Add("1.5");
  201. HeaderData.Columns.Add("2.0");
  202. HeaderData.Columns.Add("2.5");
  203. HeaderData.Columns.Add("3.0");
  204. HeaderData.Columns.Add("3.5");
  205. HeaderData.Columns.Add("4.0");
  206. HeaderData.Columns.Add("4.5");
  207. HeaderData.Columns.Add("5.0");
  208. DataRow dr = HeaderData.NewRow();
  209. dr["Class"] = "Class";
  210. dr["Width/um"] = "Width/um";
  211. dr["0.0"] = "0.0";
  212. dr["0.5"] = "0.5";
  213. dr["1.0"] = "1.0";
  214. dr["1.5"] = "1.5";
  215. dr["2.0"] = "2.0";
  216. dr["2.5"] = "2.5";
  217. dr["3.0"] = "3.0";
  218. dr["3.5"] = "3.5";
  219. dr["4.0"] = "4.0";
  220. dr["4.5"] = "4.5";
  221. dr["5.0"] = "5.0";
  222. HeaderData.Rows.Add(dr);
  223. GBName_dt = HeaderData.Copy();
  224. DataTable HeaderData_DS = new DataTable();
  225. HeaderData_DS.Columns.Add("No.");
  226. HeaderData_DS.Columns.Add("Area/um2");
  227. HeaderData_DS.Columns.Add("MaxFeret/um");
  228. HeaderData_DS.Columns.Add("X/um");
  229. HeaderData_DS.Columns.Add("Y/um");
  230. HeaderData_DS.Columns.Add("Grade");
  231. DataRow dr_DS = HeaderData_DS.NewRow();
  232. dr_DS["No."] = "No.";
  233. dr_DS["Area/um2"] = "Area/um2";
  234. dr_DS["MaxFeret/um"] = "MaxFeret/um";
  235. dr_DS["X/um"] = "X/um";
  236. dr_DS["Y/um"] = "Y/um";
  237. dr_DS["Grade"] = "Grade";
  238. HeaderData_DS.Rows.Add(dr_DS);
  239. GBName_dt_DS = HeaderData_DS.Copy();
  240. }
  241. /// <summary>
  242. /// 首页部分数据插入
  243. /// </summary>
  244. /// <param name="m_mbszclass"></param>
  245. public void setResultGrid(c_TemplateClass m_mbszclass)
  246. {
  247. #region 从Grid表中读取样品数据
  248. //------------------加载模块,获取数据-------------------------------------------------
  249. ResultGrid ls_resultgrid = new ResultGrid(m_otsreport_export.m_ReportApp);
  250. Dictionary<string, string> keyValues_ResultGrid = ls_resultgrid.GetData_ResultGrid_Report();
  251. //------------------加载模块,获取数据结束----------------------------------------------
  252. Dictionary<string, string>.Enumerator en = keyValues_ResultGrid.GetEnumerator();
  253. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col1"].ToString(), out string str_CLJGMC);//测量结果名称
  254. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col4"].ToString(), out string str_YXSJ);//运行时间
  255. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col5"].ToString(), out string str_SCZS);//视场总数
  256. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col6"].ToString(), out string str_FLFA);//分类方案
  257. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col7"].ToString(), out string str_YJCTZ);//已检测特征
  258. keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col8"].ToString(), out string str_SCMJ);//视场面积
  259. keyValues_ResultGrid.TryGetValue("Magnification", out string Magnification);//放大倍数
  260. #endregion
  261. setXRLabelData(GB_dev_jcjgwj_text, str_CLJGMC);
  262. setXRLabelData(GB_dev_yxsj_text, str_YXSJ);
  263. setXRLabelData(GB_dev_sczs_text, str_SCZS);
  264. setXRLabelData(GB_dev_flfa_text, str_FLFA);
  265. setXRLabelData(GB_dev_yjctz_text, str_YJCTZ);
  266. setXRLabelData(GB_dev_scmj_text, str_SCMJ);
  267. setXRLabelData(GB_dev_ckbz_text, "GB30834");
  268. }
  269. }
  270. }