搜档网
当前位置:搜档网 › 水晶报表教程

水晶报表教程

水晶报表教程
水晶报表教程

水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。喜欢水晶报表的朋友可以方便使用了。我把水晶报表在vs2005的使用方法总结一下,供大家参考。

首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005

【数据用例】

服务器:SQLEXPRESS

数据库名:Test

数据库表:T

【说明】

水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL 语句而生成的dataset对像。也就是说,推模式是用dataset组装水晶报表。

水晶报表组件介绍。水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。在FORM项目里是分别是crystalReport,CrystalReportViewer。

CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。

下面分别介绍具体操作方法:

拉模式(PULL):

在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。例:“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名

以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名。

【WEB方式下】

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

///

///功能:拉模式提取水晶报表

///个人主页:https://www.sodocs.net/doc/c110158386.html,/

///

///

///

protected void Button_pull_Click(object sender, EventArgs e)

{

// CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像。

CrystalReportSource1.ReportDocument.Load(Server.MapPath("Crystal Report.rpt"));

// SetDatabaseLogon 拉模式中必须用这个方法来设置登录信息,参数一:用户名;参数二:密码;参数三:服务器;参数四:数据库名

CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "123456", @"SYWZSWL\SQLEXPRESS", "Test");

//给水晶报表传参数,参数一:是参数名,参数二:参数值;

CrystalReportSource1.ReportDocument.SetParameterValue("Title", "这是一个测试报表");

CrystalReportSource1.ReportDocument.SetParameterValue("Parm", "1");

//绑定水晶报表数据源。

CrystalReportSource1.DataBind();

// CrystalReportViewer1是水晶报表浏览器,下面是给该浏览器赋上对像CrystalReportViewer1.ReportSource = CrystalReportSource1;

CrystalReportViewer1.DataBind();

} 【FORM方式下】

//在FORM方式下代码同WEB方式,用crystalReport控件换掉了CrystalReportSource;用crystalReportViewer换掉了CrystalReportViewer;这两个控件都可以在工具箱里找到。同时在编程时去掉DataBind()方法。

private void Form1_Load(object sender, EventArgs e)

{

crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt");

crystalReport1.SetDatabaseLogon("sa", "123456",

@"SYWZSWL\SQLEXPRESS", "Test");

crystalReport1.SetParameterValue("Title", "这是一个测试报表");

crystalReport1.SetParameterValue("Parm", "1");

crystalReportViewer1.ReportSource = crystalReport1;

}

推模式(PUSH):

在推模式中编程组装的Dataset里的SQL语句中的字段要与水晶报表里的SQL 语句字段一致。简单的说,推模式中的水晶报表是个模板,把在设计器里报表的格式设好后,再组装DataSet就可以生成报表了。

【WEB方式下】

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

using System.Data.SqlClient;

protected void Button_push_Click(object sender, EventArgs e)

{

string sql = "Select T1, T2, T3 FROM T where T1=''a''";

string DBConfig_sql =@"Data Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456";

DataSet ds = new DataSet();

SqlConnection sqlCon = new SqlConnection(DBConfig_sql);

SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);

SqlDataAdapter sqlAd = new SqlDataAdapter();

sqlAd.SelectCommand = sqlCmd;

sqlAd.Fill(ds, "sql");

CrystalReportSource1.ReportDocument.Load(Server.MapPath("Crystal Report.rpt"));

//注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”

CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);

//{?}中的参数可以不用赋值,即使赋了值也不起作用。

//

CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValu es.AddValue("1234567");

CrystalReportSource1.ReportDocument.ParameterFields["Title"].Current Values.AddValue("这时推模式的报表样例!");

CrystalReportSource1.DataBind();

CrystalReportViewer1.ReportSource = CrystalReportSo urce1;

CrystalReportViewer1.DataBind();

}

【FORM方式下】

private void Form1_Load(object sender, EventArgs e)

{

//推模式

string sql = "Select T1, T2, T3 FROM T where T1=''a''";

string DBConfig_sql = @"Data

Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User

ID=sa;Password=123456";

DataSet ds = new DataSet();

SqlConnection sqlCon = new SqlConnection(DBConfig_sql);

SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);

SqlDataAdapter sqlAd = new SqlDataAdapter();

sqlAd.SelectCommand = sqlCmd;

sqlAd.Fill(ds, "sql");

crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt");

crystalReport1.SetDataSource(ds.Tables["sql"]);

//{?}中的参数可以不用赋值,即使赋了值也不起作用。

//

CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValu

es.AddValue("1234567");

crystalReport1.ParameterFields["Title"].CurrentValues.AddValue("这时推模式的报表样例!");

crystalReportViewer1.ReportSource = crystalReport1;

}

------------------------------------------------------------------------------------------------------------------------------------------------------------

水晶报表编程使用方法

1.怎么让组页眉,在同一组中每一页都显示

插入组的时候,在公用选项页面选中“在每个页面上重复组页眉”

2.如何向CrystalReportViewer 和ReportDocument 传递参数……

一、CrystalReportViewer

通过CrystalReportViewer.ParameterFieldInfo 属性……

1、crystalreportviewer 成员

公共实例属性

ParameterFieldInfo(从CrystalReportViewerbase 继承)ParameterFields。获取或设置参数字段集合。

二、reportdocument

通过ReportDocument.DataDefinition.ParameterFields 属性……

1、reportdocument 成员

公共实例属性

DataDefinition DataDefinition。获取DataDefinition 对象。

2、datadefinition 成员

公共实例属性

ParameterFields ParameterFieldDefinitions。获取ParameterFieldDefinitions 集合。

三、参数字段运行时自定义(crystalreportviewer)

参考:

设置参数| Windows 窗体查看器的绑定选项| Web 窗体查看器的绑定选项

