找回密码
 立即注册

QQ登录

只需一步,快速开始

whprare

银牌会员

12

主题

37

帖子

2533

积分

银牌会员

积分
2533

元老葡萄

whprare
银牌会员   /  发表于:2015-11-23 16:53  /   查看:4151  /  回复:5
您好,需求如下:
如何根据后台传递的DataTable数据源,在报表中动态生成列和数据?

例:
Report1 rpt = new Report1();
DataTable dt = GetData();
rpt.Columns = new List<string>();
foreach (DataColumn col in dt.Columns)
{
       rpt.Columns.Add(col.ColumnName);
}
rpt.DataSource = dt;
WebViewer1.Report = rpt;

private DataTable GetData()
{
       DataTable dt = new DataTable();
       dt.Columns.Add("第一列");
       dt.Columns.Add("第二列");
       dt.Columns.Add("第三列");
       dt.Columns.Add("第四列");
       dt.Columns.Add("第五列");
       dt.Columns.Add("第六列");
       dt.Columns.Add("第七列");
       dt.Columns.Add("第八列");

       return dt;
}

就算在GetData() 中控制列,也无法改变Report1 所设置的固定列。
可以用DataTable作为报表的数据源,生成动态列吗?

5 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-11-24 12:25:00
沙发
您好,

您的描述是数据源的加载方式的一种。报表模板支持多种类型的数据源,包括直接的数据库链接和DataSet的方式。
动态列是报表行为的一种,在使用Table控件时,可以使用参数来控制动态列,可以参考
http://demo.gcpowertools.com.cn/ ... 02&amp;action=9

在使用矩表控件时,可以动态生成列
http://demo.gcpowertools.com.cn/ ... 1&amp;action=24
回复 使用道具 举报
whprare
银牌会员   /  发表于:2015-11-24 17:32:00
板凳
回复 2楼frank.zhang的帖子

简而言之,
我想实现 根据DataTable的Columns.Count和Columns[].ColumnName
在报表中生成相应的列数以及相应的列名
让事先在报表中设置好的列不显示
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-25 17:39:00
地板
您好,

AR的报表模板是需要设计的,不能根据ColumnName生成对应列。
回复 使用道具 举报
whprare
银牌会员   /  发表于:2015-11-25 17:54:00
5#
回复 4楼frank.zhang的帖子

好的,我知道了
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-26 10:39:00
6#
您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
whprare + 5 我很赞同

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部