Articles Tagués ‘Reporting Service’

Utilisation des onglets Excel dans un rapport SSRS

2 octobre 2011

Le tip du week-end, qui traine depuis quelques semaines déjà dans mes articles en brouillon.

Quand on génère de rapports sous le format Excel, on a souvent besoin de générer des classeurs, c’est à dire avoir des tableaux ou graphes sur différents onglets.

image

Pour arriver à ce résultat, il va falloir jouer avec 2 propriétés des éléments de votre rapport :

  • Page Break (ie. les sauts de page)
  • Page Name

A chaque “page” correspondra un onglet et la propriété PageName sera le nom de l’onglet.

image

Sur votre tableau / graphe / rectangle, mettez juste un saut de page à la fin (ou au début du suivant). Vous pouvez passer par la fenêtre de configuration.

La propriété PageName est à mettre sur l’élément de la page correspondante et évidemment, vous pouvez utiliser une expression pour rendre cela dynamique (avec le nom d’un groupe par exemple).
A noter qu’elle n’est accessible que par le panneau des propriétés, il n’y a pas d’assistant.

 

Note : n’hésitez pas à utiliser des Rectangle pour mieux maitriser votre mise en page.

Numéro de semaine – Norme ISO

30 décembre 2009

Il y a plusieurs façons de calculer le N° de semaine. J’y ai déjà été confronté il y a quelques années.

Il y a une norme ISO qui est notamment utilisée par les calendriers papier (http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines).

On peut avoir ce comportement dans Outlook ; il faut le configurer ici :

Calendar Properties
clip_image002

Le problème se pose quand on doit l’utiliser dans du code. J’ai notamment eu le cas dans un rapport Reporting Services.

J’utilise l’expression suivante :

DatePart(“ww”, Fields!MaDate.Value)

Or, cette instruction ne se base pas sur la norme ISO mais démarre au 1er janvier.

En T-SQL, on peut avoir le bon calcul en changeant la constante :

SELECT DATEPART(ISOWK, '2010-01-04')

Mais cette constante n’existe pas dans le moteur d’expression de Reporting Services…

Donc il vous faudra vous baser sur un bout de code embarqué.

Et hop, une remontée de plus sur Connect.

UPDATE  :

La fonction DatePart() a une surcharge qui prend 4 paramètres dont le dernier sert à définir la première semaine de l’année et donc avoir un comptage qui respecte la norme ISO 8601.

=Datepart(DateInterval.WeekOfYear, Fields!Date.Value, FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)

J’ai testé avec avec Report Builder 3.0 // SQL Server 2008 R2


Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 203 followers