万旬的博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
Crystal Reports(水晶报表) 一直是报表设计开发工具中的佼佼者,其功能强大,设计灵活。水晶报表就是在设计器中建立 的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。.rpt报表文件. 执行报表中的第一步就是在水晶报表设计器接口建立 此报表, 在默认安装中微软已经提供了一些现成的.rpt例子。
  一、经典水晶报表设计三则之“分栏”

  借助"多列格式化"功能实现。

  1. 启用"多列格式化"功能。
  (1) 进入“节专家”对话框,并在“节”中选择“细致 资料”。  
  (2) 在"公用"选项卡选中“多列格式化”,此时会出现“布局”选项卡。 

  2. 调整布局,实现分栏效果。  
  要想分两栏,调整“细致 资料大小”的宽度,确保宽度的两倍小于去除页边距后的页面宽度,才能一行显示两行记录。  
  要想分三栏,调整“细致 资料大小”的宽度,确保宽度的三倍小于去除页边距后的页面宽度,才能一行显示三行记录。  
  依次类推,实现其它栏数的分栏。

  参考:“布局”选项卡(节专家)介绍
  当选定细致 信息部分且选中“公用”选项卡上的“多列格式化”框后,出现“布局”选项卡。 

  运用 “布局”选项卡以多列格式配置 报表。即,不是一直沿着页面向下打印数据,而是可以配置 多列以使数据在列之间流动。还可以在页面上按先行后列的方式打印数据,即先打印每列中的第一个记录,然后打印每列中的第二个记录,然后打印第三个记录,依此类推。该对话框分为四个更小的框。 

  细致 资料大小
  该框使您能够指定一个细致 资料的尺寸(高度和宽度)。确定所希望的每个细致 资料的宽度(基于字符数、字体大小,等等)并在“宽度”编辑框中输入该值。

  确定所希望的每个细致 资料的高度(基于细致 资料内的行数、字体大小等)并在“高度”编辑框中输入该值。
  细致 资料间距
  运用 该框可以指定希望在细致 资料间留出的空白区域(间距、装订线,等等)。水平 = 细致 资料的横向间距,垂直 = 细致 信息的纵向间距。

  确定希望允许的间距。在“水平”编辑框中输入数据水平间距,并在“垂直”编辑框中输入垂直间距。

  打印方向
  “打印方向”框使您能够指定程序在报表页上打印细致 资料时所遵循的路径。选项有:

  先行后列 

从左到右打印各列中的细致 资料,即先打印第一列中的第一则细致 资料,然后打印下一列中的第一则细致 资料,依此类推。然后,当所有列都包含细致 资料后,程序沿着页面向下移动,打印第一列中的第二则细致 资料,然后打印第二列中的第二则细致 资料,依此类推。

  先列后行 
  沿着第一列向下打印细致 资料,然后沿着第二列,依此类推。

  格式化带有多列的组
  如果希望程序运用 为选定节指定的“宽度”、“细致 资料间距”和“打印方向”格式化带有多列的组,则选择该复选框。

  二、经典水晶报表设计三则之“单击表头排序表格”

  1. 新建一个字符串类型的参数字段,名称为 URL,用于传递 Asp.Net 程序的网址和网址的部分参数。比如:"http://www.nt.cn/cr.ASPx?sort_field="。 

  2. 右击作为表头的文本字段,选择"配置 文本格式",进入"格式化编辑器"对话框。

  3. 选择"超级链接"选项卡,并配置 超级链接类型为"Internet 上的网址"。

  4. 单击超级链接信息的站点 地址后面的公式的钮,输入公式 {?URL} + "name"。

  5. 这样表头就变成了超级链接,而且指向 http://www.nt.cn/cr.aspx?sort_field=name。

  6. ASP.NET 程序在 Page_Load 事件里读取要排序的字段 sort_field,然后对水晶报表执行 排序。
    7. 水晶报表排序编程实例
  Dim crReportDocument As ReportDocument
  Public Sub changeSortField(mySortFld As String, mySortDir As String)
  Dim crSortField As SortField
  Dim crSortDirection As SortDirection
  Dim crDatabaseFieldDefinition As DatabaseFieldDefinition
  For Each crSortField In crReportDocument.DataDefinition.SortFields
  If crSortField.Field.Name.ToString = mySortFld Then
  crDatabaseFieldDefinition = crReportDocument.Database.Tables(0).Fields(mySortFld.ToString)
  crSortField = crReportDocument.DataDefinition.SortFields(0)
  crSortField.Field = crDatabaseFieldDefinition
  If mySortDir = "Ascending" Then
  crSortField.SortDirection = SortDirection.AscendingOrder
  Else
  crSortField.SortDirection = SortDirection.DescendingOrder
  End If
  End If
  Next
  CrystalReportViewer1.ReportSource = crReportDocument

  End Sub 

 

三、经典水晶报表设计三则之“设计横向篇幅非常长又多列的表”

  1、在“打印配置 ”对话框,选择“横向”选项以横向方向打印报表。  
  2、在“页面配置 ”对话框,缩小上边距、下边距、左边距、右边距。  
  3、纵向显示所有报表对象。 

  (1) 将所有报表对象旋转270度,字段、文本、图片、页码等对象。
  右击报表对象,选择"格式化",进入"格式化编辑器对话框"。选择"公用"选项卡,在"文本旋转"下拉列表框选择 270。  
  (2) 纵向拉长对象,确保纵向上可以容纳显示。  
  (3) 所有的节都要拉长,以容纳对象。  
  (4) 页标题放在右上角,页码放在左下角或右下角。

  参考:
  1、“公用”选项卡(“格式配置 编辑器”对话框)
  运用 “公用”选项卡为所需字段配置 如取消、水平对齐以及将对象保持在一起等属性。

  2、文本旋转
  该列表包括可用于所选字段的旋转选项。运用 “文本旋转”选项垂直对齐报表上的字段和基于文本的对象。

  原文来自:http://www.ad0.cn/netfetch/read.PHP/364.htm 

 

 

posted on 2010-11-03 20:03  蓝波崖  阅读(500)  评论(0编辑  收藏  举报