惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
G
GRAHAM CLULEY
P
Privacy International News Feed
The Hacker News
The Hacker News
Forbes - Security
Forbes - Security
U
Unit 42
N
News and Events Feed by Topic
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
A
About on SuperTechFans
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
I
Intezer
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
S
Security @ Cisco Blogs
F
Full Disclosure
S
Secure Thoughts
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
S
Security Affairs
AWS News Blog
AWS News Blog
H
Help Net Security
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
Vercel News
Vercel News
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
S
Schneier on Security
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 最新话题
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog

博客园 - 洪虎

Windows环境下安装Python 建立批命令快速修改本机IP地址 网络经典命令 - 洪虎 - 博客园 “指定域的名称或安全标识SID与该域的信任信息不一致”的解决方法 建立主DNS区域和辅助DNS区域的最佳实践 无人职守安装 XP 电脑黑客基本技术和入侵的关键字以及电脑攻防应用 建立一个可修改Windows域用户密码的web页面 修复SQL2000中损坏的表 将Excel转换为CSV的VBA代码 - 洪虎 - 博客园 用命令检查电脑是否被安装木马 DateTime.ToString 方法 - 洪虎 - 博客园 在C#中自定义异常 - 洪虎 - 博客园 错误的SQL脚本,错误消息 4104 - 洪虎 - 博客园 适配器模式 如何在 Reporting Services 开发基于用户权限的报表呢? 委托模式 接口模型 使用反射检查程序集,实现自动更新
使用DataDynamics.ActiveReports 创建子报表
洪虎 · 2006-10-28 · via 博客园 - 洪虎

使用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