DevExpress中如何使用Report-XRTable绑定数据
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关DevExpress中如何使用Report-XRTable绑定数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧
千家信息网最后更新 2026年11月02日DevExpress中如何使用Report-XRTable绑定数据
本篇文章给大家分享的是有关DevExpress中如何使用Report-XRTable绑定数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
将从跳转前的页面(A)中获取传入的数据(dtOrd、BatchID、ModelID),绑定到Report报表对应的控件 ,代码如下:
this.xrtBatchID.Text = sBatchID; this.xrtModel.Text = sModelID; this.xrtDateTime.Text = DateTime.Now.ToShortDateString().ToString(); // 20018-9-4 if (dtOrd.Rows.Count > 0) { XRTable table = new XRTable(); for (int i = 0; i < dtOrd.Rows.Count; i++) { if (list[i]!=null) { XRTableRow row = new XRTableRow(); XRTableCell TESTING_ITEM = new XRTableCell(); XRTableCell TESTING_RESULT = new XRTableCell(); XRTableCell TESTING_SPECIFICATION = new XRTableCell(); XRTableCell DIMENS = new XRTableCell(); XRTableCell TESTING_METHOD = new XRTableCell(); row.Cells.Add(TESTING_ITEM); row.Cells.Add(TESTING_RESULT); row.Cells.Add(TESTING_SPECIFICATION); row.Cells.Add(DIMENS); row.Cells.Add(TESTING_METHOD); //TESTING_ITEM.WidthF = 140.14f; //TESTING_RESULT.WidthF = 140.14f; //TESTING_SPECIFICATION.WidthF = 140.14f; //DIMENS.WidthF = 140.14f; //TESTING_METHOD.WidthF = 140.14f; TESTING_ITEM.DataBindings.Add("Text", dtOrd, "TESTING_ITEM"); TESTING_RESULT.DataBindings.Add("Text",dtOrd, "TESTING_RESULT"); TESTING_SPECIFICATION.DataBindings.Add("Text", dtOrd, "TESTING_SPECIFICATION"); DIMENS.DataBindings.Add("Text", dtOrd, "DIMENS"); TESTING_METHOD.DataBindings.Add("Text", dtOrd, "TESTING_METHOD"); xrTable7.Rows.Add(row); } } DetailBand detailBand = new DetailBand(); detailBand.Controls.Add(table); report.Bands.Add(detailBand); }但是这样绑定的结果是(传入数据有两行数据,但绑定显示的都是第一行的内容):

