vs 2010下使用水晶报表Crystal Reports

vs 2010下使用水晶报表Crystal Reports

(2013-04-26 10:34:41)

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. 再将“报表尾”,紧挨着上面穿越的竖线放置即可。

vs <wbr>2010下使用水晶报表Crystal <wbr>Reports



  以下步骤可以不做
 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语句。

八。启动调试

 

vs <wbr>2010下使用水晶报表Crystal <wbr>Reports

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值