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报表中服务器端分页的逻辑是啥的主要内容,如果未能解决你的问题,请参考以下文章

引导表服务器端分页的自定义参数

使用 DataTables 插件的服务器端分页

带有后端分页的 jQuery 数据表

AG-Grid 服务器端分页问题

kendo ui grid 完成服务器端分页和设置总数

EasyUI Pagination 分页的两种做法