zoukankan      html  css  js  c++  java
  • 使用DataDynamics.ActiveReports 创建子报表

    使用DataDynamics.ActiveReports开发报表是一种不错的选择。今天由于项目需要在一个已有的报表上添加另外一个报表的内容,于是就想到了使用它的子报表功能。这样就可以实现项目需求。

    首先查看了DataDynamics.ActiveReports自带的SubReport的示例项目。它是将子报表放在原报表的明细中,其实我试过也可以把子报表放在报表头或报表尾。关键是在定义子报表是要将子报表的报表头和报表尾删除掉换成分组。我想这是因为在同一个报表中只能定义一个报表头和报表尾的缘故,如果子报表也这样定义也许会有冲突。

    下面就把制作子报表的简要步骤列举如下:

    首先制作一个报表,并使其能够正常预览。然后在设计视图的工具箱中拖放一个Subreport的控件到报表上,可以放在报表的任何部分。然后重命名这个子报表。

    接下来,在这个报表的相关部分的Format事件中添加初始化子报表的代码。例如:这时子报表放在报表头那么就应该在报表头的Format事件中添加代码,如下所示。


    using DataDynamics.ActiveReports;
    using DataDynamics.ActiveReports.Document;
    using DataDynamics.ActiveReports.DataSources;

    // 父报表
    public class MyActiveReport : ActiveReport
    {
        
    //创建一个需要在子报表中显示的已有报表类的实例
        rptSubReport _SubReport = null;

        
    // 其他代码省略

        
    private void PageHeader_Format(object sender, System.EventArgs eArgs)
        
    {
            
    if (_SubReport == null)
            
    {
                SqlDBDataSource subDs 
    = new SqlDBDataSource();  // 声明ActiveReports数据源
                subDs.ConnectionString = cnnString;                            // 给这个数据源指定连接字符串
                subDs.SQL = "select * from table1 ";                             // 指定查询语句

                _SubReport 
    = new rptSubReport();                                // 实例化预定义报表实例
                
    this.SubReport.Report = _SubReport;                           // 给子报表指定预定义报表实例
                this.SubReport.Report.DataSource = subDs;               // 给子报表指定ActiveReports数据源
            }

        }

    }


    最好在父报表中加上“using DataDynamics.ActiveReports.DataSources;” 这样就可以直接使用DataDynamics.ActiveReports.DataSources的数据源类。ActiveReports的数据源支持SQL 和OLEDB可以根据需要选择。

    洪虎

    2006-10-28

  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/eric1394/p/542786.html
Copyright © 2011-2022 走看看