ActiveReports 最终用户设计器之添加内置报表模板

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

返回博客中心

ActiveReports 专业版中所提供的最终用户设计器,能极大程度上满足最终用户对创建、修改报表模板的需求,在安装 ActiveReports 之后所提供的最终用户设计器源码工程包含了报表设计的最基本功能,我们可以根据自己的业务需求实现对设计器的自定义,添加和你业务相关的内置功能,以简化用户对设计器的使用。本文主要演示如何在设计器中添加和自己业务相关的报表模板。

首先,打开 ActiveReports 自带的最终用户设计器源码工程,默认安装地址:C:\Users\用户名\Documents\ComponentOne Samples\ActiveReports Developer 7\Professional\C#\EndUserDesigner ,在 EndUserDesigner 窗体的后台代码中找到创建报表时调用的方法 OnNew,在该方法中通过调用内置的 DesignerAction.NewReport 来创建报表,我需要注释掉这行代码,改为调用我们自定义的模板选择提供器。

实现自定义的模板选择对话框,自定义的模板对话框功能我们是在 Templates 窗体中实现的,该窗体根据模板的类型分别提供了区域报表和页面报表两种类型的多个内置模板,比如:员工信息、产品信息、销售数据、库存分析等内置的报表模板。当用户在 Templates 窗体中选择了模板之后,返回到最终用户设计器主界面,此时,会自动加载用户所选择的报表模板,你可以在内置的模板中添加内置数据源、公司图标、报表名称等基本信息,以简化用户的报表设计工作。

以下代码是调用自定义模板选择对话框的代码:

    private void OnNew(object sender, EventArgs e)
    {
        if (this.ConfirmSaveChanges())
        {
            // ActiveReports 内置的报表模板选择对话框
            //this.reportdesigner.ExecuteAction(DesignerAction.NewReport);
            // 显示自定义的模板选择对话框
            Templates dlgTemplates = new Templates();                
            if (dlgTemplates.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                // 加载用户选择的报表模板
                this.reportdesigner.LoadReport(new FileInfo(dlgTemplates.SelectedTemplate.Path));
                    
                // 设置工具箱是否可见
                EnableTabs();  
            }  
        }
    }

自定义模板选择对话框加载模板的代码如下:

    // 加载自定义的模板
    private void LoadTemplate()
    {            
        ReportTemplate template = new ReportTemplate();
        List<ReportTemplate> list = template.GetAll();
        foreach (ReportTemplate item in list)
        {
            if (item.Type == "Section")
            {
                ListViewItem lvi = new ListViewItem(item.Name);
                lvi.ImageKey = item.Icon;
                lvi.Tag = item;
                lvSection.Items.Add(lvi);
            }
            else
            {
                ListViewItem lvi = new ListViewItem(item.Name);
                lvi.ImageKey = item.Icon;
                lvi.Tag = item;
                lvPage.Items.Add(lvi);
            }
        }
    }

最终运行截图:

1201

源码下载:


关于葡萄城

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

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