可支持用户在Crystal 报表中通过参数进行输入。这种参数有多种用途。例如:

使参数基于数据库字段并允许用户指定该字段的值,以便对报表中的数据进行筛选。

使用参数字段将条件格式应用于报表。

使用参数字段来定义排序顺序。

下列示例说明如何在运行时通过代码设置参数字段值。此例解释了如何设置两个不同的参数:第一个是多值离散参数,第二个是区域值参数。

在运行时修改参数字段

// 声明将参数传递给

//查看器控件所需的变量。

ParameterFields paramFields = new ParameterFields ();

ParameterField paramField = new ParameterField (); ParameterDiscreteValue discreteVal = new ParameterDiscreteValue (); ParameterRangeValue rangeVal = new ParameterRangeValue ();

// 第一个参数是具有多个值的离散参数。

// 设置参数字段的名称,它必须

//和报表中的参数相符。

paramField.ParameterFieldName = "客户姓名";

// 设置第一个离散值并将其传递给该参数。

discreteVal.Value = "AIC Childrens";

paramField.CurrentValues.Add (discreteVal);

// 设置第二个离散值并将其传递给该参数。

// discreteVal 变量被设置为新值,这样,以前的设置

//就不会被覆盖。

discreteVal = new ParameterDiscreteValue ();

discreteVal.Value = "Aruba Sport";

paramField.CurrentValues.Add (discreteVal);

// 将该参数添加到参数字段集合。

paramFields.Add (paramField);

// 第二个参数为区域值。paramField 变量

//被设置为新值,这样,以前的设置就不会被覆盖。

paramField = new ParameterField ();

// 设置参数字段的名称,它必须

//和报表中的参数相符。

paramField.ParameterFieldName = "客户ID";

// 设置范围的开始值和结束值并将该范围传递给

//该参数。

rangeVal.StartValue = 42;

rangeVal.EndValue = 72;

paramField.CurrentValues.Add (rangeVal);

// 将第二个参数添加到参数字段集合。

paramFields.Add (paramField);

// 将参数字段集合放入查看器控件。

crystalReportViewer1.ParameterFieldInfo = paramFields;

更多资料请查看:

https://www.sodocs.net/doc/c110158386.html,/develop/2005-4-8/12305/default.aspx

3.设置Crystal Report Viewer 的外观

设置Crystal Report Viewer 的属性:

BestFitPage 布尔值。获取或设置页面视图是大小合适还是用滚动条进行裁剪。

这个地方设为false后,设置Crystal Report Viewer 的宽度就可以去除滚动

说明:目前有两种情况,其中在从Web 窗体查看器进行打印时会出现问题:

BestFitPage属性为默认值“真”(即,没有垂直或水平滚动条),但PageZoomFactor大于100。

BestFitPage 设置为“假”,Web 窗体查看器的高度小于报表页的高度(即,有垂直滚动条),而查看器的宽度大于或等于报表页的宽度(即,没有水平滚动条)。

配合设置Width、Height 来实现无空白和无滚动条的显示!

DisplayGroupTree 布尔值。获取或设置树视图是可见还是隐藏。

DisplayPage 布尔值。获取或设置工具栏是可见还是隐藏。

DisplayToolbar 布尔值。获取或设置工具栏上的转到页按钮是可见还是隐藏。

PageZoomFactor Int32。获取或设置报表的缩放因数。

SeparatePages 布尔值。获取或设置报表页是分开还是连接。

PageToTreeRatio Float64。设置组树与报表视图之间的大小比例。

4.控制工具栏的按钮:

设置Crystal Report Viewer 的属性:

HasGotoPageButton 布尔值。获取或设置转到页按钮的可见性。

HasLevelUpButton 布尔值。获取或设置工具栏上的转到上一页按钮是可见还是隐藏。

HasPageNavigationButtons 布尔值。获取或设置工具栏上的页面导航按钮是可见还是隐藏。

HasRefreshButton 布尔值。获取或设置工具栏上的刷新按钮是可见还是隐藏。

HasSearchButton 布尔值。获取或设置工具栏上的搜索按钮是可见还是隐藏。

HasZoomFactorList 布尔值。获取或设置工具栏上的缩放因数列表是可见还是隐藏。

5.在Web 页面里的布局:

在“设计视图”,修改CrystalReportViewer 的Width、Height 属性。

切换到窗体的“HTML 视图”,修改style 属性。

DisplayGroupTree="False">

6.除水晶报表的的公司LOGO

将Crystal 公司的Logo 文件替换或删除……

(1)如果是用https://www.sodocs.net/doc/c110158386.html, 里自带的水晶报表

C:\Program Files\Microsoft Visual Studio .NET\Crystal

Reports\Viewers\images\ToolBar\logo.gif

(2)如果是用水晶报表9.2

C:\Program Files\Common Files\Crystal

Decisions\2.0\crystalreportviewers\images\toolbar\crlogo.gif

7.替换水晶报表里的各种图标和图片

(1)如果是用https://www.sodocs.net/doc/c110158386.html, 里自带的水晶报表

C:\Program Files\Microsoft Visual Studio .NET\Crystal

Reports\Viewers\images

(2)如果是用水晶报表9.2

C:\Program Files\Common Files\Crystal

Decisions\2.0\crystalreportviewers\images

8.关于打印的时候安装插件:

在Crystal Reports 的更新版本中,您可以使用新的CrystalReportViewer.PrintMode 属性来指定打印模式。其中包含两个选择项:ActiveX 和PDF。

当属性设置为PrintMode.PDF 时,报表会在WEB服务器上导出为PDF,然后以数据流传送到浏览器,使用者可以利用选项,直接打印到打印机。这个选项是跨平台相容的。

当属性设置为PrintMode.ActiveX时,ActiveX 打印控制项允许使用者将报表直接打印到本地打印机

