vs 2010下使用水晶报表Crystal Reports 的详细步骤

一。所需条件 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语句。

八。启动调试

bdm导入mysql_vs 2010下使用水晶报表Crystal Reports相关推荐

  1. vs 2010下使用水晶报表Crystal Reports

    vs 2010下使用水晶报表Crystal Reports (2013-04-26 10:34:41) vs 2010下使用水晶报表Crystal Reports 的详细步骤 一.所需条件 1. 工作 ...

  2. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用

    报表学习总结(一)--ASP.NET 水晶报表(Crystal Reports)的简单使用 目录 一.水晶报表简介 二.水晶报表的实现模式 2.1.拉(PULL)模式 2.1.1.不敲一句代码创建水晶 ...

  3. [水晶报表]如何设置水晶报表(crystal reports)的字段自动换行

    在做报价系统时候水晶报表做最后报表的产出.由于规格字数较长,用户在预览报表时无法看全规格,规格多出部分会导致重叠现象. 百度文库提供一个解决方案: 1.如何设置水晶报表(crystal reports ...

  4. 水晶报表 (Crystal Reports) code128 条形码 保存为PDF后 不显示条形码的 解决办法

    水晶报表  打开后  条形码是正常显示 但是 保存为PDF后  条形码 就变成显示数字 如下图所示 解决办法为: 需要在 水晶报表  程序所在的web服务器上 安装 Adobe Acrobat Rea ...

  5. 水晶报表Crystal Reports XI服务器版

    Crystal Reports-可协助用户在企业网站或应用系统中设计.管理以及发布报表.水晶报表为企业提供了一个扎实的商业智能(Business Intelligence)的起始点,将零散的重要信息通 ...

  6. 在 FROM 下打开水晶报表文件(代碼碎片)

    using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys ...

  7. 水晶报表Crystal 语法 实用字段编辑

    公式字段 转日期文本 totext ({IC_AvailabilityContract.Thedatethecontractissigned},"yyyy年MM月dd日") 产品图 ...

  8. 水晶报表CrystalReport实现报表打印和动态图片导入

    文章目录 CrystalReport依赖下载 1.依赖下载 2.水晶报表设计器下载 实现报表打印和动态图片导入流程 1.数据准备 2.生成mytest.rpt文件 (1)新建空白报表文件 (2)设计水 ...

  9. 水晶报表使用经验总结

    资料: Asp.Net中使用水晶报表(上) www.dotnet8.com  2002-9-6  DotNet吧 这篇文章教你如何在.Net Web应用中使用水晶报表,也可以让你在学习过程中少走一些弯 ...

最新文章

  1. Newtonsoft.Json高级用法
  2. ASP.Net2.0 数据绑定控件的优越性在哪里?
  3. hadoop中实现定制Writable类
  4. Linux Namespace机制简介
  5. WIN8禁用休眠功能
  6. 初探Java8中的HashMap(转)
  7. opencv图像分析与处理(12)-逆滤波、维纳滤波、约束最小二乘方滤波和几何均值滤波
  8. Linux相关——关于gdb的checkpoint breakpoints指令
  9. quartz mysql 配置_quartz的数据库配置
  10. 产品经理,没有那么牛逼
  11. 浩辰3D软件入门教程:如何创建零件?
  12. Vue 3 组件开发:搭建基于SpreadJS的表格编辑系统(环境搭建)
  13. 我的创业项目steam游戏王子斗恶龙(含技术透露)
  14. iphone13预计上市时间 苹果13多少钱
  15. 执FPGA异构计算之耳
  16. Python - Requests库下载图片
  17. Java 设计模式 轻读汇总版
  18. 徐州初中计算机学校排名2015,2018年徐州初中学校排名,徐州重点初中排名详细榜单...
  19. 深度剖析Java常量池
  20. 计算机维修知识论文,计算机维修论文2000字

热门文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组缺口箱图(notch boxplot)实战
  2. sklearn可视化不同数据划分方法的差异:KFold, ShuffleSplit,StratifiedKFold, GroupKFold, StratifiedShuffleSplit.......
  3. 实体识别+entity resolution
  4. java判断自己活了多少天_用程序计算你活了多少天
  5. BLAST数据库搜索
  6. 基于三代测序技术的高产糖化酶黑曲霉工业菌株基因组组装与注释及功能基因比较研究
  7. STM32使用另外两种方法使LED灯闪烁
  8. 场景法设计测试用例atm_软件测试零基础入门:常用八大测试用例设计方法,含案例...
  9. 1.字母异位词分组(LeetCode第49题)
  10. Python入门 Python自学路线 Python如何学习