s-s-rS报表中服务器端分页的逻辑是啥
Posted
技术标签:
【中文标题】s-s-rS报表中服务器端分页的逻辑是啥【英文标题】:What is the logic of server side pagination in s-s-rS reportss-s-rS报表中服务器端分页的逻辑是什么 【发布时间】:2017-08-10 05:24:04 【问题描述】:在处理 s-s-rS 报告 (.rdl) 时,我需要在报告中进行分页。通常对于作为 asp.net 开发人员的分页,我在我的过程中添加了一些带有页数和行逻辑的语句。
但由于我的 s-s-rS 报告也使用存储过程,我是否必须在这里做同样的事情?但是我怎么能处理这些事件呢?通过事件,我的意思是说“下一页”“后页”等。s-s-rS 是否有任何内置功能可以处理分页。我说的是服务器端的分页,因为我的报告可能很大,而且我正在使用过程一次选择所有记录。可能如下:
Create procedure myproc
@year int,
@docid varchar(200)
Begin
Declare @commandtext nvarchar(max)
set @commandtext = 'select docid, year, type,
sum(case when statusid = 231 then 1 else 0 end) as granted,
sum(case when statusid = 232 then 1 else 0 end) as revoked,
sum(case when statusid = 235 then 1 else 0 end) as deleted,
sum(case when statusid = 236 then 1 else 0 end) as others
from table1 where 1=1'
if (@year <> 0 and @year is not null)
set @commandtext = @commandtext + 'and year=''' + CONVERT(varchar(10),@year) + ''''
if(@docid is not null and @docid <>'')
set @commandText = @commandtext + 'and documents in (' + @docid + ')'
set @commandText = @commandtext + 'group by docid, year, type '
EXEC (@commandText);
End
【问题讨论】:
【参考方案1】:分页报表在 s-s-rS 中是标准的,您无需为报表执行任何特殊操作即可拥有页面,请参阅下面有关分页报表的文章。
https://docs.microsoft.com/en-us/sql/reporting-services/report-design/pagination-in-reporting-services-report-builder-and-s-s-rs
【讨论】:
以上是关于s-s-rS报表中服务器端分页的逻辑是啥的主要内容,如果未能解决你的问题,请参考以下文章