版本:v13.0.0.99 官方版大小:278M
类别:编程辅助系统:WinAll, WinXP
立即下载官网下载地址:点击进入
SAP Crystal Reports for vs2010也就是vs2010水晶报表,是Visual Studio 2010配套使用的组件,由于VS2010没有集成水晶报表组件,必须先安装 水晶报表 for VS2010
visual studio 2010默认不带水晶报表,须要安装一个水晶报表插件,起首此插件:
http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe
完后直接点击安装
若是是64位体系会提示安装水晶报表64位运行时:
主动安装完就OK了。
一。所需条件
1. 工作环境 VS 2010(页面和报表文件要在不同文件夹),对VS 2008,VS 2005 也可。
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语句。
八。启动调试
查看全部