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

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

发布于 2013/12/03 00:00

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

源码下载:

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

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

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

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