ActiveReports 支持在设计时和运行时设置报表数据源,本文将重点介绍如何在运行时为区域报表和RDL/页面报表设置报表数据源。

  • ·第一步: 在工程中创建一个名为 SectionReport_DataSource_RunTime.cs 的基于代码的区域报表

区域报表运行时数据源

第二步:创建完成之后,会自动打开报表设计界面,此时,我们可以在报表设计界面添加文本框(TextBox)等控件用于显示数据源数据。与 设计时数据源 不同,运行时数据源只需直接设置文本框控件的DataField属性便可完成与数据源的绑定,比如数据源包括以下字段:产品编号、产品名称、单价和库存量,我们只需在报表的 detail 区域添加四个文本框,并分别设置其DataField属性即可。如下图:

第三步:在运行时通过 DataSource 属性设置数据源

private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
    SectionReport_DataSource_RunTime sReport1 = new SectionReport_DataSource_RunTime();
    sReport1.DataSource = GetDataSource();
    sReport1.Run();
    viewer1.Document = sReport1.Document;
}
private DataTable GetDataSource()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("产品编号");
    dt.Columns.Add("产品名称");
    dt.Columns.Add("单价");
    dt.Columns.Add("库存量");
    dt.Rows.Add("A10002", "苹果", 20, 50);
    dt.Rows.Add("A15681", "香蕉", 20, 50);
    dt.Rows.Add("A15681", "菠萝", 20, 50);            
    return dt;
}
  • ·第一步: 在工程中创建一个名为 PageReport_DataSource_RunTime.rdlx 的页面报表

RDL/页面报表运行时数据源

第二步:从Visual Studio菜单栏中的“视图”->“其他窗口”->“报表资源管理器”中打开ActiveReports报表资源管理器,此时,你可以看到“数据源”节点,在该节点上鼠标右键选择“添加数据源”菜单项,在弹出的“报表数据源”对话框中选择类型Dataset Provider,如下图:

点击“确定”按钮,完成数据源创建操作,此时,在报表资源管理器窗口中的“数据源”节点下新增了一个名为“DataSource1”的子节点,在该节点上点击鼠标右键,选择“添加数据集”菜单项,在弹出对话框的“字段”选项卡中添加产品编号产品名称单价库存量四个字段,然后点击“确定”按钮完成数据集创建操作。返回到报表资源管理窗口之后,点击“DataSet1”节点,可以看到刚才添加的四个字段。

第三步:在Visual Studio工具箱中的表格控件(Table)拖拽到报表设计界面,然后点击表格明细行中的单元格,此时,会自动显示DataSet1中数据集中的全部字段,然后,为每个单元格指定需要绑定的字段。

第四步:在运行时通过 LocateDataSource 事件加载数据源

private DataTable GetDataSource()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("产品编号");
    dt.Columns.Add("产品名称");
    dt.Columns.Add("单价");
    dt.Columns.Add("库存量");
    dt.Rows.Add("A10002", "苹果", 20, 50);
    dt.Rows.Add("A15681", "香蕉", 20, 50);
    dt.Rows.Add("A15681", "菠萝", 20, 50);
    return dt;
}
void runtime_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
    if (args.DataSourceName == "DataSource1")
    {
        if (args.DataSetName == "DataSet1")
        {
            args.Data = GetDataSource();
        }
    }
}
private void viewer1_Load(object sender, EventArgs e)
{
    GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport
    (new System.IO.FileInfo("../../PageReport_DataSource_RunTime.rdlx"));
    GrapeCity.ActiveReports.Document.PageDocument runtime = new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
    runtime.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(runtime_LocateDataSource);
    viewer1.LoadDocument(runtime);
}

ActiveReports报表数据源:运行时数据源的更多相关文章

  1. HTML5Viewer中如何运行时绑定多数据源

    很多报表控件提供HTML5Viewer 支持跨设备的报表系统,当然在很多情况下,一个系统可包含多个报表文件,这些报表的数据有可能均为运行时绑定数据源,那么在html5viewer中对一张报表通过重写W ...

  2. ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表

    本篇文章将介绍区域报表和页面报表的常见使用场景.区别和选择报表类型的一些建议,两种报表的模板设计.数据源(设计时和运行时)设置.和浏览报表的区别. ActiveReports 报表控件官方中文入门教程 ...

  3. ActiveReports中如何在后台导出运行时绑定数据源报表

    ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...

  4. ActiveReports 报表控件V12新特性 -- 无需ETL处理,即可实现跨数据源分析数据

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  5. 设计时数据源: 在ActiveReports中直接连接PostgreSql 数据库

    在之前的博客中,我们学习了如何在运行时绑定PostgreSql 数据库,今天我们学习,如何直连PostgreSQL 数据库. 1. 安装PostgreSQL 的ODBC驱动程序 https://www ...

  6. ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

    本篇文章将阐述首次使用 ActiveReports 报表控件 的方法,包括添加报表文件.绑定数据源以及如何发布报表等内容. ActiveReports 报表控件官方中文入门教程 (1)-安装.激活以及 ...

  7. 使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  8. 【转】使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  9. SpringBoot运行时动态添加数据源

    此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!! 一.多数据源应用场景: 1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行 ...

随机推荐

  1. 《JAVA设计模式》之解释器模式(Interpreter)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个 ...

  2. MySql-第七篇单表查询

    1.MySQL中可以使用+.-.*./. 1>但MySQL中没有提供字符串连接运算符,可以使用concat(a_str,'xxx')进行连接. 2>在算术表达式中使用null,将会导致整个 ...

  3. 如何写出没有 bug 的代码?

    来源:www.cnblogs.com/sherrywasp/p/9262877.html 1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 ...

  4. [NOIP2016]借教室

    NOIP2012提高组D2T2. 这道题目非常基础,正解貌似是二分+差分数组,在这里提供一种线段树的思路. 很容易发现题目让我们每次修改一段区间,然后我们只需要看每一个区间内有没有负数就可以了.可以用 ...

  5. H Kuangyeye and hamburgers

    链接:https://ac.nowcoder.com/acm/contest/338/H来源:牛客网 题目描述 Kuangyeye is a dalao of the ACM school team ...

  6. Spring bean相关

    Spring中指定Bean的作用于的方式 以下四种为例: 单例(默认,可以不用特殊表明) @Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) ...

  7. eclipse安装weblogic Server服务器

    1.首先打开eclipse,第一次进入欢迎画面点击上方标签X,关闭欢迎标签 2.关闭欢迎标签后,进入eclipse操作界面,在上方的菜单栏,选择windows下拉菜单,选择子菜单Preference ...

  8. docker-compose启动报错:Creating network "soft_default" with the default driver ERROR: cannot create network e5b60fc347db868e471b61ea185fd24e3ea7e2730149d91ad70baf29732aaff0 (br-e5b60fc347db): conflicts wi

    docker-compose启动容器时出现报错 Creating network "soft_default" with the default driver ERROR: can ...

  9. 毕设问题(2) fastjson 的过滤器使用(SSH hibernate)以及转换对象出现 $ref

    毕业设计,用SSH框架,但是想要做出异步请求数据的效果,使用了ajax方式,其中数据传递的类型为json.ajax使用用的jQuery的ajax.其实struts里也支持ajax功能,但是我觉得用太多 ...

  10. Oracle 数据库恢复命令

    前提是oracle服务能正常启动,但是客户端怎么都连接不上. 首先打开命令行,输入:sqlplus / as sysdba; 回车 连上数据库后,屏幕会显示:已连接到空闲例程. 接下来在SQL> ...