新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → [转帖].NET基础学习:经典水晶报表设计三则 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2227 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖].NET基础学习:经典水晶报表设计三则 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     愚者 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:愚者
      等级:计算机学士学位
      文章:259
      积分:2375
      门派:XML.ORG.CN
      注册:2004/10/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给愚者发送一个短消息 把愚者加入好友 查看愚者的个人资料 搜索愚者在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看愚者的博客楼主
    发贴心情 [转帖].NET基础学习:经典水晶报表设计三则

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

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


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    http://photo.cnitv.com/PicLib/Pictures/Pi_21377.gif
    人生的意义不在马到成功,而在于不断求索,奋力求成。每一件有意义的事都需要不得我们以坚强的信念去完成,这样,我们的生活才会更加充实,意志更加坚强。
    人与人之间虽然相隔很近,但是心却离得很远!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/30 20:30:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/10 5:41:38

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms