whprare 发表于 2015-11-23 16:53:00

AR_v10 根据DataTable数据源自动生成数据

您好,需求如下:
如何根据后台传递的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作为报表的数据源,生成动态列吗?

frank.zhang 发表于 2015-11-24 12:25:00

您好,

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

在使用矩表控件时,可以动态生成列
http://demo.gcpowertools.com.cn/ActiveReports/ASPNET/ControlExplorer/Viewers/Default.aspx?category=1001&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

回复 4楼frank.zhang的帖子

好的,我知道了:loap1:

frank.zhang 发表于 2015-11-26 10:39:00

您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: AR_v10 根据DataTable数据源自动生成数据