J'ai construit un rapport à l'aide du Générateur de rapports version 3.0 (qui utilise SQL Server 2008 R2). Maintenant, je souhaite maintenant combien d'enregistrements sont extraits de la base de données dans le rapport?
Ceci est possible soit par la fonction de comptage dans SSRS, soit en utilisant la fonction RANK/ROW_NUMBER dans la requête SQL et en affectant ce champ au rapport (RANK/ROW_NUMBER nous attribuerait un rang pour chaque ligne et la navigation à la dernière page du rapport m'aiderait à obtenir le nombre total de lignes).
J'ai essayé de compter la fonction mais cela compte sur certains champs du rapport. Par exemple = Count(Field!FieldName.value, "DataSetName")
Problème dans cette approche: "FieldName" n’est pas unique dans le rapport et les comptes sont donc répétitifs.
Seconde option: ajouté Rank/Row_Number, mais ils utilisent également le même type de nom de champ et par conséquent, les comptages sont dupliqués.
Problème principal: il n'y a pas de champ dans ma requête qui soit unique (et donc j'ai essayé ROW_NUMBER ())
Comment trouver le nombre total de lignes ou le rang (pour chaque ligne) dans SSRS 2008?
Utilisez la fonction CountRows
. Par exemple
=CountRows("MyDataset")
vous donnera le nombre de lignes dans MyDataSet.
Dans les propriétés du contrôle Tablix, il existe un nom de propriété appelé NoRowsMessage mettez votre message ici si aucune ligne n'est renvoyée.
J'ai trouvé une solution de contournement pour cela. Commencez par créer une colonne de données avec la valeur toujours définie sur 1. Cela fournira une valeur de un pour chaque ligne de données.
Colonne de requête
, 1 AS Unit
Utilisez la fonction "RunningValue" dans votre rapport, comme indiqué ci-dessous.
=RunningValue(Fields!Unit.Value,Sum,"DataSet")
Cela fonctionnera également comme une "somme courante" si c'est quelque chose que vous recherchez.