xtraReprot 动态绑定数据 数据列动态
来源:互联网 发布:生活方式品牌 知乎 编辑:程序博客网 时间:2024/05/17 08:27
这样做并不是我想出来的,是之前做一个报表模板时搜的,原地址忘了
我要做的报表模板要求是传入一个DataTble,不管datatable的列数多少,计算列宽后显示报表
这是我的报表:
灰色那个XRtable是显示列标题的,下面那个是显示绑定数据的
下面是报表页面代码:
namespace OlenoUI.Report{ public partial class XtraReport1 :DevExpress.XtraReports.UI.XtraReport { public XtraReport1() { InitializeComponent(); } public XtraReport1(DataTable ds)//构造函数重载 { InitializeComponent(); DataTable dt = ds.Clone(); foreach (DataRow dr in ds.Rows) dt.ImportRow(dr); SetDataBind(dt); } private void SetDataBind(DataTable table)//绑定数据源 { if (table==null||table.Columns.Count < 1) return; if (table.Columns[0].ColumnName == "id") { table.Columns.Remove("id"); } string lastColName=table.Columns[table.Columns.Count - 1].ColumnName; if (lastColName == "初盘"||lastColName=="复盘") { table.Columns.Remove(table.Columns[table.Columns.Count - 1].ColumnName); table.Columns.Add(lastColName); foreach (DataRow row in table.Rows) { row[table.Columns[lastColName].ColumnName] = "囗"; } } DataSource = table; /// int colWidth = this.PageWidth-this.Margins.Left-this.Margins.Right; this.taday.Text = DateTime.Today.ToString("yyyy-MM-dd"); colWidth = colWidth / table.Columns.Count; try { foreach (DataColumn dc in table.Columns) { XRTableCell[] colomnTittle = xrTable2.InsertColumnToLeft(xrTableCell2); colomnTittle[0].Text = dc.ColumnName; colomnTittle[0].Width = colWidth; XRTableCell[] columnsDetail = xrTable1.InsertColumnToLeft(xrTableCell1); columnsDetail[0].Text = dc.ColumnName; columnsDetail[0].Width = colWidth; //绑定数据 参数含义分别为:绑定对应的属性名称(绑定columnsDetail[0]的Text属性),数据源,绑定对应的数据列 //还有 XRLabel也可以这样绑定数据哦 columnsDetail[0].DataBindings.Add("Text", DataSource, dc.ColumnName); } this.count.Text+= CheckMain.Count; this.checkMen.Text += CheckMain.CheckMen; this.tittle.Text = CheckMain.Tittle; xrTable2.DeleteColumn(xrTableCell2); xrTable1.DeleteColumn(xrTableCell1); } catch { } } }}
以上报表只有传递一个DataTable就可以调用了
XtraReport1 reprot=new XtraReport1(dt); dt是以查询出结果的DataTable
实现效果:
各位别吐槽,界面设计没花大工夫
横向打印:this.Landscape = true; //
定义纸张:this.PaperKind = System.Drawing.Printing.PaperKind.A4Plus; //设置纸张
然后遇到超复杂动态表头报表时我是通过拼接XRTable方式拼命计算位置组成的,
不知大神们有何见解,请赐教!
0 0
- xtraReprot 动态绑定数据 数据列动态
- GridView动态添加模板列(数据绑定)
- gridview动态绑定列名和数据
- 给gridview动态绑定数据列及命令列
- dropdownlist 动态绑定数据
- 动态绑定报表数据
- ComboBox 动态绑定数据
- Reportview 动态绑定数据
- 动态绑定数据
- js数据动态绑定
- 动态数据绑定注意事项
- 网页数据动态绑定
- Repeater动态绑定数据
- easyui datagrid动态绑定列名和数据
- 扩展jquery easyui datagrid 之动态绑定列和数据
- Silverlight 4 DataGrid动态生成列及绑定数据
- EasyUI 1.3.1 datagrid动态绑定列名和数据
- Flex AdvancedDataGrid动态添加列并绑定数据库返回数据
- Kendo UI:Grid中单元格样式控制
- 关于${pageContext.request.contextPath}的理解
- 从信号的维度再次理解香农公式,进而发问,人类到底生活在几维空间中?
- 第十四周项目 OJ 杨辉三角
- jQuery性能优化的28个建议
- xtraReprot 动态绑定数据 数据列动态
- Linux下加子接口IP,Ping指定源IP
- ld: file not found: /Users/chenweidong/Library/Developer/Xcode/DerivedData/.......
- 9png 背景 文字无法显示
- Android存储之SharedPreferences存储
- ThinkPHP(验证码不能正常显示) 图像“http://xxxxxxxxxxxxxxxx”因存在错误无法显示
- DEV TreeList 刷新技巧
- 腾讯微信技术架构
- Android(Lollipop/5.0) Material Design(一) 简介