于是,将上述代码改进,把传入的Table的多行数据拆分成多个表,分别进行绑定(相信有更简单的,可以直接一次性绑定全部数据的方法,如果有大神看到,请指教一下,多谢),代码如下:
using System;using System.Drawing;using System.Collections;using System.ComponentModel;using DevExpress.XtraReports.UI;using System.Data;using TRSCore;using System.Text;using MESCore;using DevExpress.DataAccess.EntityFramework;using System.Collections.Generic;namespace QCMCore.Reports{ public partial class rptQCMCOACard : DevExpress.XtraReports.UI.XtraReport { public rptQCMCOACard() { InitializeComponent(); } public rptQCMCOACard(DataTable dt,string sBatchID,string sModelID) { InitializeComponent(); this.dtOrd = dt; this.sBatchID = sBatchID; this.sModelID = sModelID; } DataTable dtOrd = null; string sBatchID = ""; string sModelID = ""; private bool FillHeader() { try { if (dtOrd == null) { CommonFunction.ShowMsgBox("请先选择需要打印的ITEM!"); return false; } this.xrtBatchID.Text = sBatchID; this.xrtModel.Text = sModelID; this.xrtDateTime.Text = DateTime.Now.ToShortDateString().ToString(); // 20018-9-4 if (dtOrd.Rows.Count > 0) { DataSet ds = new DataSet(); ds.Tables.Add(dtOrd); XtraReport report = new XtraReport(); report.DataSource = ds; report.DataMember = "queryProducts"; List list = new List(); for (int i = 0; i < dtOrd.Rows.Count;i++) { DataTable dt = new DataTable(); dt.Columns.Add("ITEM_SEQ"); dt.Columns.Add("TESTING_ITEM"); dt.Columns.Add("TESTING_RESULT"); dt.Columns.Add("TESTING_SPECIFICATION"); dt.Columns.Add("DIMENS"); dt.Columns.Add("TESTING_METHOD"); dt.Rows.Add(dtOrd.Rows[i].ItemArray); list.Add(dt); } XRTable table = new XRTable(); for (int i = 0; i < dtOrd.Rows.Count; i++) { if (list[i]!=null) { XRTableRow row = new XRTableRow(); XRTableCell TESTING_ITEM = new XRTableCell(); XRTableCell TESTING_RESULT = new XRTableCell(); XRTableCell TESTING_SPECIFICATION = new XRTableCell(); XRTableCell DIMENS = new XRTableCell(); XRTableCell TESTING_METHOD = new XRTableCell(); row.Cells.Add(TESTING_ITEM); row.Cells.Add(TESTING_RESULT); row.Cells.Add(TESTING_SPECIFICATION); row.Cells.Add(DIMENS); row.Cells.Add(TESTING_METHOD); //TESTING_ITEM.WidthF = 140.14f; //TESTING_RESULT.WidthF = 140.14f; //TESTING_SPECIFICATION.WidthF = 140.14f; //DIMENS.WidthF = 140.14f; //TESTING_METHOD.WidthF = 140.14f; TESTING_ITEM.DataBindings.Add("Text", list[i], "TESTING_ITEM"); TESTING_RESULT.DataBindings.Add("Text", list[i], "TESTING_RESULT"); TESTING_SPECIFICATION.DataBindings.Add("Text", list[i], "TESTING_SPECIFICATION"); DIMENS.DataBindings.Add("Text", list[i], "DIMENS"); TESTING_METHOD.DataBindings.Add("Text", list[i], "TESTING_METHOD"); xrTable7.Rows.Add(row); } } DetailBand detailBand = new DetailBand(); detailBand.Controls.Add(table); report.Bands.Add(detailBand); } return true; } catch (Exception ex) { CommonFunction.ShowMsgBox(ex.Message); return false; } } private void ReportHeader_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { FillHeader(); } }} 显示结果如下:

另:Report绑定图片:从工具箱拖入xrPictureBox,设置imageUrl载入图片,调整位置和大小即可。
Table下方内容会随着Table数据的多少进行下移(如果数据多的话),所以不用担心会被覆盖。
其他测试过的绑定xrTable的方法(但是都行不通,最多只能绑定一行数据),代码如下:
private bool FillHeader() { try { if (dtOrd == null) { CommonFunction.ShowMsgBox("请先选择需要打印的ITEM!"); return false; } this.xrtBatchID.Text = sBatchID; this.xrtModel.Text = sModelID; this.xrtDateTime.Text = DateTime.Now.ToShortDateString().ToString(); // 20018-9-4 if (dtOrd.Rows.Count > 0) { DataSet ds = new DataSet(); ds = GetTempDataSet(); if (ds != null) { SetDataBind(ds); } DataRow drPur = dtOrd.Rows[0]; string sheetID = string.Empty; if (drPur == null) return false; //绑定采购单信息 BindFormData(drPur); //获取采购单ID //sheetID = drPur["ID"].ToString(); //获取采购单明细数据集 DataSet dsDetail = new DataSet(); dsDetail.Tables.Add(dtOrd); //绑定采购单明细信息 BindTableData(dsDetail); } return true; } catch (Exception ex) { CommonFunction.ShowMsgBox(ex.Message); return false; } } private void BindTableData(DataSet ds) { this.xrTableCell11.DataBindings.Add("Text", ds, "TESTING_ITEM"); this.xrTableCell12.DataBindings.Add("Text", ds, "TESTING_RESULT"); this.xrTableCell13.DataBindings.Add("Text", ds, "TESTING_SPECIFICATION"); this.xrTableCell14.DataBindings.Add("Text", ds, "DIMENS"); this.xrTableCell15.DataBindings.Add("Text", ds, "TESTING_METHOD"); } private void SetDataBind(DataSet ds)//绑定数据源 { this.xrTableCell11.DataBindings.Add("Text",ds, "TESTING_ITEM"); this.xrTableCell12.DataBindings.Add("Text",ds, "TESTING_RESULT"); this.xrTableCell13.DataBindings.Add("Text",ds, "TESTING_SPECIFICATION"); this.xrTableCell14.DataBindings.Add("Text",ds, "DIMENS"); this.xrTableCell15.DataBindings.Add("Text",ds, "TESTING_METHOD"); } /// /// 绑定采购单明细信息 /// private void BindFormData(DataRow dr) { //DataSet ds = DataSetOperator.DataRowToDataSet(dr); //XRLabel绑定数据 方法1: this.xrTableCell11.Text = dr["TESTING_ITEM"].ToString(); this.xrTableCell12.Text = dr["TESTING_RESULT"].ToString(); this.xrTableCell13.Text = dr["TESTING_SPECIFICATION"].ToString(); this.xrTableCell14.Text = dr["DIMENS"].ToString(); this.xrTableCell15.Text = dr["TESTING_METHOD"].ToString(); //XRLabel绑定数据 方法2: //this.txtDB0337A.DataBindings.Add(new XRBinding("Text", ds, "DB0337A", "{0:yyyy-MM-dd}")); //this.txtDB0005A.Text = dr["DB0005A"].ToString(); //this.txtDB0339A.Text = dr["DB0339A"].ToString(); //this.txtDB0345A.DataBindings.Add(new XRBinding("Text", ds, "DB0345A", "{0:n2}")); //this.labPrintTime.Text = DateTime.Now.Date.ToString(); } private void ReportHeader_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { FillHeader(); } private DataSet GetTempDataSet() { DataSet ds = new DataSet(); DataTable dt = new DataTable("tempTable"); dt.Columns.Add("TESTING_ITEM"); dt.Columns.Add("TESTING_RESULT"); dt.Columns.Add("TESTING_SPECIFICATION"); dt.Columns.Add("DIMENS"); dt.Columns.Add("TESTING_METHOD"); DataRow tempRow; if (dtOrd != null) { for (int i = 0; i < dtOrd.Rows.Count; i++)//i:Row { tempRow = dt.NewRow(); tempRow[i] = dtOrd.Rows[i]; dt.Rows.Add(tempRow); } ds.Tables.Add(dt); } return ds; }以上就是DevExpress中如何使用Report-XRTable绑定数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
数据
采购
代码
方法
明细
信息
一行
内容
图片
更多
知识
篇文章
结果
选择
实用
一次性
不用
位置
多个
大小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是科技互联网
新华互联网科技学校
今日互联网科技
互联网科技战争
狮子座互联网科技
互联网 的科技创新
滨湖区互联网智能科技产品供应
云创客互联网科技公司
厦门比较好的科技互联网公司
互联网还是高科技吗
互联网科技和法律行业
阿里互联网科技企业
科技互联网海报
上海京穆互联网科技有限公司
风投北京互联网科技
福仕德教育科技互联网
互联网科技职业技能培训学校
数字科技和互联网金融哪个好
优雇互联网科技有限公司
中国主要互联网科技公司
什么是科技互联网
互联网科技名片
高科技互联网
互联网科技小贷
互联网科技公司需要的职位
中国互联网有什么科技
半导体是互联网高科技吗
西安左小互联网科技有限公司
银川新华互联网科技学校招聘
广州全民伙伴互联网科技有限公司