【ActiveReports】动态设置报表中的列数量以及列宽度

在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽度,已铺满整个页面。本文就讲解一下该功能的实现方法。

发布于 2013/03/20 00:00

ActiveReports

在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽度,已铺满整个页面。本文就讲解一下该功能的实现方法。

第一步:设计包含所有列的报表模板,将数据源中的所有列先放置到报表设计界面,并设置你需要的列宽,最终界面如下:

image

第二步:在报表的后台代码中添加一个Columns的属性,用于接收用户选择的列,同时,在报表的ReportStart事件中添加以下代码:

        /// 
        /// 用户选择的列名称
        /// 
        public List Columns;

        private void Report1_ReportStart(object sender, EventArgs e)
        {
            // 定义临时变量
            int count = 0;
            float width = 0;            
            Label tmp = null;
            
            // 列头控件
            List

 

第三步:运行报表,在运行报表之前需要指定用户选择的列:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Report1 rpt = new Report1();
            rpt.Columns = new List(new string[] { "第一列", "第二列", "第三列", "第四列", "第五列", "第六列", "第七列", "第八列" });
            rpt.DataSource = GetData();

            WebViewer1.Report = rpt;
        }
    }

 

DynamicColumns

 

源码下载:

DynamicsColumns_AR.zip (20.21 kb)

ActiveReports 报表控件| 下载试用

ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。

您对ActiveReports产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>>技术支持论坛

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态