using DevExpress.XtraReports.UI; using OTSIncAReportApp.OTSTemplateDesigner; using OTSIncAReportGrids; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using static OTSIncAReportApp.OTSReport_Export; namespace OTSIncAReportApp.ReportTemplate { public partial class GBReport : DevExpress.XtraReports.UI.XtraReport { string typeface = "宋体"; public OTSReport_Export m_otsreport_export; float LowPlace = 1000f; Export_ReportTemplate m_export_reporttemplate; public GBReport(OTSReport_Export in_export) { m_otsreport_export = in_export; m_export_reporttemplate = new Export_ReportTemplate(in_export); InitializeComponent(); } private void setXRLabelData(XRLabel cell, string str) { cell.Text = str; cell.Font = new Font(typeface, cell.Font.Size); } private string GetlanguageData(string strName, DataTable languageData) { for (int i = 0; i < languageData.Rows.Count; i++) { if (strName == languageData.Rows[i]["Name"].ToString()) { return languageData.Rows[i]["Text"].ToString(); } } return ""; } //国际化 public void International_language(DataTable languageData) { setXRLabelData(GB_dev_ym, GetlanguageData(GB_dev_ym.Name.ToString(), languageData));//表头 setXRLabelData(GB_bt, GetlanguageData(GB_bt.Name.ToString(), languageData));//标题 setXRLabelData(GB_dev_ypsm, GetlanguageData(GB_dev_ypsm.Name.ToString(), languageData));//样品说明 setXRLabelData(GB_dev_jcjgwj, GetlanguageData(GB_dev_jcjgwj.Name.ToString(), languageData));//测量结果名称: setXRLabelData(GB_dev_cljggk, GetlanguageData(GB_dev_cljggk.Name.ToString(), languageData));//测量结果概况 setXRLabelData(GB_dev_yxsj, GetlanguageData(GB_dev_yxsj.Name.ToString(), languageData));//运行时间: setXRLabelData(GB_dev_flfa, GetlanguageData(GB_dev_flfa.Name.ToString(), languageData));//分类方案: setXRLabelData(GB_dev_scmj, GetlanguageData(GB_dev_scmj.Name.ToString(), languageData));//视场面积: setXRLabelData(GB_dev_sczs, GetlanguageData(GB_dev_sczs.Name.ToString(), languageData));//视场总数: setXRLabelData(GB_dev_yjctz, GetlanguageData(GB_dev_yjctz.Name.ToString(), languageData));//已检查特征: setXRLabelData(GB_dev_ckbz, GetlanguageData(GB_dev_ckbz.Name.ToString(), languageData));//参考标准: } public void set_GB_Method(List GB_List,List GB1_NameList,string GBName) { XRPageBreak xRPage = new XRPageBreak(); xRPage.LocationF = new PointF(0, LowPlace + 2); this.Detail.Controls.Add(xRPage); LowPlace = LowPlace + 4; XRLabel GBNameLabel = new XRLabel(); GBNameLabel.SizeF = new SizeF(640, 0); GBNameLabel.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; GBNameLabel.Text = GBName; GBNameLabel.LocationF = new PointF(5, LowPlace); GBNameLabel.Font = new Font(typeface, 24); this.Detail.Controls.Add(GBNameLabel); LowPlace = LowPlace + GBNameLabel.SizeF.Height; GB_NameData(out DataTable HeaderData, out DataTable HeaderData_DS);//获取标准表头 XRTable Template = new XRTable(); for (int a = 0; a < GB_List.Count - 1; a++) { XRTableRow Template_Rows_A_Class = new XRTableRow(); XRTableCell Template_Rows_A_cell = new XRTableCell(); Template_Rows_A_cell.WidthF = 640f; Template_Rows_A_cell.Text = GB1_NameList[a]; Template_Rows_A_Class.Controls.Add(Template_Rows_A_cell); Template_Rows_A_Class.BackColor = Color.DarkGray; Template.Rows.Add(Template_Rows_A_Class); Template.Rows.Add(GB_Class_dataRow(HeaderData, 0)); for (int i = 0; i < GB_List[a].Rows.Count; i++) { Template.Rows.Add(GB_Class_dataRow(GB_List[a], i)); } } XRTableRow Template_Rows_A_Class_DS = new XRTableRow(); XRTableCell Template_Rows_A_cell_DS = new XRTableCell(); Template_Rows_A_cell_DS.WidthF = 640f; Template_Rows_A_cell_DS.Text = GB1_NameList[GB1_NameList.Count - 1]; Template_Rows_A_Class_DS.Controls.Add(Template_Rows_A_cell_DS); Template_Rows_A_Class_DS.BackColor= Color.DarkGray; Template.Rows.Add(Template_Rows_A_Class_DS); Template.Rows.Add(GB_Class_dataRows_DS(HeaderData_DS, 0)); for (int i = 0; i < GB_List[GB_List.Count - 1].Rows.Count; i++) { Template.Rows.Add(GB_Class_dataRows_DS(GB_List[GB_List.Count - 1], i)); } Template.Borders = DevExpress.XtraPrinting.BorderSide.All; Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; Template.LocationF = new PointF(5, LowPlace); Template.SizeF = new SizeF(640, 0); this.Detail.Controls.Add(Template); LowPlace = LowPlace + Template.SizeF.Height + 50; } private XRTableRow GB_Class_dataRow(DataTable dt,int index) { XRTableRow Template_Rows_A_Class_data = new XRTableRow(); XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell(); Template_Rows_A_cell_data_Class.WidthF = 73.96f; Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["Class"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class); XRTableCell Template_Rows_A_cell_data_Width = new XRTableCell(); Template_Rows_A_cell_data_Width.WidthF = 85.42f; Template_Rows_A_cell_data_Width.Text = dt.Rows[index]["Width/um"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Width); XRTableCell Template_Rows_A_cell_data_1 = new XRTableCell(); Template_Rows_A_cell_data_1.WidthF = 43.69f; Template_Rows_A_cell_data_1.Text = dt.Rows[index]["0.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_1); XRTableCell Template_Rows_A_cell_data_2 = new XRTableCell(); Template_Rows_A_cell_data_2.WidthF = 43.69f; Template_Rows_A_cell_data_2.Text = dt.Rows[index]["0.5"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_2); XRTableCell Template_Rows_A_cell_data_3 = new XRTableCell(); Template_Rows_A_cell_data_3.WidthF = 43.69f; Template_Rows_A_cell_data_3.Text = dt.Rows[index]["1.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_3); XRTableCell Template_Rows_A_cell_data_4 = new XRTableCell(); Template_Rows_A_cell_data_4.WidthF = 43.69f; Template_Rows_A_cell_data_4.Text = dt.Rows[index]["1.5"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_4); XRTableCell Template_Rows_A_cell_data_5 = new XRTableCell(); Template_Rows_A_cell_data_5.WidthF = 43.69f; Template_Rows_A_cell_data_5.Text = dt.Rows[index]["2.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_5); XRTableCell Template_Rows_A_cell_data_6 = new XRTableCell(); Template_Rows_A_cell_data_6.WidthF = 43.69f; Template_Rows_A_cell_data_6.Text = dt.Rows[index]["2.5"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_6); XRTableCell Template_Rows_A_cell_data_7 = new XRTableCell(); Template_Rows_A_cell_data_7.WidthF = 43.69f; Template_Rows_A_cell_data_7.Text = dt.Rows[index]["3.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_7); XRTableCell Template_Rows_A_cell_data_8 = new XRTableCell(); Template_Rows_A_cell_data_8.WidthF = 43.69f; Template_Rows_A_cell_data_8.Text = dt.Rows[index]["3.5"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_8); XRTableCell Template_Rows_A_cell_data_9 = new XRTableCell(); Template_Rows_A_cell_data_9.WidthF = 43.69f; Template_Rows_A_cell_data_9.Text = dt.Rows[index]["4.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_9); XRTableCell Template_Rows_A_cell_data_10 = new XRTableCell(); Template_Rows_A_cell_data_10.WidthF = 43.69f; Template_Rows_A_cell_data_10.Text = dt.Rows[index]["4.5"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_10); XRTableCell Template_Rows_A_cell_data_11 = new XRTableCell(); Template_Rows_A_cell_data_11.WidthF = 43.69f; Template_Rows_A_cell_data_11.Text = dt.Rows[index]["5.0"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_11); return Template_Rows_A_Class_data; } private XRTableRow GB_Class_dataRows_DS(DataTable dt, int index) { XRTableRow Template_Rows_A_Class_data = new XRTableRow(); XRTableCell Template_Rows_A_cell_data_Class = new XRTableCell(); Template_Rows_A_cell_data_Class.WidthF = 106.67f; Template_Rows_A_cell_data_Class.Text = dt.Rows[index]["No."].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Class); XRTableCell Template_Rows_A_cell_data_Area = new XRTableCell(); Template_Rows_A_cell_data_Area.WidthF = 106.67f; Template_Rows_A_cell_data_Area.Text = dt.Rows[index]["Area/um2"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Area); XRTableCell Template_Rows_A_cell_data_MaxFeret = new XRTableCell(); Template_Rows_A_cell_data_MaxFeret.WidthF = 106.67f; Template_Rows_A_cell_data_MaxFeret.Text = dt.Rows[index]["MaxFeret/um"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_MaxFeret); XRTableCell Template_Rows_A_cell_data_X = new XRTableCell(); Template_Rows_A_cell_data_X.WidthF = 106.67f; Template_Rows_A_cell_data_X.Text = dt.Rows[index]["X/um"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_X); XRTableCell Template_Rows_A_cell_data_Y = new XRTableCell(); Template_Rows_A_cell_data_Y.WidthF = 106.67f; Template_Rows_A_cell_data_Y.Text = dt.Rows[index]["Y/um"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Y); XRTableCell Template_Rows_A_cell_data_Grade = new XRTableCell(); Template_Rows_A_cell_data_Grade.WidthF = 106.67f; Template_Rows_A_cell_data_Grade.Text = dt.Rows[index]["Grade"].ToString(); Template_Rows_A_Class_data.Controls.Add(Template_Rows_A_cell_data_Grade); return Template_Rows_A_Class_data; } private void GB_NameData(out DataTable GBName_dt ,out DataTable GBName_dt_DS) { DataTable HeaderData = new DataTable(); HeaderData.Columns.Add("Class"); HeaderData.Columns.Add("Width/um"); HeaderData.Columns.Add("0.0"); HeaderData.Columns.Add("0.5"); HeaderData.Columns.Add("1.0"); HeaderData.Columns.Add("1.5"); HeaderData.Columns.Add("2.0"); HeaderData.Columns.Add("2.5"); HeaderData.Columns.Add("3.0"); HeaderData.Columns.Add("3.5"); HeaderData.Columns.Add("4.0"); HeaderData.Columns.Add("4.5"); HeaderData.Columns.Add("5.0"); DataRow dr = HeaderData.NewRow(); dr["Class"] = "Class"; dr["Width/um"] = "Width/um"; dr["0.0"] = "0.0"; dr["0.5"] = "0.5"; dr["1.0"] = "1.0"; dr["1.5"] = "1.5"; dr["2.0"] = "2.0"; dr["2.5"] = "2.5"; dr["3.0"] = "3.0"; dr["3.5"] = "3.5"; dr["4.0"] = "4.0"; dr["4.5"] = "4.5"; dr["5.0"] = "5.0"; HeaderData.Rows.Add(dr); GBName_dt = HeaderData.Copy(); DataTable HeaderData_DS = new DataTable(); HeaderData_DS.Columns.Add("No."); HeaderData_DS.Columns.Add("Area/um2"); HeaderData_DS.Columns.Add("MaxFeret/um"); HeaderData_DS.Columns.Add("X/um"); HeaderData_DS.Columns.Add("Y/um"); HeaderData_DS.Columns.Add("Grade"); DataRow dr_DS = HeaderData_DS.NewRow(); dr_DS["No."] = "No."; dr_DS["Area/um2"] = "Area/um2"; dr_DS["MaxFeret/um"] = "MaxFeret/um"; dr_DS["X/um"] = "X/um"; dr_DS["Y/um"] = "Y/um"; dr_DS["Grade"] = "Grade"; HeaderData_DS.Rows.Add(dr_DS); GBName_dt_DS = HeaderData_DS.Copy(); } /// /// 首页部分数据插入 /// /// public void setResultGrid(c_TemplateClass m_mbszclass) { #region 从Grid表中读取样品数据 //------------------加载模块,获取数据------------------------------------------------- ResultGrid ls_resultgrid = new ResultGrid(m_otsreport_export.m_ReportApp); Dictionary keyValues_ResultGrid = ls_resultgrid.GetData_ResultGrid_Report(); //------------------加载模块,获取数据结束---------------------------------------------- Dictionary.Enumerator en = keyValues_ResultGrid.GetEnumerator(); keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col1"].ToString(), out string str_CLJGMC);//测量结果名称 keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col4"].ToString(), out string str_YXSJ);//运行时间 keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col5"].ToString(), out string str_SCZS);//视场总数 keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col6"].ToString(), out string str_FLFA);//分类方案 keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col7"].ToString(), out string str_YJCTZ);//已检测特征 keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col8"].ToString(), out string str_SCMJ);//视场面积 keyValues_ResultGrid.TryGetValue("Magnification", out string Magnification);//放大倍数 #endregion setXRLabelData(GB_dev_jcjgwj_text, str_CLJGMC); setXRLabelData(GB_dev_yxsj_text, str_YXSJ); setXRLabelData(GB_dev_sczs_text, str_SCZS); setXRLabelData(GB_dev_flfa_text, str_FLFA); setXRLabelData(GB_dev_yjctz_text, str_YJCTZ); setXRLabelData(GB_dev_scmj_text, str_SCMJ); setXRLabelData(GB_dev_ckbz_text, "GB30834"); } } }