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

发布时间:2013/03/20 00:03 发布者:jian

返回博客中心

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

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

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)


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网