DevExpress中如何使用Report-XRTable绑定数据
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关DevExpress中如何使用Report-XRTable绑定数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
国内外常见的网络安全问题
网络安全法确定了相关主体
个人电脑建立订单数据库
软件开发就业待遇
数据库防水坝系统
网络安全管理 经济效益
运营我的世界服务器需要
ftp服务器配置与分析
维护国家网络安全展板
吉安企业服务器要多少钱
维宏软件开发商密码
海淀区品牌软件开发价格走势
适当注意网络安全的英语作文
服务器回滚
网络安全产业的思考
任务计划程序安全数据库在哪
明日之后秋日森林区服务器
网络安全主线有哪些
太原网站服务器
湖北管理软件开发外包
宁波科研项目管控软件开发平台
文档在服务器里丢失怎么找回
用数字揭穿网络安全误区
江苏敏捷软件开发工具
计算机软件开发软件
官渡区品牌软件开发
高新区服务器上门回收报价
江西省网络安全知识答题
csgo无法使用安全服务器
华软本科网络技术专业