软件大小: 320 MB更新时间: 2017-03-16
作者:二师兄的小弟大 时间:2021-11-17 15:35:39
crystal reports 2016又称水晶报表2016,这是一款好用的报表开发工具,该软件由Business Objects公司推出,软件拥有直观的用户界面和可视化的开发环境,它拥有专业的报表系统和报表处理能力,可以大大地提高IT开发人员的效率,并应用应用整合、数据格式化设计和报表查阅等多种功能。
Crystal Reports是Business Objects公司推出的一款功能强大的商务智能(BI)软件,中文名称:水晶报表。它是业内最专业、功能最强的报表系统,最快的报表处理能力,享用功能强大的设计与格式设定功能,能创建您所能想象的任何报表。水晶报表最大的优势在于实现了与绝大多数流行开发工具的集成和接口,在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象,除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。
1、应用整合
请了解一下你如何能够利用 Crystal Reports 来将报表的查阅、创建和修改功能添加到你的应用之中
2、数据的访问
利用超过35项数据驱动可以访问到任何一种数据,并对数据库的连接加以严格控制
3、格式化与设计
利用可视化报表设计和动态提示等特性设计出专业格式的、交互式的报表
4、报表的查阅和互动
通过对报表进行定制化开发,方便企业内的人员查看和使用报表,以满足他们的具体需求
5、安全性、支持和维护
请了解一下 Crystal Reports 如何在你现有的安全架构中运行,以及如何与其他 Business Objects 工具加以配合
6、增加报表的传递和管理
选择 Crystal Reports Server XI 来向最终用户传递报表,并从你的网络服务器上下载报表,提高工作效率
一。所需条件
1. 工作环境 VS 2010(页面和报表文件要在不同文件夹),对VS 2008,VS 2005 也可。
2. 数据库 SQL2000 或者 SQL2008
3. 水晶报表Crystal Reports , CR for VS_13_0
4. 创建一个网站方式的解决方案
菜单 文件 - 网站 - ASP.NET 网站,名称为默认的WebSite1
5. 右击 解决方案WebSite1- 新建文件夹
创建2个文件夹 ,并更名为, 报表文件夹CR,显示文件夹VW
6. 右击 解决方案WebSite1- 添加 ASP.NET文件夹
创建1个,存数据的文件夹 App_Code
二。数据连接( 这一步骤可以省略,如果之前曾经做过)
1. 菜单 视图 - 服务器资源管理器
2. 右击左侧列表的 数据连接 - 添加连接
3. 数据源
点击右侧的 更改 ,弹出更改数据源窗口,
选择 数据源 中, Microsoft SQL Server
选择 数据提供程序 中, 用于 OLE DB 的 .NET Framework 数据提供程序,按 确定 返回后。
确保添加连接窗口的数据源处,显示为: Microsoft SQL Server (OLE DB) ,如果不对要重新选择。
4. 服务器名
选择输入自己或其它机器,比如: SVRT1
5. 登录到服务器
自己机器, 可以选择使用 Windows 身份验证
其它机器, 选择 使用 SQL Server 身份验证 ,用户名 sa , 密码为空或自己的设置
6. 连接到一个数据库,
选择或输入一个数据库名,比如:xy_jxc_2008
7. 点击下面的 测试连接 ,直到出现 测试连接成功 即可,点击 确定 即可。
三。建立数据源 .xsd
1. 右击 解决方案的 数据 文件夹 App_Code - 添加- 新建项
从左侧 已安装的模板 列表中选 数据 ,右侧列表中选 数据集
在下侧 名称 处输入希望的名称,比如: DataSet1.xsd, 按 添加 进入。
2. (可选的可以建立 数据连接,如果没有的话)
3. 添加表或视图
从左侧 服务器资源管理器 - 数据连接中,点选一个连接,将其中需要的表或者视图,比如:b_sys_user,拖到页面上,点击 菜单 保存 即可。
四。设计水晶报表 .rpt
1. 右击 解决方案的报表文件夹 CR - 添加- 新建项
从左侧 已安装的模板 列表中选 Reporting ,右侧列表中选 Crystal Reports
在下侧 名称 处输入希望的名称,比如: CrystalReport.rpt, 按 添加 进入。
2. 点 确定 按向导继续(这步可省略,如果 我的连接 中有了DataSet1)
左侧 可用数据源 列表中,点开 创建新连接 - ADO.NET(XML) - 建立新连接
在弹出的 ADO.NET(XML) 窗口中,点击 文件路径 右侧的 ... 按钮,找到刚建立的App_Code文件夹下的 DataSet1.xsd
按 打开 - 完成 ,返回即可。
左侧 可用数据源 列表中,- 创建新连接 - ADO.NET(XML) 之下,已经有了DataSet1
3. 选定需要的项目
从左侧 可用数据源 列表中,右击 我的连接 - 刷新 ,将看到DataSet1
点开 左侧 DataSet1,在其之下 选一个表或者视图,点中部的 ,选定的表追加到右侧 选定的表 列表中
同理设置随后的 要显示的字段 、 分组依据 、 过滤字段 等。
在最后步的 可用样式 ,选定需要的样式,从右侧预览好,点 完成 即可。
4. 过后也可以 右击 报表页面 - 数据库 - 数据库专家,再次更改所选之项。
5. 从左侧 字段资源管理器 ,拖进 数据库字段 到详细资料区域,公式字段,特殊字段的日期,页码等到页眉页脚。
6. 右击 页面 适当的部位,从中选择插入 文本,直线,图片等,并设置它们的格式。多个文本、字段本身等可以使用工具条上的对齐工具,来使它们同一大小或对齐;而文本、字段框内的内容则使用另外的文字对齐工具;线条则只能在其属性中,设置 left,top,right,bottom 来达到统一。设置的数值可能是对于不同的区域而言,比如Top=100对于组头,而Bottom=1 则对于组尾。
设置完毕,保存。
五。字段改名、增加或者删除
1. 设计好报表后,如果需要变更字段,将数据库表或视图的字段,改名、增加或者删除。
2. 打开数据源DS_V_SHCH_WGHBDMXI.xsd,将变更的表或者视图,从中删除并再次拖入。
3. 打开报表设计BB_SHCH_WGHBDMXI1.rpt
4. 点开 字段资源管理器 ,右击 数据库字段 - 登陆或注销服务器。
5. 在数据资源管理器中,左侧 的 我的连接 中,找到自己的数据源DS_V_SHCH_WGHBDMXI ,点击 登录 按钮,点击 关闭 退出。
6. 在 字段资源管理器 ,右击 数据库字段 - 验证数据库,一般就可以了。如果是改名称,则需要使用字段影射。
六。如过需要,可按字段分组
1. 找到左侧 字段资源管理器 之下的 组名字段 并右击它,选择 插入组 或者 组专家 ,选择依据分组的字段。
可以继续按 选项 ,勾选 在每个页面上重复组头 等。
2. 将 组头 放到 页眉 区域, 组尾 放到 详细资料 区域。同时将 组 #1 名 放到 页眉 区 组头 的之后适当位置。
3. 将不变化的内容放到 组头 之下,包括表格顶部横向线,说明文字,文字之下的横线,选定所有文字,使用工具条上的 组件对齐工具 ,使它们等高、底部对齐,然后再使用工具条上的 文字对齐工具 ,使文字,居左、中、右对齐,最终如下的内容:
---------------
| 序号 | 姓名 |
---------------
4. 将可变的字段,以及表格的 竖线 ,放到 详细资料 区域,同样也对齐它们如下:
| NO | NAME |
5. 选定 详细资料 的所有字段,并右击其中之一 - 设置对象格式,勾选公用选项卡的 可以增大 ,以便字段内容过长,可自动扩展到下面多行,而不截断。
6. 右击 详细资料 的节分割横条, - 在下方插入节,在新插入的 详细资料 b 中,插入一条横线,或者选择上面的横线,ctrl+c复制, ctrl+V粘贴,移动到本节的顶部,可在属性窗口中,设置该横线的top为1,以便紧帖着 详细资料 b ,上面 详细资料 a 中字段扩展多行时,只在自己的小节a中,从而不会覆盖本节b。设计的表格的可变的横线,如下所示:
---------------
7. 将 组尾 也放到 详细资料 区域,并拖动 组尾 紧挨着上面的横线放置,这样行间不会出现更多的间隔。
8. 将上面所有的竖线,从组头区域均向下拉到组尾区域,刚好穿越并超过 组尾 即可,也可以选定所有已经穿越组尾的竖线,在属性窗口中,设置它们的bottom 均为1 (对于组尾),它们的top 均为168(对于组头),这样才能保证竖线的连续。
9. 再将 报表尾 ,紧挨着上面穿越的竖线放置即可。
以下步骤可以不做:
10. 如果需要,可以在组尾放置一条粗横线,将组头以及两边的竖线改成粗线,形成周边的线为粗线。
11. 将不必要的节接抑制显示,比如,右击 报表尾 、 页脚 的节分割横条,- 抑制显示。
12. 如果要删除不适当的组,可以右击 组头 #x 的节分割横条,- 组专家,在右侧 分组依据 列表中,选择不要的分组,点击左向按钮 ,去处即可。
13. 如果想一个分组就换页,右击 组头 #x 的节分割横条- 节专家,保证左侧节列表中,选定的是你的组头,在右侧 分页 选项卡,勾选 之前新建页 ,单击对应的公式按钮 x-2 ,在其中输入: groupnumber mod 1=0 ,并点击 保存 即可。
14. 如果想一页显示固定的行,右击 详细资料 的节分割横条 - 节专家,保证左侧节列表中,选定的是你的 详细资料 ,在右侧 分页 选项卡,之后新建页之下,勾选 节末尾 ,单击对应的公式按钮 x-2 ,在其中输入: 两种方法之一的固定10行,
' 方法1 (BASIC 语法) TRUE为分页
if onlastrecord then
FORMULA = FALSE
else
if RecordNumber mod 10 =0 then
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
//方法2(Crystal 语法) TRUE为分页
if onlastrecord then
False
else
if RecordNumber mod 5 =0 then
TRUE
else
False
并点击 保存 即可。
七。创建报表显示页面
1. 右击 解决方案的显示文件夹 VW - 添加 - 新建项
在左侧 已安装的模板 列表中选 Web ,右侧列表中选 Web 窗体
在下侧 名称 处 输入希望的名称,比如: Default.aspx, 按 添加 进入。
2. 报表设计 Default.aspx
从左侧 工具箱 - 报表设计
2.1 拖入水晶报表显示控件 CrystalReportViewer,为CrystalReportViewer1
2.2 拖入水晶报表数据源控件 CrystalReportSource,为CrystalReportSource1,(这步可以不做)
3. 打开并改造 VW/Default.aspx.cs
3.1 保留从文件开头 到 类声明语句,以保持本类的完整性
public partial class VW_Default : System.Web.UI.Page
3.2 之后的全部删除
3.3 打开已经作好的报表文件,从类声明语句之后复制到文件尾
3.4 修改成如下的完整列表:
3.5 注意其中的报表名称,视图名称,表名称等即可。
using System;
using CrystalDecisions.CrystalReports.Engine;
using System.Data;
using System.Data.SqlClient;
public partial class VW_Default : System.Web.UI.Page
{
private ReportDocument customerReport = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
string strWhere = "";
if (Request.QueryString["strWhere"] != null)
{
// Security objSecurity = new Security();
// strWhere = objSecurity.DecryptQueryString(Request.QueryString["strWhere"].ToString());
}
show(strWhere);
}
protected void show(string sql)
{
string strPath = Server.MapPath("../CR/CrystalReport.rpt");//报表名称的修改, 上面 步骤四。设计水晶报表
customerReport.Load(strPath);
string str_conn = "Data Source=SVRT1;Initial Catalog=JXC;User ID=sa;Pwd=;";//选择服务器SVRT1,(. 小点代表自己) ,数据库 JXC,连接
string str_sql = "select * from b_sys_user";//选择表b_sys_user的所有字段
DataSet ds =Query(str_conn,str_sql);
ds.Tables[0].TableName = "b_sys_user";//给定一个表名,报表绑定使用
customerReport.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = customerReport;
}
private void Page_Unload(object sender, EventArgs e)
{
customerReport.Dispose();
}
public DataSet Query(string SQLconnection_string,string SQLString)
{
using (SqlConnection connection = new SqlConnection(SQLconnection_string))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
}
4. 改造该文件
4.1 加入引用的命名空间
右击 其中所有 下面加红色波浪线 的不认识的字, 解析 - 点选 using ...
4.2 完成之后,再去掉无用的 using ....
右击 空白处,- 组织 using - 删除未使用的 using ... ,将删除不需要的using语句。
八。启动调试