先下载https://www.sodocs.net/doc/c110158386.html,/CRforVS2005/PrintControl.cab,放到自已的服务器上。

若要在Crystal Reports for Visual Studio 2005 网站显示cab 包,需将下列xml 语句加入网站的web.config 文件(必须加到

xmlns="https://www.sodocs.net/doc/c110158386.html,/.NetConfiguration/v2.0">之后,也就是最前面):

type="https://www.sodocs.net/doc/c110158386.html,ValueSectionHandler, System,

Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>

--这里改为.CAB包所在地址

注意:只有Internet Explorer 才会支持ActiveX 模式。若从非Internet Explorer 的浏览器(FireFox、Safari、Mozilla 等) 打印,将会恢复到PDF 弹

出对话框。

然后在打印的页面或直接在主窗体添加一个层,并在层中添加如下代码(可以采用其他方式)

classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A"

codebase="http://192.168.88.91/printcontrol.cab" height="0px"

version="10,2,0,1078"

viewastext="" width="0px">

version是版本号,如果你是其他的版本将版本号修改一下即可。

9.已达到系统管理员配置的最大报表处理作业数限制的处理

解决办法:

具体为修改下面两个键的值。

HKEY_LOCAL_MACHINE;SOFTWARE;Crystal Decisions;10.0;Report Application

Server;InprocServer;PrintJobLimit 修改为1000

还有一个HKEY_LOCAL_MACHINE;SOFTWARE;Crystal

Decisions;10.0;Report Application

Server;Server;PrintJobLimit 也修改为1000

我发现在C:\WINDOWS\Temp这个临时文件里面有大量的水晶报表文件,每使用一次就会生成几个文件,在电脑没有重新启动的情况下它不会被删除,而出现大量的无用文件,在google里面搜了一圈发现也有人碰到这样的情况但回答的很模糊只是说要将水晶报表装载的文档关闭掉,从这里可以看出出现这样的错误应该是程序员人为照成的.

具体解决如下:

1.ReportDocumen实例必须为类成员

private ReportDocument prtp = new ReportDocument();

2.使用完水晶报表必须关闭文件,这样子就不会在windows的临时文件里面产生.

private void Page_Unload(object sender, EventArgs e)

{

prtp.Dispose();

}

Page_Unload 事件是在页面完全显示的时候运行,这样子就解决了.

Crystal Report 2010水晶报表在 WINDOWS SERVER 2008使用

Crystal Report 2010水晶报表在WINDOWS SERVER 2008使用 前提條件:網站一定要調試成功,沒有任何錯誤,然後發布到Server之後,打開報表時,頁面沒有反應或是總是提示無法加載問題等問題,或顯示crystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumen tIsOpene等錯誤信息.可從以下方法來解決問題. 1.在Server安裝Crystal Report Runtime 組件,分為32位和64位,請注意 2.在windows\temp文件夾,要完全控制權限,切記,最好要重新啟動電腦 3.再建立web 應用程序

3.在第一次打開報表時,速度有點慢,然後提示安裝SAP Crystal Report Print Control 進行安裝,便可以正常預覽和打印. 在客户端使用一段时间后,没有任何反映或也没有报错的错误,就是不能预览及打印报表时,这时需要修注册表的键值:PrintJobLimit的数量,,默认值为75,须要修改为0,如下图所示 注册表路径:[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Report Application Server\Server] ActvieX控件安装问题,错误提示信息[或是无法验证发行者等错误]如下下图所示

解决方法如下 1.客户端电脑安装.NET 3.5 或以上版本,最好也安装.NET 3.5 SP1 2.将本网站加入到受信任的站点,并将安全级别设为最低或是ActiveX控件所 有选项都启用 名无效,设定如下所示

Visual Studio 2008 水晶报表快速入门

Visual Studio 2008 水晶报表快速入门 医手 先新建一个Web项目: CrystalWebApp 为项目添加新项: CrystalReport1.rpt

在弹出的对话框,选择作为空白报表。用向导当然更方便,但在这里,白手起家或许能更好地理解。 在工具箱选择 Text Object,拖到报表头。写些字,设置字体之类的。在属性选项卡设置它的名字为 txtTitle 以供将来程序访问。 水晶报表对于程序员来说其实跟 Repeater 控件是很相似的。于是需要数据和字段名。在Repeater 控件中你可以很随意地指定要绑定的字段名。在程序还没有真正运行之前,这个字段名可以没有任何表的字段名跟它匹配,也可以没有任何类的属性名跟它匹配。但在水晶报表中,字段名在设计阶段就必须是真实存在的。还能稍感安慰的是,水晶报表一旦设计好之后,就能像 Repeater 控件那样绑定任意类型的对像。而不必是设计时指定字段来源的表或类。所以我们现在要创造些真实存在的字段名…… create table TabTest ( UserID int, UserName nvarchar(50), Age int, Birthday datetime ) 你可以用 Access 或者 Excel 来创造真实存在的字段名,但我这里是使用 SQL Server。 在 "字段资源管理器" 的 "数据库字段" 上按右键,选择 "数据库专家..."。在

弹出的对话框中,创建新连接==>OLE DB (ADO)(Access 或者 Excel 应点 "数据库文件" 前的 "+" 号)。在弹出的对话框,选择 "SQL Native Client" 作为提供程序。 按提示一步步地做,直到连上数据库。选择表 TabTest,把它弄到右边的框中。再点击确定。 折腾了半天就是为了这些字段名。对水晶报表的开发商无语…… 把需要显示的字段拖到 "详细资料"。"页眉" 和 Word 文档中的页眉完全不是一回事。这里的页眉其实就是列名(表头)。那么就顺便改一下列名吧。默认是有下划线的,可以改一下格式。

