2017-08-10 5 views
0

Comme je travaille sur les rapports SSRS (.rdl), j'ai besoin de paginer dans les rapports. Habituellement, pour la pagination en tant que développeur asp.net, j'ajoute quelques instructions dans ma procédure avec la page num et la logique des lignes.Quelle est la logique de la pagination côté serveur dans les rapports SSRS?

Mais comme mon rapport SSRS utilise également une procédure de stockage, dois-je faire la même chose ici? Mais comment puis-je être capable de gérer les événements alors? Par événements, je veux dire "page suivante" "page arrière" etc. Y at-il une fonctionnalité intégrée pour SSRS qui peut gérer la pagination. Je parle de pagination côté serveur car mon rapport peut être énorme et je sélectionne tous les enregistrements en même temps en utilisant la procédure. pourrait être comme ci-dessous:

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 

Répondre