using DevExpress.XtraCharts; using DevExpress.XtraPrinting.Drawing; using DevExpress.XtraReports.UI; using OTSIncAReportApp.OTSTemplateDesigner; using OTSIncAReportGrids; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using static OTSIncAReportApp.OTSReport_Export; namespace OTSIncAReportApp._1_UI.OTSTemplateDesigner { public partial class OTS_DEVReport : DevExpress.XtraReports.UI.XtraReport { public OTSReport_Export m_otsreport_export; //string typeface = "Arial Unicode MS"; string Schriftart_chinese = "微软雅黑"; string Schriftart_english = "Arial Unicode MS"; List TemplateList; Export_ReportTemplate export_ReportTemplate; //SizeF syx_Size = new SizeF(668f, 660.54f); SizeF syx_Size = new SizeF(668f, 616.67f); //float LowPlace = 3120f; float NeueStartposition = 3300f; ElementSubscript subscript=new ElementSubscript(); c_TemplateClass TemplateClass; public OTS_DEVReport(OTSReport_Export in_export, c_TemplateClass a_Template) { TemplateClass = a_Template; m_otsreport_export = in_export; ElementSubscript subscript = new ElementSubscript(); export_ReportTemplate = new Export_ReportTemplate(m_otsreport_export); TemplateList = new List(); //加载三元相图各项 string pathtpf = in_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.TrigTemplateFileFolder + "\\" + in_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.TriTempFile; DataSet ds = DataOperation.DataAccess.XMLoperate.GetXmlData(pathtpf, "XMLData"); DataTable dt = ds.Tables["Member"]; foreach (DataRow item in dt.Rows) { if (item["TemplateName"].ToString() != "") { TemplateList.Add(item["TemplateName"].ToString()); } } InitializeComponent(); } #region 接口 /// /// 国际化显示 /// /// public void International_language(DataTable languageData) { setXRLabelData(dev_ypbh_up, GetlanguageData(dev_ypbh_up.Name.ToString(), languageData));//样品编号(中间的) setXRLabelData(dev_bgsj_up, GetlanguageData(dev_bgsj_up.Name.ToString(), languageData));//报告时间(中间的) setXRLabelData(dev_jcjgwj_up, GetlanguageData(dev_jcjgwj_up.Name.ToString(), languageData));//检测结果文件(中间的) setXRLabelData(dev_ckbz_up, GetlanguageData(dev_ckbz_up.Name.ToString(), languageData));//参考标准(中间的) setXRLabelData(dev_ypsm, GetlanguageData(dev_ypsm.Name.ToString(), languageData));//表中样品说明 setXRLabelData(dev_jcjgwj, GetlanguageData(dev_jcjgwj.Name.ToString(), languageData));//表中测量结果名称 setXRLabelData(dev_cljggk, GetlanguageData(dev_cljggk.Name.ToString(), languageData));//表中测量结果概况 setXRLabelData(dev_yxsj, GetlanguageData(dev_yxsj.Name.ToString(), languageData));//表中运行时间 setXRLabelData(dev_sczs, GetlanguageData(dev_sczs.Name.ToString(), languageData));//表中视场总数 setXRLabelData(dev_flfa, GetlanguageData(dev_flfa.Name.ToString(), languageData));//表中分类方案 setXRLabelData(dev_ckbz, GetlanguageData(dev_ckbz.Name.ToString(), languageData));//表中参考标准 setXRLabelData(dev_yjctz, GetlanguageData(dev_yjctz.Name.ToString(), languageData));//表中已检测特征 setXRLabelData(dev_scmj, GetlanguageData(dev_scmj.Name.ToString(), languageData));//表中视场面积 setXRLabelData(dev_bgsj, GetlanguageData(dev_bgsj.Name.ToString(), languageData));//表中报告时间 setXRLabelData(dev_fdbs, GetlanguageData(dev_fdbs.Name.ToString(), languageData));//表中放大倍数 //颗粒列表图 setXRLabelData(xrLabel_size_IconQuestion_Class, GetlanguageData(xrLabel_size_IconQuestion_Class.Name.ToString(), languageData));//大类图表头 setXRLabelData(xrLabel_size_IconQuestion_Subdivision, GetlanguageData(xrLabel_size_IconQuestion_Subdivision.Name.ToString(), languageData));//细分类表头 //元素分析表 setXRLabelData(xrCellElementArea, GetlanguageData(xrCellElementArea.Name.ToString(), languageData));//元素分析表表头 setXRLabelData(xrCellElementArea_details, GetlanguageData(xrCellElementArea_details.Name.ToString(), languageData));//详情 setXRLabelData(xrCell_Element_classify, GetlanguageData(xrCell_Element_classify.Name.ToString(), languageData));//分类 setXRLabelData(xrCell_Element_subdivision, GetlanguageData(xrCell_Element_subdivision.Name.ToString(), languageData));//细分 setXRLabelData(xrCell_Element_Area, GetlanguageData(xrCell_Element_Area.Name.ToString(), languageData));//面积 //元素分析表———————— setXRLabelData(xrTableCell30, GetlanguageData(xrCellElementArea.Name.ToString(), languageData));//元素分析表表头 setXRLabelData(xrTableCell31, GetlanguageData(xrCellElementArea_details.Name.ToString(), languageData));//详情 //夹杂物面积比 setXRLabelData(xrCellAreaOfInclusion, GetlanguageData(xrCellAreaOfInclusion.Name.ToString(), languageData));//夹杂物面积比表表头 setXRLabelData(xrCell_inclusion_classify, GetlanguageData(xrCell_inclusion_classify.Name.ToString(), languageData));//分类 setXRLabelData(xrCell_inclusion_subdivision, GetlanguageData(xrCell_inclusion_subdivision.Name.ToString(), languageData));//细分类 setXRLabelData(xrCell_inclusion_Area, GetlanguageData(xrCell_inclusion_Area.Name.ToString(), languageData));//面积(μm^2) setXRLabelData(xrCell_inclusion_percentageOfIncA, GetlanguageData(xrCell_inclusion_percentageOfIncA.Name.ToString(), languageData));//夹杂物比(%) setXRLabelData(xrCell_inclusion_FieldRatio, GetlanguageData(xrCell_inclusion_FieldRatio.Name.ToString(), languageData));//视场占比(%) //夹杂物面积比图 setXRLabelData(xrLabel_inca_pic_class, GetlanguageData(xrLabel_inca_pic_class.Name.ToString(), languageData));//夹杂物面积比图 setXRLabelData(xrLabel_inca_pic_subdivision, GetlanguageData(xrLabel_inca_pic_subdivision.Name.ToString(), languageData));//夹杂物面积比细分图 setXRLabelData(dev_DimensionTable, GetlanguageData(dev_DimensionTable.Name.ToString(), languageData));//颗粒尺寸分析结果 setXRLabelData(dev_DimensionTable_2, GetlanguageData(dev_DimensionTable_2.Name.ToString(), languageData));//尺寸计算基于: //颗粒尺寸表 setXRLabelData(dev_classify, GetlanguageData(dev_classify.Name.ToString(), languageData));//分类 setXRLabelData(dev_subdivision, GetlanguageData(dev_subdivision.Name.ToString(), languageData));//二级分类(子分类) setXRLabelData(dev_quantity, GetlanguageData(dev_quantity.Name.ToString(), languageData));//数量 } /// /// 首页部分数据插入 /// /// public void setResultGrid() { #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 #region 加载Grid表数据 setTableCellData(dev_jcjgwj_text, str_CLJGMC);//测量结果名称 setTableCellData(dev_yxsj_text, str_YXSJ);//运行时间 setTableCellData(dev_sczs_text, str_SCZS);//视场总数 setTableCellData(dev_flfa_text, str_FLFA);//分类方案 setTableCellData(dev_yjctz_text, str_YJCTZ);//已检测特征 setTableCellData(dev_scmj_text, str_SCMJ);//视场面积 setTableCellData(dev_fdbs_text, Magnification);//放大倍数 setTableCellData(dev_bgsj_text, DateTime.Now.ToShortDateString().ToString());//报告时间: setTableCellData(dev_ckbz_text, TemplateClass.M_SY.str_tb_CKBZ.ToString());//参考标准 #endregion #region 加载模板设置文档数据 setXRLabelData(dev_ym, TemplateClass.M_YMYJ.str_tb_ymwb.ToString());//页眉 setXRLabelData(dev_yj, TemplateClass.M_YMYJ.str_tb_yjwb.ToString());//页脚 setXRLabelData(dev_zbt, TemplateClass.M_SY.str_tb_ZBT.ToString());//主标题 setXRLabelData(dev_fbt, TemplateClass.M_SY.str_tb_FBT.ToString());//副标题 setXRLabelData(dev_ypbh_text_up, TemplateClass.M_SY.str_tb_YPBH.ToString());//样品编号 setXRLabelData(dev_bgsj_text_up, DateTime.Now.ToShortDateString().ToString());//当前日期 setXRLabelData(dev_jcjgwj_text_up, str_CLJGMC);//测量结果名称 setXRLabelData(dev_ckbz_text_up, TemplateClass.M_SY.str_tb_CKBZ.ToString());//参考标准 #endregion } /// /// 颗粒尺寸分析表 /// /// public void setParticleSizeTable(bool a_pieSeriesClass,bool a_pieSeries) { //ElementSubscript subscript = new ElementSubscript(); // Export_ReportTemplate export_ReportTemplate = new Export_ReportTemplate(m_otsreport_export); export_ReportTemplate.ParticleSizeTable(TemplateClass, out DataTable surface_dt, out DataTable ls_partsize_dt, out DataTable class_dt, out DataTable subdivde_dt,out DataTable colid_data); for (int i=0;i< class_dt.Rows.Count;i++) { class_dt.Rows[i]["Class"] = subscript.Getsubscriptstring(class_dt.Rows[i]["Class"].ToString()); } for (int i=0;i< subdivde_dt.Rows.Count;i++) { subdivde_dt.Rows[i]["Name"] = subscript.Getsubscriptstring(subdivde_dt.Rows[i]["Name"].ToString()); subdivde_dt.Rows[i]["Class"] = subscript.Getsubscriptstring(subdivde_dt.Rows[i]["Class"].ToString()); } #region 插入数据 xrTa_ParticleSizeTable.Visible = true; xrChart_ParticelSizeCalss.Visible = true; xrChart_ParticelSizeSubdivision.Visible = true; //xrLabel_size_IconQuestion_Class.Visible = true; //xrLabel_size_IconQuestion_Subdivision.Visible = true; List> list_ParticelSizeData = new List>(); for (int i = 0; i < surface_dt.Rows.Count; i++) { list_ParticelSizeData.Add(switch_ParticleSize(subscript.Getsubscriptstring(surface_dt.Rows[i]["Class"].ToString()) , subscript.Getsubscriptstring(surface_dt.Rows[i]["Name"].ToString()), surface_dt.Rows[i]["total"].ToString(), surface_dt.Rows[i]["c1"].ToString(), surface_dt.Rows[i]["c2"].ToString(), surface_dt.Rows[i]["c3"].ToString(), surface_dt.Rows[i]["c4"].ToString(), surface_dt.Rows[i]["c5"].ToString(), surface_dt.Rows[i]["c6"].ToString(), surface_dt.Rows[i]["c7"].ToString())); } //dev_classify.Text = "分类"; dev_classify.Font = new Font(Schriftart_chinese, dev_classify.Font.Size); //dev_subdivision.Text = "子分类"; dev_subdivision.Font = new Font(Schriftart_chinese, dev_subdivision.Font.Size); //dev_quantity.Text = "数量"; dev_quantity.Font = new Font(Schriftart_chinese, dev_quantity.Font.Size); dev_size_1.Text = ls_partsize_dt.Rows[0]["c1"].ToString(); dev_size_2.Text = ls_partsize_dt.Rows[0]["c2"].ToString(); dev_size_3.Text = ls_partsize_dt.Rows[0]["c3"].ToString(); dev_size_4.Text = ls_partsize_dt.Rows[0]["c4"].ToString(); dev_size_5.Text = ls_partsize_dt.Rows[0]["c5"].ToString(); dev_size_6.Text = ls_partsize_dt.Rows[0]["c6"].ToString(); dev_size_7.Text = ls_partsize_dt.Rows[0]["c7"].ToString(); dev_DimensionTable_2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; dev_DimensionTable_2.Text = dev_DimensionTable_2.Text.ToString() + TemplateClass.M_KLFXJG.str_cb_klcc_jsfs.ToString(); dev_DimensionTable_2.Font = new Font(Schriftart_chinese, dev_DimensionTable_2.Font.Size); for (int i = 0; i < surface_dt.Rows.Count; i++) { XRTableRow row = new XRTableRow(); XRTableCell tCell_Class = new XRTableCell(); XRTableCell tCell_Name = new XRTableCell(); XRTableCell tCell_total = new XRTableCell(); XRTableCell tCell_size_1 = new XRTableCell(); XRTableCell tCell_size_2 = new XRTableCell(); XRTableCell tCell_size_3 = new XRTableCell(); XRTableCell tCell_size_4 = new XRTableCell(); XRTableCell tCell_size_5 = new XRTableCell(); XRTableCell tCell_size_6 = new XRTableCell(); XRTableCell tCell_size_7 = new XRTableCell(); tCell_Class.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[0].WidthF; tCell_Name.WidthF= xrTa_ParticleSizeTable.Rows[2].Cells[1].WidthF; tCell_total.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[2].WidthF; tCell_size_1.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[3].WidthF; tCell_size_2.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[4].WidthF; tCell_size_3.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[5].WidthF; tCell_size_4.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[6].WidthF; tCell_size_5.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[7].WidthF; tCell_size_6.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[8].WidthF; tCell_size_7.WidthF = xrTa_ParticleSizeTable.Rows[2].Cells[9].WidthF; XRTableCellData(row, tCell_Class, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Class"); XRTableCellData(row, tCell_Name, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_Name"); XRTableCellData(row, tCell_total, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_total"); XRTableCellData(row, tCell_size_1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_1"); XRTableCellData(row, tCell_size_2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_2"); XRTableCellData(row, tCell_size_3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_3"); XRTableCellData(row, tCell_size_4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_4"); XRTableCellData(row, tCell_size_5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_5"); XRTableCellData(row, tCell_size_6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_6"); XRTableCellData(row, tCell_size_7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ParticelSizeData[i], "size_7"); xrTa_ParticleSizeTable.Rows.Add(row); } #region 大分类chart图 if (a_pieSeriesClass) { xrLabel_size_IconQuestion_Class.Visible = true; DataView dv = class_dt.DefaultView; dv.Sort = "total DESC"; DataTable dt_class_dt = dv.ToTable(); // 实例化饼图对象 Series pieSeriesClass = new Series("尺寸分类", ViewType.Pie); pieSeriesClass.ArgumentScaleType = ScaleType.Qualitative; // 项目名称 pieSeriesClass.ArgumentDataMember = "name"; pieSeriesClass.ValueScaleType = ScaleType.Numerical; //取值字段 pieSeriesClass.ValueDataMembers.AddRange(new string[] { "quantity" }); (pieSeriesClass.Label as PieSeriesLabel).Position = PieSeriesLabelPosition.Inside; //显示百分比 pieSeriesClass.PointOptions.PointView = PointView.ArgumentAndValues; pieSeriesClass.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //设置数据源 pieSeriesClass.DataSource = colid_data; pieSeriesClass.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; // 饼图空间添加 新建的饼图对象 xrChart_ParticelSizeCalss.Series.Add(pieSeriesClass); //右上角分组视图 this.xrChart_ParticelSizeCalss.Legend.MarkerSize = new System.Drawing.Size(20, 20); this.xrChart_ParticelSizeCalss.Legend.TextOffset = 5; this.xrChart_ParticelSizeCalss.Legend.VerticalIndent = 5; this.xrChart_ParticelSizeCalss.Legend.Border.Color = Color.Red;//红色边框 } #endregion #region 细分chart图 if(a_pieSeries) { if (!a_pieSeriesClass) { xrLabel_size_IconQuestion_Subdivision.LocationF = xrLabel_size_IconQuestion_Class.LocationF; xrChart_ParticelSizeSubdivision.LocationF = xrChart_ParticelSizeCalss.LocationF; } xrLabel_size_IconQuestion_Subdivision.Visible = false; DataView dv2 = subdivde_dt.DefaultView; dv2.Sort = "total DESC"; DataTable dt_subdivde_dt = dv2.ToTable(); // 实例化饼图对象 Series pieSeries = new Series("颗粒尺寸细化分类", ViewType.Pie); pieSeries.ArgumentScaleType = ScaleType.Qualitative; // 项目名称 pieSeries.ArgumentDataMember = "Name"; pieSeries.ValueScaleType = ScaleType.Numerical; //取值字段 pieSeries.ValueDataMembers.AddRange(new string[] { "total" }); (pieSeries.Label as PieSeriesLabel).Position = PieSeriesLabelPosition.Inside; //显示百分比 pieSeries.PointOptions.PointView = PointView.ArgumentAndValues; pieSeries.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //设置数据源 pieSeries.DataSource = dt_subdivde_dt; pieSeries.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; // 饼图空间添加 新建的饼图对象 xrChart_ParticelSizeSubdivision.Series.Add(pieSeries); //右上角分组视图 this.xrChart_ParticelSizeSubdivision.Legend.MarkerSize = new System.Drawing.Size(20, 20); this.xrChart_ParticelSizeSubdivision.Legend.TextOffset = 5; this.xrChart_ParticelSizeSubdivision.Legend.VerticalIndent = 5; this.xrChart_ParticelSizeSubdivision.Legend.Border.Color = Color.Red;//红色边框 } #endregion #endregion } /// /// 设置插入元素分析表数据 /// /// public void setElementAvgGrid() { xrTb_ElementAnalysisTable.Visible = true; export_ReportTemplate.InsertReportTemplateTable_ElementAvgGrid(TemplateClass, out DataTable dt1, out DataTable dt2,out DataTable allElement_dt); setXRLabelData(xrCell_Element_s1, dt1.Rows[0][2].ToString()); setXRLabelData(xrCell_Element_s2, dt1.Rows[0][3].ToString()); setXRLabelData(xrCell_Element_s3, dt1.Rows[0][4].ToString()); setXRLabelData(xrCell_Element_s4, dt1.Rows[0][5].ToString()); setXRLabelData(xrCell_Element_s5, dt1.Rows[0][6].ToString()); setXRLabelData(xrCell_Element_s6, dt1.Rows[0][7].ToString()); setXRLabelData(xrCell_Element_s7, dt1.Rows[0][8].ToString()); setXRLabelData(xrCell_Element_s8, dt1.Rows[0][9].ToString()); setXRLabelData(xrCell_Element_s9, dt1.Rows[0][10].ToString()); setXRLabelData(xrCell_Element_s10, dt1.Rows[0][11].ToString()); List> list_ElementalAnalysisData = new List>(); //ElementSubscript subscript = new ElementSubscript(); for (int i = 0; i < dt2.Rows.Count; i++) { double quantity = 0; for (int a=2;a<12;a++) { if (dt2.Rows[i][a].ToString()!="") { quantity = quantity + Convert.ToDouble(dt2.Rows[i][a].ToString()); } } list_ElementalAnalysisData.Add(set_ElementalAnalysis(subscript.Getsubscriptstring(dt2.Rows[i]["Class"].ToString()), subscript.Getsubscriptstring(dt2.Rows[i]["Name"].ToString()), dt2.Rows[i]["Area"].ToString(), dt2.Rows[i][2].ToString(), dt2.Rows[i][3].ToString(), dt2.Rows[i][4].ToString(), dt2.Rows[i][5].ToString(), dt2.Rows[i][6].ToString(), dt2.Rows[i][7].ToString(), dt2.Rows[i][8].ToString(), dt2.Rows[i][9].ToString(), dt2.Rows[i][10].ToString(), dt2.Rows[i][11].ToString())); //list_ElementalAnalysisData.Add(set_ElementalAnalysis(subscript.Getsubscriptstring(dt2.Rows[i]["Class"].ToString()) , subscript.Getsubscriptstring(dt2.Rows[i]["Name"].ToString()), dt2.Rows[i]["Area"].ToString(), // export_ReportTemplate.ParameterNormalization(quantity,Convert.ToDouble(dt2.Rows[i][2].ToString())) , export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(dt2.Rows[i][3].ToString())), // export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(dt2.Rows[i][4].ToString())), export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(dt2.Rows[i][5].ToString())), // export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(dt2.Rows[i][6].ToString())), export_ReportTemplate.ParameterNormalization(quantity,Convert.ToDouble(dt2.Rows[i][7].ToString())), // export_ReportTemplate.ParameterNormalization(quantity,Convert.ToDouble(dt2.Rows[i][8].ToString())), export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(dt2.Rows[i][9].ToString())), // export_ReportTemplate.ParameterNormalization(quantity,Convert.ToDouble(dt2.Rows[i][10].ToString())), export_ReportTemplate.ParameterNormalization(quantity,Convert.ToDouble(dt2.Rows[i][11].ToString())))); } for (int i = 0; i < dt2.Rows.Count; i++) { XRTableRow row = new XRTableRow(); XRTableCell tCell_classify = new XRTableCell(); XRTableCell tCell_subdivision = new XRTableCell(); XRTableCell tCell_area = new XRTableCell(); XRTableCell tCell_s1 = new XRTableCell(); XRTableCell tCell_s2 = new XRTableCell(); XRTableCell tCell_s3 = new XRTableCell(); XRTableCell tCell_s4 = new XRTableCell(); XRTableCell tCell_s5 = new XRTableCell(); XRTableCell tCell_s6 = new XRTableCell(); XRTableCell tCell_s7 = new XRTableCell(); XRTableCell tCell_s8 = new XRTableCell(); XRTableCell tCell_s9 = new XRTableCell(); XRTableCell tCell_s10 = new XRTableCell(); tCell_classify.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[0].WidthF; tCell_subdivision.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[1].WidthF; tCell_area.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[2].WidthF; tCell_s1.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[3].WidthF; tCell_s2.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[4].WidthF; tCell_s3.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[5].WidthF; tCell_s4.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[6].WidthF; tCell_s5.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[7].WidthF; tCell_s6.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[8].WidthF; tCell_s7.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[9].WidthF; tCell_s8.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[10].WidthF; tCell_s9.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[11].WidthF; tCell_s10.WidthF = xrTb_ElementAnalysisTable.Rows[2].Cells[12].WidthF; //tCell_classify.WidthF = 69f; tCell_subdivision.WidthF = 69f; tCell_area.WidthF = 50f; tCell_s1.WidthF = 50f; tCell_s2.WidthF = 50f; //tCell_s3.WidthF = 50f; tCell_s4.WidthF = 50f; tCell_s5.WidthF = 50f; tCell_s6.WidthF = 50f; tCell_s7.WidthF = 50f; tCell_s8.WidthF = 50f; //tCell_s9.WidthF = 50f; tCell_s10.WidthF = 50f; XRTableCellData_ElementAnalysis(row, tCell_classify, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "classify"); XRTableCellData_ElementAnalysis(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "subdivision"); XRTableCellData_ElementAnalysis(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "Area"); XRTableCellData_ElementAnalysis(row, tCell_s1, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s1"); XRTableCellData_ElementAnalysis(row, tCell_s2, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s2"); XRTableCellData_ElementAnalysis(row, tCell_s3, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s3"); XRTableCellData_ElementAnalysis(row, tCell_s4, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s4"); XRTableCellData_ElementAnalysis(row, tCell_s5, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s5"); XRTableCellData_ElementAnalysis(row, tCell_s6, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s6"); XRTableCellData_ElementAnalysis(row, tCell_s7, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s7"); XRTableCellData_ElementAnalysis(row, tCell_s8, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s8"); XRTableCellData_ElementAnalysis(row, tCell_s9, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s9"); XRTableCellData_ElementAnalysis(row, tCell_s10, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_ElementalAnalysisData[i], "s10"); xrTb_ElementAnalysisTable.Rows.Add(row); } xrTb_ElementAnalysis.Visible = true; xrPageBreak6.Visible = true; for (int i=0;i< allElement_dt.Rows.Count;i++) { double quantity = 0; for (int a = 4; a < allElement_dt.Columns.Count; a++) { if(allElement_dt.Rows[i][a].ToString()!="") { quantity = quantity + Convert.ToDouble(allElement_dt.Rows[i][a].ToString()); } } string str_data = ""; for (int a=4;a< allElement_dt.Columns.Count;a++) { if (allElement_dt.Rows[i][a].ToString()!="") { str_data = str_data + allElement_dt.Columns[a].ColumnName.ToString() + "=" + export_ReportTemplate.ParameterNormalization(quantity, Convert.ToDouble(allElement_dt.Rows[i][a].ToString())) + "%" + " "; } } xrTb_ElementAnalysis.Rows.Add(addElementalAnalysisRows(allElement_dt.Rows[i]["Name"].ToString(), str_data)); } } private XRTableRow addElementalAnalysisRows(string className,string data) { XRTableRow row = new XRTableRow(); XRTableCell tCell_class = new XRTableCell(); XRTableCell tCell_data = new XRTableCell(); tCell_class.Text = className; tCell_class.WidthF = 116.29f; tCell_data.Text = data; tCell_data.WidthF = 551.71f; row.Controls.Add(tCell_class); row.Controls.Add(tCell_data); return row; } /// /// 设置插入夹杂物面积比表数据 /// /// public void setINCAtable() { //ElementSubscript subscript = new ElementSubscript(); export_ReportTemplate.GenerateINCAtable(dev_scmj_text.Text, out DataTable dt); xr_tbAreaOfInclusion.Visible = true; List> list_AreaOfInclusion = new List>(); for (int i = 0; i < dt.Rows.Count; i++) { list_AreaOfInclusion.Add(set_AreaOfInclusion(subscript.Getsubscriptstring(dt.Rows[i]["Class"].ToString()) , subscript.Getsubscriptstring(dt.Rows[i]["subdivision"].ToString()), dt.Rows[i]["Area"].ToString(), dt.Rows[i]["inca_proportion"].ToString(), dt.Rows[i]["inca_FieldRatio"].ToString())); } for (int i = 0; i < dt.Rows.Count; i++) { XRTableRow row = new XRTableRow(); XRTableCell tCell_classify = new XRTableCell(); XRTableCell tCell_subdivision = new XRTableCell(); XRTableCell tCell_area = new XRTableCell(); XRTableCell tCell_inca_proportion = new XRTableCell(); XRTableCell tCell_inca_FieldRatio = new XRTableCell(); XRTableCellData_AreaOfInclusion(row, tCell_classify, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "classify"); XRTableCellData_AreaOfInclusion(row, tCell_subdivision, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "subdivision"); XRTableCellData_AreaOfInclusion(row, tCell_area, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "Area"); XRTableCellData_AreaOfInclusion(row, tCell_inca_proportion, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_proportion"); XRTableCellData_AreaOfInclusion(row, tCell_inca_FieldRatio, Schriftart_english, DevExpress.XtraPrinting.TextAlignment.MiddleCenter, "Text", list_AreaOfInclusion[i], "inca_FieldRatio"); xr_tbAreaOfInclusion.Rows.Add(row); } } /// /// 设置插入夹杂物面积比图像 /// /// public void set_incaPIC_classify() { xrChart_incaClass.Visible = true; xrLabel_inca_pic_class.Visible = true; DataTable data = export_ReportTemplate.ClassificationIntegration(TemplateClass, dev_sczs_text.Text); for (int i=0;i /// 三元图 /// /// public void InsertReportTemplateChart_Trianglediagram() { List Color_list = new List(); Color_list.Add(Color.FromArgb(238, 175, 14)); Color_list.Add(Color.FromArgb(0, 0, 238)); Color_list.Add(Color.FromArgb(0, 205, 0)); Color_list.Add(Color.FromArgb(238, 0, 0)); Color_list.Add(Color.FromArgb(153, 50, 204)); Color_list.Add(Color.FromArgb(255, 102, 153)); Color_list.Add(Color.FromArgb(160, 82, 45)); Color_list.Add(Color.FromArgb(181, 181, 181)); Color_list.Add(Color.FromArgb(250, 235, 215)); Color_list.Add(Color.FromArgb(238, 130, 238)); Color_list.Add(Color.FromArgb(174, 238, 238)); Color_list.Add(Color.FromArgb(247, 172, 189)); Color_list.Add(Color.FromArgb(202, 134, 135)); Color_list.Add(Color.FromArgb(34, 90, 31)); Color_list.Add(Color.FromArgb(238, 175, 14)); Color_list.Add(Color.FromArgb(0, 0, 238)); Color_list.Add(Color.FromArgb(0, 205, 0)); Color_list.Add(Color.FromArgb(238, 0, 0)); Color_list.Add(Color.FromArgb(153, 50, 204)); Color_list.Add(Color.FromArgb(255, 102, 153)); Color_list.Add(Color.FromArgb(160, 82, 45)); Color_list.Add(Color.FromArgb(181, 181, 181)); Color_list.Add(Color.FromArgb(250, 235, 215)); Color_list.Add(Color.FromArgb(238, 130, 238)); Color_list.Add(Color.FromArgb(174, 238, 238)); Color_list.Add(Color.FromArgb(247, 172, 189)); Color_list.Add(Color.FromArgb(202, 134, 135)); Color_list.Add(Color.FromArgb(34, 90, 31)); for (int i = 0; i < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count; i=i+4) { set_syt_pic_legend(Color_list); if (i< TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count) { set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i], Color_list, new PointF(10f, NeueStartposition + 2)); } if (i+1 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count) { set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i+1], Color_list, new PointF(343.8f, NeueStartposition + 2)); } if (i+2 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count) { set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i+2], Color_list, new PointF(10f, NeueStartposition + 345+5)); } if (i + 3 < TemplateClass.M_SYXT.list_lbv_syxt_mblb_index.Count) { set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i+3], Color_list, new PointF(343.8f, NeueStartposition + 345+5)); } //set_syt_pic(TemplateClass, TemplateClass.M_SYXT.list_lbv_syxt_mblb_index[i], Color_list); XRLine rLine = new XRLine(); rLine.SizeF = new SizeF(5f, 698.5f); rLine.LineDirection = LineDirection.Vertical; rLine.LocationF = new PointF(335f, NeueStartposition+2); this.Detail.Controls.Add(rLine); XRLine rLine_level = new XRLine(); rLine_level.SizeF = new SizeF(668f, 5f); rLine_level.LineDirection = LineDirection.Horizontal; rLine_level.LocationF = new PointF(10f, NeueStartposition + 345); this.Detail.Controls.Add(rLine_level); XRPageBreak xRPage = new XRPageBreak(); xRPage.LocationF = new PointF(0, NeueStartposition + 850); NeueStartposition = NeueStartposition + 870; this.Detail.Controls.Add(xRPage); } } /// /// 颗粒列表 /// /// public void set_kllb_data() { XRPageBreak xRPage = new XRPageBreak(); xRPage.Name = "kllb_Page"; xRPage.LocationF = new PointF(0, NeueStartposition + 2); this.Detail.Controls.Add(xRPage); xrTable_kllb_surface.LocationF = new PointF(0, NeueStartposition + 5); xrTable_kllb_surface.Visible = true; NeueStartposition = xrTable_kllb_surface.LocationF.Y + xrTable_kllb_surface.SizeF.Height; // Export_ReportTemplate export_ReportTemplate = new Export_ReportTemplate(m_otsreport_export); DataTable dataTable = export_ReportTemplate.Get_dev_kllb_data(TemplateClass); for (int i = 0; i < dataTable.Rows.Count; i++) { dataTable.Rows[i]["Class"] = subscript.Getsubscriptstring(dataTable.Rows[i]["Class"].ToString()); } for (int i = 0; i < dataTable.Rows.Count; i++) { XRTable table = add_XRTable(); add_kllb(TemplateClass, dataTable, i, table); } NeueStartposition = NeueStartposition + 10; } /// /// 颗粒列表 帧图 /// /// public void set_kllb_data_frame() { // Export_ReportTemplate export_ReportTemplate = new Export_ReportTemplate(m_otsreport_export); export_ReportTemplate.Get_dev_kllb_data_frame(TemplateClass, out DataTable dt_pic, out List listData); for (int i=0;i< listData.Count;i++) { for (int a=0;a< listData[i].Rows.Count;a++) { listData[i].Rows[a]["Class"] = subscript.Getsubscriptstring(listData[i].Rows[a]["Class"].ToString()); } } for (int i = 0; i < dt_pic.Rows.Count; i++) { //分页符 XRPageBreak xRPage = new XRPageBreak(); xRPage.Name = "framePage_" + i.ToString(); xRPage.LocationF = new PointF(0, NeueStartposition); NeueStartposition = NeueStartposition + 10; this.Detail.Controls.Add(xRPage); //表头 XRTable Template = new XRTable(); XRTableRow Template_Rows_1 = new XRTableRow(); XRTableRow Template_Rows_2 = new XRTableRow(); XRTableCell Template_Rows1_Cell_1 = new XRTableCell(); XRTableCell Template_Rows2_Cell_1 = new XRTableCell(); Template_Rows1_Cell_1.WidthF = 688f; Template_Rows2_Cell_1.WidthF = 688f; Template_Rows_1.Controls.Add(Template_Rows1_Cell_1); Template_Rows_2.Controls.Add(Template_Rows2_Cell_1); Template.Rows.Add(Template_Rows_1); Template.Rows.Add(Template_Rows_2); Template.SizeF = new SizeF(688f, 25f); Template.Rows[0].Cells[0].Text = "帧图 " + dt_pic.Rows[i]["id"]; Template.LocationF = new PointF(0, NeueStartposition); Template.Borders = DevExpress.XtraPrinting.BorderSide.All; Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; Template.Rows[0].Font = new Font(Schriftart_chinese, 14f, FontStyle.Bold); Template.Rows[0].BackColor = Color.DarkGray; this.Detail.Controls.Add(Template); //图片 XRPictureBox xRPicture = new XRPictureBox(); xRPicture.Name = "frameName_" + i.ToString(); xRPicture.SizeF = new SizeF(688f, 485f); xRPicture.ImageAlignment = DevExpress.XtraPrinting.ImageAlignment.MiddleCenter; xRPicture.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze; ImageSource imageSource = new ImageSource((Bitmap)dt_pic.Rows[i]["Field_pic"]); xRPicture.ImageSource = imageSource; xRPicture.LocationF = new PointF(0, NeueStartposition + Template.SizeF.Height); xRPicture.Borders = DevExpress.XtraPrinting.BorderSide.All; this.Detail.Controls.Add(xRPicture); NeueStartposition = NeueStartposition + xRPicture.SizeF.Height + Template.SizeF.Height; for (int a = 0; a < listData.Count; a++) { if (dt_pic.Rows[i]["id"].ToString() == listData[a].Rows[0]["FieldId"].ToString()) { for (int b = 0; b < listData[a].Rows.Count; b++) { //数据表 XRTable xRTable = add_XRTable_frame(); xRTable.Rows[0].Cells[0].Text = "图像"; xRTable.Rows[0].Cells[0].Font = new Font(Schriftart_chinese, xRTable.Rows[0].Cells[0].Font.Size); xRTable.Rows[0].Cells[1].Text = "分类"; xRTable.Rows[0].Cells[1].Font = new Font(Schriftart_chinese, xRTable.Rows[0].Cells[1].Font.Size); xRTable.Rows[0].Cells[2].Text = TemplateClass.M_KLLBXX.str_cb_kllb_chartSort_p1.ToString(); xRTable.Rows[0].Cells[3].Text = TemplateClass.M_KLLBXX.str_cb_kllb_chartSort_p2.ToString(); XRPictureBox xRPicture1 = new XRPictureBox(); xRPicture1.ImageSource = new ImageSource((Bitmap)listData[a].Rows[b]["pic"]); xRPicture1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze; xRPicture1.SizeF = new SizeF(94, 35); //xRPicture1.BackColor = Color.DarkGray; xRTable.Rows[1].Cells[0].Controls.Add(xRPicture1); xRTable.Rows[1].Cells[1].Text = listData[a].Rows[b]["Class"].ToString(); xRTable.Rows[1].Cells[2].Text = listData[a].Rows[b]["pid"].ToString(); xRTable.Rows[1].Cells[3].Text = listData[a].Rows[b]["Size"].ToString(); for (int c = 0; c < 10; c++) { xRTable.Rows[2].Cells[c].Text = listData[a].Rows[b]["ColName" + (c + 1).ToString()].ToString(); xRTable.Rows[3].Cells[c].Text = listData[a].Rows[b]["ColVal" + (c + 1).ToString()].ToString(); } xRTable.LocationF = new PointF(0, NeueStartposition ); this.Detail.Controls.Add(xRTable); NeueStartposition = NeueStartposition + xRTable.SizeF.Height +1 ; //NeueStartposition = NeueStartposition + xRTable.SizeF.Height + 5 + 2; } } } } } #endregion private void setTableCellData(XRTableCell cell, string str) { cell.Text = str; cell.Font = new Font(Schriftart_chinese, cell.Font.Size); } private void setXRLabelData(XRLabel cell, string str) { cell.Text = str; cell.Font = new Font(Schriftart_chinese, 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 ""; } #region 整理成DEV需要的数据格式 private void XRTableCellData(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List switchDEVDatas, string cellName) { rTableCell.TextAlignment = textAlignment; rTableCell.Font = new Font(typeface, rTableCell.Font.Size); xR.Cells.Add(rTableCell); rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName); } private void XRTableCellData_ElementAnalysis(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List switchDEVDatas, string cellName) { rTableCell.TextAlignment = textAlignment; rTableCell.Font = new Font(typeface, rTableCell.Font.Size); xR.Cells.Add(rTableCell); rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName); } private void XRTableCellData_AreaOfInclusion(XRTableRow xR, XRTableCell rTableCell, string typeface, DevExpress.XtraPrinting.TextAlignment textAlignment, string cellText, List switchDEVDatas, string cellName) { rTableCell.TextAlignment = textAlignment; rTableCell.Font = new Font(typeface, rTableCell.Font.Size); xR.Cells.Add(rTableCell); rTableCell.DataBindings.Add(cellText, switchDEVDatas, cellName); } /// /// 颗粒尺寸表向list中插入数据 /// /// /// /// /// /// /// /// /// /// /// /// private List switch_ParticleSize(string Class, string Name, string total, string size_1, string size_2, string size_3, string size_4, string size_5, string size_6, string size_7) { List oTS_DEVs = new List(); oTS_DEVs.Add(new ParticleSizeDEVData { size_total = total, size_Class = Class, size_Name = Name, size_1 = size_1, size_2 = size_2, size_3 = size_3, size_4 = size_4, size_5 = size_5, size_6 = size_6, size_7 = size_7 }); return oTS_DEVs; } /// /// 元素分析表向list中插入数据 /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// private List 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) { List oTS_DEVs = new List(); oTS_DEVs.Add(new ElementalAnalysisDEVData { classify = classify, subdivision = subdivision, Area = area, s1 = s1, s2 = s2, s3 = s3, s4 = s4, s5 = s5, s6 = s6, s7 = s7, s8 = s8, s9 = s9, s10 = s10 }); return oTS_DEVs; } /// /// 夹杂物分析表(清洁度不需要) /// /// /// /// /// /// /// private List set_AreaOfInclusion(string classify, string subdivision, string Area, string inca_proportion, string inca_FieldRatio) { List oTS_DEVs = new List(); oTS_DEVs.Add(new AreaOfInclusionDEVData { classify = classify, subdivision = subdivision, Area = Area, inca_proportion = inca_proportion, inca_FieldRatio = inca_FieldRatio }); return oTS_DEVs; } #endregion #region 三元相图数据 /// /// 动态生成加载三元图图片加分页符 /// /// /// /// /// private void set_syt_pic(c_TemplateClass TemplateClass, int index, List Color_list, PointF position) { XRPictureBox xRPicture = new XRPictureBox(); xRPicture.LocationF = position; xRPicture.SizeF = new SizeF(321f, 330.2f); ImageSource imageSource = new ImageSource(export_ReportTemplate.DrawATernaryPicture(index, TemplateClass, Color_list)); xRPicture.ImageSource = imageSource; xRPicture.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; xRPicture.Visible = true; this.Detail.Controls.Add(xRPicture); //LowPlace = syx_Size.Height + LowPlace ; } private void set_syt_pic_legend(List Color_list) { XRPictureBox xRPicture_legend = new XRPictureBox(); xRPicture_legend.LocationF = new PointF(95f, NeueStartposition); xRPicture_legend.SizeF = new SizeF(504f, 120.85f); xRPicture_legend.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; ImageSource imageSource_legend = new ImageSource(export_ReportTemplate.DrawATernaryDiagramLegend(Color_list)); xRPicture_legend.ImageSource = imageSource_legend; NeueStartposition = NeueStartposition + xRPicture_legend.SizeF.Height; this.Detail.Controls.Add(xRPicture_legend); } #endregion #region 颗粒列表 private XRTable add_XRTable() { XRTable Template = new XRTable(); XRTableRow Template_Rows_1 = new XRTableRow(); XRTableCell Template_Rows1_Cell_1 = new XRTableCell(); XRTableCell Template_Rows1_Cell_2 = new XRTableCell(); XRTableCell Template_Rows1_Cell_3 = new XRTableCell(); XRTableCell Template_Rows1_Cell_4 = new XRTableCell(); XRTableCell Template_Rows1_Cell_5 = new XRTableCell(); XRTableCell Template_Rows1_Cell_6 = new XRTableCell(); XRTableRow Template_Rows_2 = new XRTableRow(); XRTableCell Template_Rows2_Cell_1 = new XRTableCell(); XRTableCell Template_Rows2_Cell_2 = new XRTableCell(); XRTableCell Template_Rows2_Cell_3 = new XRTableCell(); XRTableCell Template_Rows2_Cell_4 = new XRTableCell(); XRTableCell Template_Rows2_Cell_5 = new XRTableCell(); XRTableCell Template_Rows2_Cell_6 = new XRTableCell(); XRTableRow Template_Rows_3 = new XRTableRow(); XRTableCell Template_Rows3_Cell_1 = new XRTableCell(); XRTableCell Template_Rows3_Cell_2 = new XRTableCell(); XRTableCell Template_Rows3_Cell_3 = new XRTableCell(); XRTableCell Template_Rows3_Cell_4 = new XRTableCell(); XRTableCell Template_Rows3_Cell_5 = new XRTableCell(); XRTableCell Template_Rows3_Cell_6 = new XRTableCell(); XRTableCell Template_Rows3_Cell_7 = new XRTableCell(); XRTableCell Template_Rows3_Cell_8 = new XRTableCell(); XRTableCell Template_Rows3_Cell_9 = new XRTableCell(); XRTableCell Template_Rows3_Cell_10 = new XRTableCell(); XRTableCell Template_Rows3_Cell_11 = new XRTableCell(); XRTableRow Template_Rows_4 = new XRTableRow(); XRTableCell Template_Rows4_Cell_1 = new XRTableCell(); XRTableCell Template_Rows4_Cell_2 = new XRTableCell(); XRTableCell Template_Rows4_Cell_3 = new XRTableCell(); XRTableCell Template_Rows4_Cell_4 = new XRTableCell(); XRTableCell Template_Rows4_Cell_5 = new XRTableCell(); XRTableCell Template_Rows4_Cell_6 = new XRTableCell(); XRTableCell Template_Rows4_Cell_7 = new XRTableCell(); XRTableCell Template_Rows4_Cell_8 = new XRTableCell(); XRTableCell Template_Rows4_Cell_9 = new XRTableCell(); XRTableCell Template_Rows4_Cell_10 = new XRTableCell(); XRTableCell Template_Rows4_Cell_11 = new XRTableCell(); XRTableRow Template_Rows_5 = new XRTableRow(); XRTableCell Template_Rows5_Cell_1 = new XRTableCell(); Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; Template_Rows1_Cell_1.WidthF = 115.67f; Template_Rows1_Cell_2.WidthF = 57.22f; Template_Rows1_Cell_3.WidthF = 256f; Template_Rows1_Cell_4.WidthF = 85.85f; Template_Rows1_Cell_5.WidthF = 85.85f; Template_Rows1_Cell_6.WidthF = 85.85f; Template_Rows_1.Controls.Add(Template_Rows1_Cell_1); Template_Rows_1.Controls.Add(Template_Rows1_Cell_2); Template_Rows_1.Controls.Add(Template_Rows1_Cell_3); Template_Rows_1.Controls.Add(Template_Rows1_Cell_4); Template_Rows_1.Controls.Add(Template_Rows1_Cell_5); Template_Rows_1.Controls.Add(Template_Rows1_Cell_6); Template_Rows2_Cell_1.WidthF = 115.67f; Template_Rows2_Cell_2.WidthF = 57.22f; Template_Rows2_Cell_3.WidthF = 256f; Template_Rows2_Cell_4.WidthF = 85.85f; Template_Rows2_Cell_5.WidthF = 85.85f; Template_Rows2_Cell_6.WidthF = 85.85f; Template_Rows_2.Controls.Add(Template_Rows2_Cell_1); Template_Rows_2.Controls.Add(Template_Rows2_Cell_2); Template_Rows_2.Controls.Add(Template_Rows2_Cell_3); Template_Rows_2.Controls.Add(Template_Rows2_Cell_4); Template_Rows_2.Controls.Add(Template_Rows2_Cell_5); Template_Rows_2.Controls.Add(Template_Rows2_Cell_6); Template_Rows3_Cell_1.WidthF = 115.67f; Template_Rows3_Cell_2.WidthF = 57.23f;//63.59f Template_Rows3_Cell_3.WidthF = 57.23f; Template_Rows3_Cell_4.WidthF = 57.23f; Template_Rows3_Cell_5.WidthF = 57.23f; Template_Rows3_Cell_6.WidthF = 57.23f; Template_Rows3_Cell_7.WidthF = 57.23f; Template_Rows3_Cell_8.WidthF = 57.23f; Template_Rows3_Cell_9.WidthF = 57.23f; Template_Rows3_Cell_10.WidthF = 57.23f; Template_Rows3_Cell_11.WidthF = 57.23f; Template_Rows_3.Controls.Add(Template_Rows3_Cell_1); Template_Rows_3.Controls.Add(Template_Rows3_Cell_2); Template_Rows_3.Controls.Add(Template_Rows3_Cell_3); Template_Rows_3.Controls.Add(Template_Rows3_Cell_4); Template_Rows_3.Controls.Add(Template_Rows3_Cell_5); Template_Rows_3.Controls.Add(Template_Rows3_Cell_6); Template_Rows_3.Controls.Add(Template_Rows3_Cell_7); Template_Rows_3.Controls.Add(Template_Rows3_Cell_8); Template_Rows_3.Controls.Add(Template_Rows3_Cell_9); Template_Rows_3.Controls.Add(Template_Rows3_Cell_10); Template_Rows_3.Controls.Add(Template_Rows3_Cell_11); Template_Rows4_Cell_1.WidthF = 115.67f; Template_Rows4_Cell_2.WidthF = 57.23f;//63.59f Template_Rows4_Cell_3.WidthF = 57.23f; Template_Rows4_Cell_4.WidthF = 57.23f; Template_Rows4_Cell_5.WidthF = 57.23f; Template_Rows4_Cell_6.WidthF = 57.23f; Template_Rows4_Cell_7.WidthF = 57.23f; Template_Rows4_Cell_8.WidthF = 57.23f; Template_Rows4_Cell_9.WidthF = 57.23f; Template_Rows4_Cell_10.WidthF = 57.23f; Template_Rows4_Cell_11.WidthF = 57.23f; Template_Rows_4.Controls.Add(Template_Rows4_Cell_1); Template_Rows_4.Controls.Add(Template_Rows4_Cell_2); Template_Rows_4.Controls.Add(Template_Rows4_Cell_3); Template_Rows_4.Controls.Add(Template_Rows4_Cell_4); Template_Rows_4.Controls.Add(Template_Rows4_Cell_5); Template_Rows_4.Controls.Add(Template_Rows4_Cell_6); Template_Rows_4.Controls.Add(Template_Rows4_Cell_7); Template_Rows_4.Controls.Add(Template_Rows4_Cell_8); Template_Rows_4.Controls.Add(Template_Rows4_Cell_9); Template_Rows_4.Controls.Add(Template_Rows4_Cell_10); Template_Rows_4.Controls.Add(Template_Rows4_Cell_11); Template_Rows_5.Controls.Add(Template_Rows5_Cell_1); Template.Rows.Add(Template_Rows_1); Template.Rows.Add(Template_Rows_2); Template.Rows.Add(Template_Rows_3); Template.Rows.Add(Template_Rows_4); Template.Rows.Add(Template_Rows_5); Template.SizeF = new SizeF(688f, 125); Template.Rows[0].Font = new Font(Schriftart_english, 12f); Template.Rows[2].Font = new Font(Schriftart_english, 12f); Template.Rows[1].Font = new Font(Schriftart_english, 12f); Template.Rows[3].Font = new Font(Schriftart_english, 12f); Template.Rows[0].BackColor = Color.DarkGray; Template.Rows[2].BackColor = Color.DarkGray; Template.Rows[0].Cells[0].BackColor = Color.Transparent; Template.Rows[2].Cells[0].BackColor = Color.Transparent; Template.Rows[2].BackColor = Color.DarkGray; Template.Borders = DevExpress.XtraPrinting.BorderSide.All; Template.Rows[0].Cells[0].Borders = DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top; Template.Rows[1].Cells[0].Borders = DevExpress.XtraPrinting.BorderSide.Left; Template.Rows[2].Cells[0].Borders = DevExpress.XtraPrinting.BorderSide.Left; Template.Rows[3].Cells[0].Borders = DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom; return Template; } private void add_kllb(c_TemplateClass TemplateClass, DataTable dataTable, int position, XRTable xRTable) { XRTable table = new XRTable(); table = xRTable; table.Name = "table_kllb_" + position.ToString(); table.Rows[0].Cells[1].Text = "ID"; table.Rows[0].Cells[2].Text = "Class"; table.Rows[0].Cells[3].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p1.ToString(); table.Rows[0].Cells[4].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p2.ToString(); table.Rows[0].Cells[5].Text = TemplateClass.M_KLLBXX.str_cb_kllb_sort_p3.ToString(); table.Rows[1].Cells[1].Text = dataTable.Rows[position]["pid"].ToString(); table.Rows[1].Cells[2].Text = dataTable.Rows[position]["Class"].ToString(); table.Rows[1].Cells[3].Text = dataTable.Rows[position]["Size"].ToString(); table.Rows[1].Cells[4].Text = dataTable.Rows[position]["DMAX"].ToString(); table.Rows[1].Cells[5].Text = dataTable.Rows[position]["DMIN"].ToString(); for (int i = 1; i < 11; i++) { table.Rows[2].Cells[i].Text = dataTable.Rows[position]["ColName" + i.ToString()].ToString(); string str_ColVal = ""; if (dataTable.Rows[position]["ColVal" + i.ToString()].ToString() == "0") { str_ColVal = ""; } else { str_ColVal = dataTable.Rows[position]["ColVal" + i.ToString()].ToString(); } table.Rows[3].Cells[i].Text = str_ColVal; } table.Rows[4].Cells[0].BackColor = Color.DarkGray; table.Rows[4].Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; XRPictureBox xRPicture2 = new XRPictureBox(); xRPicture2.ImageSource = new ImageSource((Bitmap)dataTable.Rows[position]["p3"]); xRPicture2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.AutoSize; table.Rows[4].Cells[0].Controls.Add(xRPicture2); table.Visible = true; table.LocationF = new PointF(0, NeueStartposition); table.SendToBack(); //table.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; table.BorderWidth = 0.5f; this.Detail.Controls.Add(table); XRPictureBox xRPicture_pic = new XRPictureBox(); xRPicture_pic.Name = "Picture_kllb_" + position.ToString(); xRPicture_pic.ImageSource = new ImageSource((Image)dataTable.Rows[position]["p1"]); xRPicture_pic.LocationF = new PointF(1, NeueStartposition); xRPicture_pic.Visible = true; xRPicture_pic.BackColor = Color.DarkGray; xRPicture_pic.Sizing = DevExpress.XtraPrinting.ImageSizeMode.Squeeze; xRPicture_pic.SizeF = new SizeF(115f, 96.88f); xRPicture_pic.BringToFront(); this.Detail.Controls.Add(xRPicture_pic); //NeueStartposition = table.SizeF.Height + NeueStartposition+5; NeueStartposition = table.SizeF.Height + NeueStartposition; } #endregion #region 颗粒列表帧图 private XRTable add_XRTable_frame() { XRTable Template = new XRTable(); XRTableRow Template_Rows_1 = new XRTableRow(); XRTableRow Template_Rows_2 = new XRTableRow(); XRTableRow Template_Rows_3 = new XRTableRow(); XRTableRow Template_Rows_4 = new XRTableRow(); XRTableCell Template_Rows1_Cell_1 = new XRTableCell(); XRTableCell Template_Rows1_Cell_2 = new XRTableCell(); XRTableCell Template_Rows1_Cell_3 = new XRTableCell(); XRTableCell Template_Rows1_Cell_4 = new XRTableCell(); XRTableCell Template_Rows2_Cell_1 = new XRTableCell(); XRTableCell Template_Rows2_Cell_2 = new XRTableCell(); XRTableCell Template_Rows2_Cell_3 = new XRTableCell(); XRTableCell Template_Rows2_Cell_4 = new XRTableCell(); XRTableCell Template_Rows3_Cell_1 = new XRTableCell(); XRTableCell Template_Rows3_Cell_2 = new XRTableCell(); XRTableCell Template_Rows3_Cell_3 = new XRTableCell(); XRTableCell Template_Rows3_Cell_4 = new XRTableCell(); XRTableCell Template_Rows3_Cell_5 = new XRTableCell(); XRTableCell Template_Rows3_Cell_6 = new XRTableCell(); XRTableCell Template_Rows3_Cell_7 = new XRTableCell(); XRTableCell Template_Rows3_Cell_8 = new XRTableCell(); XRTableCell Template_Rows3_Cell_9 = new XRTableCell(); XRTableCell Template_Rows3_Cell_10 = new XRTableCell(); XRTableCell Template_Rows4_Cell_1 = new XRTableCell(); XRTableCell Template_Rows4_Cell_2 = new XRTableCell(); XRTableCell Template_Rows4_Cell_3 = new XRTableCell(); XRTableCell Template_Rows4_Cell_4 = new XRTableCell(); XRTableCell Template_Rows4_Cell_5 = new XRTableCell(); XRTableCell Template_Rows4_Cell_6 = new XRTableCell(); XRTableCell Template_Rows4_Cell_7 = new XRTableCell(); XRTableCell Template_Rows4_Cell_8 = new XRTableCell(); XRTableCell Template_Rows4_Cell_9 = new XRTableCell(); XRTableCell Template_Rows4_Cell_10 = new XRTableCell(); Template.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; Template_Rows1_Cell_1.WidthF = 94.63f; Template_Rows1_Cell_2.WidthF = 290f; Template_Rows1_Cell_3.WidthF = 155.73f; Template_Rows1_Cell_4.WidthF = 155.73f; Template_Rows_1.Controls.Add(Template_Rows1_Cell_1); Template_Rows_1.Controls.Add(Template_Rows1_Cell_2); Template_Rows_1.Controls.Add(Template_Rows1_Cell_3); Template_Rows_1.Controls.Add(Template_Rows1_Cell_4); Template_Rows2_Cell_1.WidthF = 94.63f; Template_Rows2_Cell_2.WidthF = 290f; Template_Rows2_Cell_3.WidthF = 155.73f; Template_Rows2_Cell_4.WidthF = 155.73f; Template_Rows_2.Controls.Add(Template_Rows2_Cell_1); Template_Rows_2.Controls.Add(Template_Rows2_Cell_2); Template_Rows_2.Controls.Add(Template_Rows2_Cell_3); Template_Rows_2.Controls.Add(Template_Rows2_Cell_4); Template_Rows3_Cell_1.WidthF = 68.8f; Template_Rows3_Cell_2.WidthF = 68.8f; Template_Rows3_Cell_3.WidthF = 68.8f; Template_Rows3_Cell_4.WidthF = 68.8f; Template_Rows3_Cell_5.WidthF = 68.8f; Template_Rows3_Cell_6.WidthF = 68.8f; Template_Rows3_Cell_7.WidthF = 68.8f; Template_Rows3_Cell_8.WidthF = 68.8f; Template_Rows3_Cell_9.WidthF = 68.8f; Template_Rows3_Cell_10.WidthF = 68.8f; Template_Rows_3.Controls.Add(Template_Rows3_Cell_1); Template_Rows_3.Controls.Add(Template_Rows3_Cell_2); Template_Rows_3.Controls.Add(Template_Rows3_Cell_3); Template_Rows_3.Controls.Add(Template_Rows3_Cell_4); Template_Rows_3.Controls.Add(Template_Rows3_Cell_5); Template_Rows_3.Controls.Add(Template_Rows3_Cell_6); Template_Rows_3.Controls.Add(Template_Rows3_Cell_7); Template_Rows_3.Controls.Add(Template_Rows3_Cell_8); Template_Rows_3.Controls.Add(Template_Rows3_Cell_9); Template_Rows_3.Controls.Add(Template_Rows3_Cell_10); Template_Rows4_Cell_1.WidthF = 68.8f; Template_Rows4_Cell_2.WidthF = 68.8f; Template_Rows4_Cell_3.WidthF = 68.8f; Template_Rows4_Cell_4.WidthF = 68.8f; Template_Rows4_Cell_5.WidthF = 68.8f; Template_Rows4_Cell_6.WidthF = 68.8f; Template_Rows4_Cell_7.WidthF = 68.8f; Template_Rows4_Cell_8.WidthF = 68.8f; Template_Rows4_Cell_9.WidthF = 68.8f; Template_Rows4_Cell_10.WidthF = 68.8f; Template_Rows_4.Controls.Add(Template_Rows4_Cell_1); Template_Rows_4.Controls.Add(Template_Rows4_Cell_2); Template_Rows_4.Controls.Add(Template_Rows4_Cell_3); Template_Rows_4.Controls.Add(Template_Rows4_Cell_4); Template_Rows_4.Controls.Add(Template_Rows4_Cell_5); Template_Rows_4.Controls.Add(Template_Rows4_Cell_6); Template_Rows_4.Controls.Add(Template_Rows4_Cell_7); Template_Rows_4.Controls.Add(Template_Rows4_Cell_8); Template_Rows_4.Controls.Add(Template_Rows4_Cell_9); Template_Rows_4.Controls.Add(Template_Rows4_Cell_10); Template.Rows.Add(Template_Rows_1); Template.Rows.Add(Template_Rows_2); Template.Rows.Add(Template_Rows_3); Template.Rows.Add(Template_Rows_4); Template.Rows[0].BackColor = Color.DarkGray; Template.Rows[2].BackColor = Color.DarkGray; Template.Borders = DevExpress.XtraPrinting.BorderSide.All; Template.SizeF = new SizeF(688f, 30); Template.Font= new Font(Schriftart_english, 12f); return Template; } #endregion private void xrLabel_pageinfo_PrintOnPage(object sender, PrintOnPageEventArgs e) { int pagecount = e.PageCount; int pageindex = e.PageIndex; if (pageindex < 1) { this.xrLabel_pageinfo.Visible = false; } else { xrLabel_pageinfo.Font= new Font(Schriftart_chinese, dev_classify.Font.Size); this.xrLabel_pageinfo.Visible = true; this.xrLabel_pageinfo.Text = string.Format("第{0}页,共{1}页", pageindex , pagecount - 1); } } } public class ParticleSizeDEVData { public string size_Class { get; set; } public string size_Name { get; set; } public string size_total { get; set; } public string size_1 { get; set; } public string size_2 { get; set; } public string size_3 { get; set; } public string size_4 { get; set; } public string size_5 { get; set; } public string size_6 { get; set; } public string size_7 { get; set; } } public class ElementalAnalysisDEVData { public string classify { get; set; } public string subdivision { get; set; } public string Area { get; set; } public string s1 { get; set; } public string s2 { get; set; } public string s3 { get; set; } public string s4 { get; set; } public string s5 { get; set; } public string s6 { get; set; } public string s7 { get; set; } public string s8 { get; set; } public string s9 { get; set; } public string s10 { get; set; } } public class AreaOfInclusionDEVData { public string classify { get; set; } public string subdivision { get; set; } public string Area { get; set; } public string inca_proportion { get; set; } public string inca_FieldRatio { get; set; } } }