C#水晶报表的使用

C#水晶报表的使用 1)在使用自带的水晶报表时,请注册,否则只能使用30次 2)使用CrystalReportViewer进行预览 CrystalReportViewer控件允许在应用程序中查看Crystal Report。ReportSource 属性用于设置要查看哪个报表。该属性设置之后,报表显示在查看器中。报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。 (1)打开“工具箱”,并将一个CrystalReportViewer 拖到窗体上,我们命名为rptVew。 (2)通过拖放操作将Windows 窗体查看器调整到希望的大小并将其移动到所需位置。 (3)当运行应用程序时,报表将显示在查看器中。 3)创建新报表 (1)指向“添加”,单击“添加新项”。 (2)在“添加新项”对话框中,从“模板”区域选择Crystal Report,将报表命名为rptClient,单击“打开”。 (3)在Crystal Report 库中,选择下列选项之一: A.使用报表专家-> 指导您完成报表的创建过程,并将您的选择添加到Crystal Report Designer。 B.作为空白报表-> 打开Crystal Report Designer。 C.来自于现有的报表-> 创建新报表,它与指定的另一报表设计相同。 注意Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。(4)单击“确定”按钮。 如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每

动态生成水晶报表

这两天学习如何生成动态水晶报表,看了网上的一些资料,觉得讲得都不是很详细。今天晚上做一个小的实例,算是对这两天学习的总结吧。 先让我们来看一下现实现的步骤: 一、新建一个项目: 二、向项目中添加Crystal 报表和DataSet 数据集,报表使用专家向导,在DataSet 数据集中添加一个表,为表添加八列,都使用默认名。

三、为CrystalReport1 设置数据库字段与参数字段。 四:实现代码: using System; using System.Collections.Generic; using https://www.sodocs.net/doc/c110158386.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.ReportSource; using CrystalDecisions.Shared; using CrystalDecisions.Windows.Forms; /**//**//**////

/// 动态生成水晶报表 ///

/// 王稳嵩 /// /// 2007-10-23 ///

