正在阅读:.NET基础学习:经典水晶报表设计三则.NET基础学习:经典水晶报表设计三则

2004-02-14 09:34 出处:PConline 作者:haibodotnet/CSDN 责任编辑:linjixiong
  一、经典水晶报表设计三则之“分栏”
  
  借助"多列格式化"功能实现。
  
  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、文本旋转

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

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品