RDLC实现同一份Report不同格式页之旁门左道

首先说明一下,之所以用乓旁门左道为题,主因是我不确定这是否是好的解决方法(有可能是小弟不材,若您有更好的或是正确的解法,希望不吝指教啰)

需求是这样的,User有一份送交某机关的报表,而这份报表它的第一页格式与第二页之后的明细格式是不相同的

简单的说,第一页是一张类似申请单的表格,从第二页之后才是明细资料的List

以往使用ReportViewer开发RDLC报表的经验,同一份报表大部份都是同样的格式,这次的需求算是第一次接触到

,花了点时间试了几个方式之后,最后利用二个Report的Table元件来实现这样的需求

 

先来看一下欲达成的报表长相



接着来看如何利用二个Table来达成以上的报表需求

 

(1)利用第一个Table,只保留Header,在Header里再拉一个Table,利用内层的Table来制作第一页的报表格式



内层Table编排后的效果


(2)接着在原本的页面上,再放置第二个Table,其作用做为呈现报表第二页以后的明细列表


(3)格式编排完之后,利用设定换页技巧来达到第一页只呈现第一个Table格式

在第一个Table的Properties里,设定在这个Table后安插换页符号,来达到呈现第一个Table格式之后,就马上换页

,如此一来第二个Table的明细格式资料自然而然的就呈现在第二页之后了,并且在第一个Table里并未设定每页

显示,因此第一个Table的格式并不会重覆于第二页之后的页面上


(4)至此差不多达成需求了,最后一个小问题是最后一页要多加呈现总计及二个签名栏位,这个部份利用Group分组来达成

,在第二个Table里用Group分组方式安插每18笔资料换行,并设定Group Footer,利用Group Footer编排最后一笔资料后,

要多加呈现的内容

 

分页计算式:=Int((RowNumber(Nothing)-1)/18),并勾选Page break at end


利用Group Footer建立最后一笔资料要呈现的内容


接着设定只需最后一笔资料后再呈现Group Footer,其余页面不呈现Group Footer

利用Visibility / Hidden 设定运算式:=iif((RowNumber(nothing) / Count(Fields!empname.Value, "xxxxx")) =1 ,false,true)

xxxx:Your DataSet Name


(5)在程式码里,由于使用到的二个主要Table的资料来源不同,因此利用RDLC可接受多个DataTable的特性,直接DataSources.Add给予二个DataTable资料即可


透过这样的方式,即达成此报表需求,若您有更好的方式也欢迎不吝告知啰

 

备注:

原本Footer的部份是直接使用第二个Table的Footer来做,不过Footer的部份却跑到另一个新页面,此问题后来在MSDN讨论里看到解决方式

,相关连结:RDLC Table页尾一问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值