2009-07-28 7 views
2

Utilisation de WSS 3.0 J'ai récemment découvert comment agréger les annonces de plusieurs sous-sites Sharepoint afin qu'elles puissent être affichées sur le site de niveau supérieur (Voir: Sharepoint - How to agregate Announcements from sub-sites onto main site).Sharepoint - Comment retourner l'annonce la plus récente?

Ce que je dois faire maintenant est d'afficher seulement l'annonce la plus récente de chacun des sous-sites - plutôt comme le SELECT TOP 1 FROM que vous pourriez avoir en SQL. Donc, bien que chacun des sous-sites puisse avoir plusieurs Annonces, je veux seulement afficher la plus récente de chacune d'entre elles. J'ai supposé que cela allait être facile à vivre - cela semble évident, mais je ne trouve aucune référence dans les documents que j'ai. Donc, si quelqu'un sait comment faire, ou peut me diriger dans la bonne direction, ce serait génial.

Merci.

Répondre

3

Ceci n'est pas possible sans code personnalisé (que ce soit XSL ou C#). Vous pouvez effectuer un regroupement par WebId lors de l'utilisation de SPSiteDataQuery (COntextQueryWebPart) et CAML, mais vous ne pouvez pas effectuer de regroupement à l'intérieur du regroupement. Vous pouvez essayer de faire chaque site séparément et définissez la RowLimit de requête CAML à 1 et OrderBy à créé, en utilisant ASCENDING = « Faux »

SO la requête ressemblerait à quelque chose comme ceci:

<View> 
    <ViewFields> 
    .... 
    </ViewFields> 
    <Query> 
    <Where> 
     .... 
    </Where> 
    <OrderBy> 
     <FieldRef Name='Created' Ascending='False' /> 
    </OrderBy> 
    </Query> 
    <RowLimit>1</RowLimit> 
</View> 
+0

@Colin Merci pour votre aide à ce sujet. Je peux voir que cela fait du sens de faire le RowLimit pour chaque sous-site avant la fusion (ou l'agrégation) mais je ne comprends pas où le code devrait aller pour cela - pouvez-vous conseiller? –

+0

Y a-t-il un nombre fixe de sous-sites? – Colin

+0

@Colin Oui, six sous-sites, et susceptibles de rester ainsi. –

Questions connexes