简单实现Crystal Report的动态加载

原创 2003年08月18日 09:57:00

      crystal reprot 为我们开发报表提供了很大的便利,但是它不能实现runtime时数据自定义,给开发带来了不完美。不过虽然我们不能runtime自定义数据,但我们还是可以实现runtime自定义加载报表。
       要实现自定义加载报表,要使用推模式报表生成。(拉模式我没有试过,哪位网友要是实现了可以告诉我:) )
       回顾一下推模式的操作过程,在利用生成报表的那一步中,我们选择空报表。这个时候在解决方案中生成一个report.rpt(假定是这个名字),但是我们在方案目录下,我们还可以看到一个同名的report.cs。这个文件就是我们这次讨论的关键。我们先来看看这个文件有什么。

namespace WebApp_Crystal_Dynametic {
using System;
using System.ComponentModel;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;

public class Report : ReportClass {

public Report() {
}

public override string ResourceName {
get {
return "Report.rpt";
}


}
……

       看到红色高亮的程序吗?当我们向report推数据的时候report类如何把数据绑定到合适报表中呢,就是靠这个代码了!既然如此,那么我们如果能够动态改变它的返回值就可以动态加载报表了,让我们来试试。下面是我修改后的代码:

namespace WebApp_Crystal_Dynametic {
using System;
using System.ComponentModel;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;


public class Report : ReportClass {
string resourcename = "Report.rpt";
public Report() {
}

public override string ResourceName {
get {
return resourcename;
}
set {
resourcename = value;
}

}
……

       好现在我们再新建几个不同的报表(都是推模式的),在程序中我添加了几个button,不同的button事件中加载不同的报表,并把不同的数据推向报表。程序编译运行通过(window server 2003 + vs.net 2003)。

       这样我们只要在程序中使用plugin模式,就可以在不改变源代码的情况下为程序添加新的报表文件。

水晶报表CrystalReport2008使用JDBC连接MySQL数据库-详细步骤

 详细请见本人BLOG(http://snowdream.blog.51cto.com/3027865/1081366)   一: 前期准备工作 Crysta...
  • u011910756
  • u011910756
  • 2014年06月03日 11:27
  • 1276

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。

用 CrystalReportViewer1 控件在asp.net的网页上显示报表,如果做报表时调用数据表数据的方式调用是可以成功的,但报表是用存储过程获取数据方式会出现以下错误: 找不到表...
  • liufeiyu1976
  • liufeiyu1976
  • 2014年07月20日 15:54
  • 1230

使用Grid++report开发报表功能

一、Grid++report         1.Grid++Report概述          Grid++Report 插件适用于开发 B/S 结构的网络报表系统,支持全部主流WEB浏览器,是软件...
  • u010520912
  • u010520912
  • 2015年03月30日 23:04
  • 7310

ListView动态加载-简单易懂

  • 2011年09月19日 12:00
  • 59KB
  • 下载

惰性控件ViewStub实现布局东动态加载

  • 2015年08月08日 15:48
  • 1.47MB
  • 下载

利用Ajax实现动态加载树

  • 2008年09月26日 14:08
  • 90KB
  • 下载

Android中的动态加载(简单实现)

先说明一点,这篇文章说的动态加载,只能加载dex文件中的功能,涉及到资源的就不可以了。 动态加载步骤     1、在宿主程序中写插件接口 2、在插件中实现宿主程序的接口 这里要注意,插...
  • u013174702
  • u013174702
  • 2016年08月25日 11:43
  • 770

Android动态加载XML文件及控件来简单实现QQ好友印象的功能

在android开发中,我们常常会遇到界面布局控件不确定的情况。由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态...
  • l243225530
  • l243225530
  • 2015年01月26日 19:39
  • 940

mtk平台动态加载程序的实现

  • 2009年10月15日 13:08
  • 205KB
  • 下载

wpf mvvm treeview 动态加载(实现重命名与右键添加)

  • 2017年06月29日 14:42
  • 1.82MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单实现Crystal Report的动态加载
举报原因:
原因补充:

(最多只允许输入30个字)