namespace WindowsApplication4 ......{ public partial class Form1 : Form ......{ CrystalReport1 CrystalReport11; ParameterFields paramFields;//定义一个参数字段集对象 ParameterField paramField; //定义一个参数字段列表对象 ParameterDiscreteValue paramDiscreteValue; //定义离散值参数对象 DataSet1 ds1; SqlConnection conn = new SqlConnection("server=(local);Integrated Security = SSPI; database = Northwind"); public Form1() ......{ InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) ......{ this.cmbSqlstring.Items.Add("select orderid,customerid from orders"); this.cmbSqlstring.Items.Add("select * from Orders"); this.cmbSqlstring.Items.Add("select * from Products"); this.cmbSqlstring.Items.Add("等等"); } private void butQuery_Click(object sender, EventArgs e) ......{ if (this.cmbSqlstring.Text != "") ......{ if (this.cmbSqlstring.Text == "等等") ......{ MessageBox.Show("兄弟您可真幽默,没有这样的sql语句吧"); return; } this.dataGridView1.Columns.Clear(); try ......{

VB中如何使用水晶报表

水晶报表(Crystal Report)的业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。在https://www.sodocs.net/doc/c110158386.html,平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。 VB是以前流行的数据库开发平台,用其开发的C/S系统在社会上有非常大的保有量,但VB 超弱的报表功能往往让程序员面对客户的升级要求一筹莫展。本文并不做水晶报表的使用和编程教学,实际上水晶报表本身的使用方法和https://www.sodocs.net/doc/c110158386.html,平台并没有太大的差别,我主要是和大家探讨一下VB和水晶报表的一种较方便的接口方式。我的开发测试平台是Windows2003 Standard简体中文版、VB6.0+sp5英文版、Crystal 9.0简体中文开发版。 关于在水晶报表中制作报表模板的方法,并非本文的探讨范围,读者可以参考Crystal Report 的帮助文件和官方网站的技术资料。简单地说,首先要通过水晶报表的数据库引擎手动连接相应的表结构,制作报表模板,并保存为rpt文件,该项操作和利用VB自带的报表工具制作报表大同小异。 用VB调用水晶报表进行报表开发的简单接口方法就是,在水晶报表中用"仅字段定义"来获得字段分布文件,用虚拟的文件创建表字段,用CRAXDRT对象来强制改变数据源(ADO.recordset),其效果相当于在VB中调用了rpt文件。下面分步骤介绍编程方法。 第一步: 在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码: Option Explicit dim Report as New Cystal1 Private Sub Form_Load() Screen.MousePointer = vbHourglass '调用水晶报表时置鼠标为沙漏状 CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改

水晶报表完整教程:对比FineReport之用户入门

水晶报表完整教程:对比FineReport之用户入门 水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的用户入门功能。 水晶报表用户入门如下: 新用户快速入门 下面的教程帮助您在创建第一张报表时即树立信心。请使用本联机帮助的“目录”选项卡在教程中进行浏览。 在本教程中,当创建“客户列表”报表时,会获得有关该程序的介绍。“客户列表”是最基本的商务报表,一般含有诸如客户名称、城市、地区和联系人姓名之类的信息。 现在开始学习基本概念:选择数据库,在报表中放置一些字段,然后选择要包含的特定记录。接下来学习如何: 插入和移动数据库字段。 添加标题并设置格式。 在“预览”选项卡中显示报表,以便可以精细调整报表。 使用“选择专家”以确保在报表中只包含所需的数据。 移动对象。 数据分组及排序。 插入图片。 打印报表。 开始之前 本教程假设您已经熟悉了Microsoft Windows,并使用Windows环境中常见的惯用术语和过程。如果您还不熟悉Windows,请参考Microsoft Windows文档,以获得进一步的解释。程序中所有报表节的默认字体都设置为宋体、10磅。如果更改了默认字体,或者打印机不支持这种字体,那么字段大小、字段间距和屏幕显示看上去将和教程中的不一样。 本教程是在Microsoft Windows2000平台上设计的。如果使用不同的平台,则屏幕显示可能略有不同。 如果您还不熟悉Crystal Reports环境,请查看格式化,其中介绍了如何使用网格、自由格式位置、使用准线及格式设置活动。 创建报表

1.单击“标准”工具栏上的“新建”。 Crystal Reports库出现。 2. 3. 库中包含了许多向导,用于指导您创建特定类型的报表。因为在此处是学习报表的概念,所以可以跳过向导,从头开始创建报表。在完成本教程的学习之后,可以使用向导创建一些报表,以比较哪种报表创建方法最适合您。 4.选择“Crystal Reports库”对话框上的“作为空白报表”,然后单击“确定”。 出现“数据库专家”对话框。 5. 注意:可以根据数据库文件、SQL/ODBC数据源、字典文件、查询文件和各种其他数据源创建报表。 打印“产品注册”表格,然后通过传真将该表格发送到离您最近的注册传真号码。 Crystal Decisions将通过传真向您发回一个注册号,下一次使用产品时,您就可以将此注册号输入产品。 注册传真号码

java与水晶报表结合

使用eclipse在jsp上显示水晶报表(转) 2008-09-10 20:23:32| 分类:Java | 标签:|举报|字号大中小订阅 我使用的开发IDE是eclipse3.2,服务器是tomcat5.5 新建一个Crystal reports web项目 在Target runtime选择apache tomcat v5.5 下一步中crystal reports java reporting component、dynamic web module、java是默认选中的,这三个是必需的,你也可添加struts,后面的设置会要求你添加struts的类库。在最后面默认加入示例的数据库和报表。 这样一个Crystal Reports web项目就建立了(上面的步骤应该是地球人都可以完成吧) 在里面有个CrystalReport1.rpt和CrystalReport_viewer.jsp 右键CrystalReport_viewer.jsp->运行方式->Run on Server,点击完成。 你应该就可以看到一个空的水晶报表了吧(为什么空的,当然啦,CrystalReport1.rpt本身是空的) 在看看sample reports文件夹里面,有4个示例的.rpt报表文件,右击其中任何一个,选中Crystal Reports-》创建查看器JSP,就会创建一个*-viewer.jsp文件。运行这个文件,你应该可以看到一个水晶报表了吧。 我想这对大部分人应该都是没有问题的,剩下的事情就是好好分析这个项目里面所有的东东了 ------------------------------------------------------------------------------------------------------------------------------------------------------- 上面什么东西是在任何项目中实现都必须的呢?为此我特意建立一个新的tomcat项目,最好建一个简单的jsp页面测试下你的tomcat项目是否可以正常运行. 通过本人的实验,在其他项目中JSP运行水晶报表的话,需要的类文件跟配置. 1. 添加一个用户库如CrystalReports Libraries,把下面的*.jar添加进去 commons-collections-3.1.jar,commons-configuration-1.2.jar, commons-lang-2.1.jar, commons-logging.jar, Concurrent.jar, CrystalCharting.jar CrystalCommon.jar CrystalContentModels.jar CrystalDatabaseConnectors.jar CrystalExporters.jar

水晶报表打印模板修改

打印模板修改 1.1水晶报表软件安装 1.执行安装包下CR10_Autorun_CHSENT.exe,安装水晶报表软件 2.或者,在Crystal Reports安装目录中,双击,进入Crystal Reports 10 安装向导。

3.按照提示,点击“下一步”,并接受《许可协议》后,进入用户信息设置。输入产品密 钥号码,点击“下一步”,选择目标文件夹路径,开始安装。

4.按照提示安装完成水晶报表 5.安装完毕后,安JA V A组件,如下图。(修改BS文稿打印模版时,需进行以下操作,否 则,直接跳过此步。)

1.2 修改打印模版 在文稿软件的安装路径下,例如:C:\dayangNews\bin\rpt,找到后缀为rpt的打印模板,,双击打开,进行数据源的更新。这里以NewsClueItemPrint.rpt为例。 1.2.1 SQl数据库模板修改 1.打开模版后,见下图,在界面右侧“字段资源管理器”—“字段”页面内,右键点击“数 据库字段”,选择弹出菜单中的“设置数据源位置”。 此时,弹出如下界面。但是红框内显示的当前数据源位置信息与实际环境不同,我们要对它进行更改。

2. 见上图,双击界面下方的“创建新连接”选项,弹出如下图所示窗口,双击“OLE DB (ADO)”, 选择“OLE DB (ADO)”后,弹出如下对话框,从列表中选择“Microsoft OLE DB Provider for SQL Server”点击“下一步”;

3. 在弹出的对话框中输入服务器名。例如,服务器:192.168.10 4.3,用户名:sa,密码为空。此时,如果输入信息正确,则在数据库的下拉列表中会看到所有可用数据库信息,选择其中的dynews30,点击“下一步”至“完成”。

水晶报表CrystalReports培训教程(可编辑)

水晶报表CrystalReports培训教程(可编辑)水晶报表CrystalReports培训教程 Crystal Reports 用户指南 Crystal Reports 11专利 Business Objects 拥有以下美国专利,涵盖 Business Objects 提供和销售的产品: 5,555,403、6,247,008 B1、6,578,027 B2、6,490,593 和 6,289,352。商标Business Objects、Business Objects 徽标、Crystal Reports 和Crystal Enterprise 是 Business Objects SA 或其附属公司在美国和其他国家 / 地区的商标或注册商标。此处提到 的所有其他名称可能是各自所有者的商标。 版权所有 Copyright C 2004 Business Objects。保留所有权利。目录第1 章 Crystal Reports 11 简介 1.1 关于 Crystal Reports21 1.2 关于本指南22 1.2.1联机帮助.22 1.2.2Business Objects 信息资源..22 第2 章 Crystal Reports 11 中的新功能 2.1 介绍 23 2.2 强大的报表创制功能.23 2.3 提高的实用性.24 2.4 扩展的应用程序开发功能 25 2.4.1一般说明.25

2.4.2报表应用程序服务器 RAS26 2.4.3报表设计器组件 RDC.27 2.4.4Crystal Reports .NET.27 2.5 与 BusinessObjects Enterprise 11 的集成.28 第3 章安装 Crystal Reports 11 3.1 安装 Crystal Reports 1130 3.2 安装要求30 3.3 在本地计算机上安装 Crystal Reports31 3.4 创建安装点并从网络服务 器进行安装..32 3.4.1创建 Crystal Reports 的安装点.32 3.4.2从网络安装 Crystal Reports.33 34 Crystal Reports 用户指南 3.5 自定义安装34 3.6 运行无提示安装..35 3.7 升级 Crystal Reports 组件37 第4 章快速开始 4.1 学习如何使用 Crystal Reports39 4.1.1示例数据 -- Xtreme.mdb39 4.2 报表创建向导.39 4.2.1标准40 4.2.2交叉表 40 4.2.3邮件标签. 40 4.2.4OLAP40 4.3 新用户快速入门..41 4.3.1开始之前. 41 4.3.2创建报表. 42 4.3.3记录选定. 52 4.3.4分组及排序55 4.3.5完成报表. 58 4.4 高级用户快速开始59 第5 章报表设计概念 5.1 基本报表设计.64 5.2 决定报表内容.64 5.2.1说明目的. 64 5.2.2确定报表布局 65 5.2.3查找数据. 66 5.2.4操作数据. 67 5.2.5确定打印区域特性68 5.3 设计纸张原型.69 第6 章建立报表简介 6.1 报表创建选项.70 6.1.1报表创建向导 70 6.1.2另一个报表70

水晶报表是一个功能强大的报表工具

水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。喜欢水晶报表的朋友可以方便使用了。我把水晶报表在vs2005的使用方法总结一下,供大家参考。 首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005 【数据用例】 服务器:SQLEXPRESS 数据库名:Test 数据库表:T 【说明】 水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像。也就是说,推模式是用dataset 组装水晶报表。 水晶报表组件介绍。水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。在FORM项目里是分别是crystalReport,CrystalReportViewer。 CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。 下面分别介绍具体操作方法: 拉模式(PULL): 在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。例:“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名 以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名。 【WEB方式下】 using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; ///

///功能:拉模式提取水晶报表 ///个人主页:https://www.sodocs.net/doc/c110158386.html,/ /// /// /// protected void Button_pull_Click(object sender, EventArgs e) { // CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像。 CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalRepor t.rpt")); // SetDatabaseLogon 拉模式中必须用这个方法来设置登录信息,参数一:用户名;参数二:

水晶报表如何导出一个完美的EXCEL表格

现有报表项目中,一般有把报表导出成Excel的要求 而对于水晶报表来说,虽然带了导出Excel的功能,但是能导出一个能用的excel表格却不容易 因为很容易就会出现跨行跨列的情况,默认导出是没有格线的,手工(或者导出时选了格线)加上格线后,会显得很难看最主要的是没法直接在上面用,这给报表的再处理也带来了很大的不便。 很长一段时间以来,我一直是这么认为的,但是实际上,这是可以实现的。(非常感谢IBM的周勇) 我们一般做格子状的显示,都是用大框加线条或者单纯线条来做的,其实只要换个方式,用字段的边框来实现就可以了。先来看一下最终效果

需要说明的是,这个表格导出的时候,是没有选择“显示网格线”的

以上制作方法同样适用于infoview/web方式地导出。 我做了个操作视频,所以这里只是简单地说明一下。 把要使用的字段全划拉上,右键,格式化,选边框

注意,不是把字段的四个边全选上,比如在本例中,对于页眉上的几个表头字段,使用了左上下三边,最右边一个字段多了个右边这是因为前一个字段把后一个字段的左边框作为自己的右边框了 同样的,对于详细资料节上的字段,只用左下两个边,最右边的加一个右边框即可 这样详细资料节的每行的下边沿作为下一行的上边沿,对于第一行来说,它使用页眉上那一行的下边沿作为自己的上边沿 比较绕口,呵呵,不过做几次就熟悉了。 20090506更新: 使用上述方法,如果字段中存在Null或空的情况,会导致出现一个白色的区块,没有边框。可用如下方法解决: 如果是字符型的字段 if {字段}='' or isnull(字段) then ' '

VB程序打印水晶报表的方法

VB程序打印水晶报表的方法. 环境: MS SQL SERVER 2000 / VB6 / CRYSTAL REPORT8.5 步骤 1: 建立ODBC连接 2: 创建一个为Crystal Report报表文件 3: 加载Microsoft ActiveX Data Objects Library 至项目的References 中 4. 创建VB 设计(Designer) , 通过open existing file的方式把Crystal Report报表文件加载进来. 如果报表条件从画面输入需要写一些简单程序, 举例 Dim adoRs As ADODB.Recordset Private Sub Report_Initialize() SQL$ = "select * from view_XXXX where XXXX " ‘根据画面,重新获得where条件’ Set adoRs = CreateObject("adodb.recordset") adoRs.Open SQL$, "Provider=MSDASQL.1;Persist Security Info=False;Data Source=odbc_sales", adOpenKeyset, adLockBatchOptimistic

Database.SetDataSource adoRs End Sub Private Sub Report_Terminate() Set adoRs = Nothing End Sub 5: 创建VB画面(Form) ,加入Crystal Report Viewer控件 一些简单程序, 举例 Dim RptReportName As Rpt_ReportName ‘RptReportName is name of designer Private Sub Form_Load() CRViewer1.ReportSource = RptReportName CRViewer1.ViewReport End Sub

水晶报表

水晶报表(Crystal Reports)是加拿大Crystal Decisions公司创建的报表分析与生成软件,2003年被BO收购,而BO在2008年初又被SAP收购。水晶报表可谓是多次易主,但由于水晶报表历史比较长,使用的比较广泛,在业内算是最专业、功能最强的报表系统 。水晶报表(Crystal Reports)是加拿大Crystal Decisions公司创建的报表分析与生成软件,2003年被BO收购,而BO在2008年初又被SAP收购。水晶报表可谓是多次易主,但由于水晶报表历史比较长,使用的比较广泛,在业内算是最专业、功能最强的报表系统。 水晶报表可协助用户在企业网站或应用系统中设计、管理以及发布报表。水晶报表工具为企业提供了一个扎实的商业智能(Business Intellingence)的起始点,将零散的重要信息通过高效能的报表,安全地提供给企业内部和外部的使用者。 水晶报表功能 * 使用各种资料来源制作报表 * 享用功能强大的设计与格式设定功能 * 结合具弹性的分析 * 最快的报表处理能力 * 灵活的报表传送作业 * 可扩充的Web报表制作 * 取得您所需要的功能强大、弹性高的报表工具,将精巧的报表的制作功能结合到您的Windows及Web应用程序。 * 充分运用针对网站thin-wire环境设计的报表制作功能 * 支持应用程序的强大报表制作功能 * 享用前所未有的弹性与操控能力 * 水晶报表集成和接口 其优势是实现了与大多数流行开发工具的集成和接口。 * 一套完整的Web报表制作解决方案,让您容易制作网络报表 * 功能强大的工具,可将报表制作功能与Web及Windows应用程序结合 * 可利用各种资料来源,建立简报品质的精良报告 * 与微软Office紧密结合的报表制作功能

c#水晶报表完整教程:对比FineReport之用户入门

c#水晶报表完整教程:对比FineReport之用户入门 水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的用户入门功能。 水晶报表用户入门如下: 新用户快速入门 下面的教程帮助您在创建第一张报表时即树立信心。请使用本联机帮助的“目录”选项卡在教程中进行浏览。 在本教程中,当创建“客户列表”报表时,会获得有关该程序的介绍。“客户列表”是最基本的商务报表,一般含有诸如客户名称、城市、地区和联系人姓名之类的信息。 现在开始学习基本概念:选择数据库,在报表中放置一些字段,然后选择要包含的特定记录。接下来学习如何: 插入和移动数据库字段。 添加标题并设置格式。 在“预览”选项卡中显示报表,以便可以精细调整报表。 使用“选择专家”以确保在报表中只包含所需的数据。 移动对象。 数据分组及排序。 插入图片。 打印报表。 开始之前 本教程假设您已经熟悉了Microsoft Windows,并使用Windows环境中常见的惯用术语和过程。如果您还不熟悉Windows,请参考Microsoft Windows文档,以获得进一步的解释。程序中所有报表节的默认字体都设置为宋体、10磅。如果更改了默认字体,或者打印机不支持这种字体,那么字段大小、字段间距和屏幕显示看上去将和教程中的不一样。 本教程是在Microsoft Windows2000平台上设计的。如果使用不同的平台,则屏幕显示可能略有不同。 如果您还不熟悉Crystal Reports环境,请查看格式化,其中介绍了如何使用网格、自由格式位置、使用准线及格式设置活动。 创建报表

1.单击“标准”工具栏上的“新建”。 Crystal Reports库出现。 2. 3. 库中包含了许多向导,用于指导您创建特定类型的报表。因为在此处是学习报表的概念,所以可以跳过向导,从头开始创建报表。在完成本教程的学习之后,可以使用向导创建一些报表,以比较哪种报表创建方法最适合您。 4.选择“Crystal Reports库”对话框上的“作为空白报表”,然后单击“确定”。 出现“数据库专家”对话框。 5. 注意:可以根据数据库文件、SQL/ODBC数据源、字典文件、查询文件和各种其他数据源创建报表。 打印“产品注册”表格,然后通过传真将该表格发送到离您最近的注册传真号码。 Crystal Decisions将通过传真向您发回一个注册号,下一次使用产品时,您就可以将此注册号输入产品。 注册传真号码

水晶报表开发

创建简单水晶报表步骤 1:打开VS工具,新建解决方案和项目 2:先创建一个一个ds文件,在ds文件中添加一个datatable,并添加需要显示的列(此处的列和你从数据库中查询出来的字段名称相同),右击属性,选择相应字段的相应类型 3:创建水晶报表文件(rptShow) 选择标准- 在项目数据中找到刚刚创建好的数据集,并选择相应的datatable至右面的文本框中,点击完成,创建好报表文件。 5-1:在我做的报表文件中主要遇到的一个困难是求和;所以这里特别记录下 1:新建【运行总计字段】并取名,这里设计名称为:Sum_Qty

从报表字段中选择需要求和的字段,在汇总类型中选择和即可,此种方法为其一,还有一种方法则是建立好名称后,在公式工作室选择公式--→函数-→选择需要的函数并把相应的字段填充进去,我这里需要的是数量的求和,所以,选择好后是Sum(Qty) 即可,然后直接把之前创建好的名称放在报表文件中。 2:求和不同类型的数据,则需要进行判断,在我的数据库中有金和石两种数据,所以我要对石和金进行统计并求和。 同样需要创建运行总计字段,Sum_Qty,进入到公式工作室,找到刚刚创建好的运行总计字段名称(Sum_Qty),在右面的空白处写上判断 格式:if UOM=’G’ then 金的重量字段

4:调整好相应的格式,再新建一个项目文件(这里是针对winform程序,web的我还没试过,等试了再写) 5:在form表单中拉近一个报表显示控件,如图: 6:编写代码实现报表的显示: Dim rpt As New rptDetails ------rptDetails 指的前文创建的报表文件名称 Dim ds As New dsSummary.DeatilsQtyDataTable ------dsSummary(创建的数据集文件,DeatilsQtyDataTable 指的是数据集中,你想要使用的数据表,在此使用时,它会自动加上DataTable后缀,其实代表的就是你数据集中的DeatilsQty) rpt.SetDataSource(DBHelper.GetDetailsSummary(ds, PosCodes, txtFrom.Text.Trim,

VS2017中水晶报表插件下载安装方法

VS2017 中水晶报表插件下载安装方法 篇一:vs2005 水晶报表打包部署 vs2005 水晶报表打包部署 vs2005 中的 crystalReport 客户端分发 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports CRRedist2005_x86.msi 在客户端运行上面的文件即可 1)新建“安装和部署项目”-->“安装项目”,确定后在我们的解决方案中多了个安装和部署的 项目 2)右键点击刚建的安装项目-->添加--->项目输出-->从列表中选择主输出-->选择输出的项 目 3)右键点击刚建的安装项目-->添加--->合并模块-->把我们下载到的 10 net 部署的合并模 块全部添加进去 4)注意有个 CrystalReports10_NET_EmbeddedReporting.msm 的模块,我们查看它的属性,把 AV860-01CS00G-U7000NC 填写到 keycode 属性值中,要不编译不通过的. 5)最后我们来编译生成我们项目的安装文件,setup.exe 在客户端就可以安装正常使用了 下载合并模块 简体中文 (cr10_net_merge_modules_chs.zip) https://www.sodocs.net/doc/c110158386.html,/communityCS/FilesAndUpdates/cr10_net_merge_modules_ch s.zip.asp cr10_net_merge_modules_chs.zip 解压后有四个合并模块分别为: CrystalReports10_maps.msm ; CrystalReports10_NET_EmbeddedReporting.msm; CrystalReports10_NET_RemoteReporting.msm; CrystalReports10_NET_WebServiceReporting.msm 前几天用 VS2005 做了个简单的医务系统的演示程序,B/S 模式的,里面用到了水晶报表,说实 话,这还是我第一次用水晶报表,看了看帮助就开始做,还算是顺利吧,以为是演示用,要求不太高. 做完了就发布,然后就把程序给人家了,结果到了人家那水晶报表那块不能看!他说水晶报表发 布的时候需要考几个库,VS 发布的时候不能自己把 dll 文件打包放到里面去, 我就把那两个文件 (CRDesigner.dll,crvspackage.dll,放在 VS 安装目录的 Crystal Reports 文件夹里)给人家考了 过去,结果还是不行,后来上网查说需要 Crystal Reports 合并模块,从网上 down 了一个,做一 个了安装程序把它装上了也行不通,没办法回来了。 1 / 7

水晶报表

水晶报表 水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。喜欢水晶报表的朋友可以方便使用了。我把水晶报表在vs2005的使用方法总结一下,供大家参考。 首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005 【数据用例】 服务器:SQLEXPRESS 数据库名:Test 数据库表:T 【说明】 水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL 语句而生成的dataset对像。也就是说,推模式是用dataset组装水晶报表。水晶报表组件介绍。水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。在FORM项目里是分别是crystalReport,CrystalReportViewer。 CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。 下面分别介绍具体操作方法: 拉模式(PULL): 在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。例:“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名 以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名。 【WEB方式下】 using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; ///

///功能:拉模式提取水晶报表 /// /// /// protected void Button_pull_Click(object sender, EventArgs e) {

通用水晶报表模板创建实例

通用水晶报表模板创建实例 1.背景目的 当有一大批报表需要你通过水晶报表来实现其打印、导出功能时,你不得不为这些具有相似结构的报表创建一一对应模板(rpt文件)而感到烦恼,其实,对于每一个编程人员来说,内心早就有一种想法:能不能通过一个通用的报表模板来实现这些报表所需要的功能呢?下面就从这个念头入手,解决这个烦人的问题。 2.方法思路 仔细研究一下水晶报表模板rpt的文件结构,主要有以下四个方面: 一、数据源设置 二、数据字段绑定 三、特殊字段应用 四、文本对象设置 数据源的设置需要通过绑定一个DataSet文件,对于不同的报表,具有不同的报表数据结构,所以问题的关键所在就是要统一一个具有相同结构的DataSet文件,把它作为水晶报表的唯一数据源。 在具有一个统一的数据源结构之后,我们需要做到的主要有两点: 一、控制报表数据传入报表的时候我们可以将传入的DataSet数据集的表结构都转换成跟DataSet文件一样的结构(比如表名、字段名和字段数的转换); 二、在水晶报表模板中用未绑定字段和文本对报表结构进行构造。 3.创建步骤 通过上面的思路分析,我们大致已经知道了实现统一报表模板所需要做事项,下面进行具体操作: 一、准备工作 我们都知道,做每件事情必定是有得有失的,主要是得要多与失,并达到我们的理想目标,在统一报表模板的时候,我们必定会失去了每个报表的灵活显示特点,所以一开始,我们就要为这个统一的报表模板设定一个最大的字段数和实际显示数,这些都必须进行固定化,在这里,我们可以设置最大字段数 MaxColumnNum=15,实际显示数为ShowColumnNum=11。 注:最大字段数大于实际显示数是为了以后的报表扩充升级做准备的。

相关主题