Dans une liste SharePoint, je veux une colonne de numéro automatique qui, à mesure que j'ajoute à la liste, est incrémentée. Comment puis-je m'y prendre au mieux?
Les listes de points de partage ont automatiquement une colonne avec "ID" qui incrémente automatiquement. Il vous suffit de sélectionner cette colonne dans l'écran "Modifier la vue" pour la visualiser.
Vous ne pouvez pas ajouter un nouvel ID généré automatiquement à une liste SharePoint, mais il y en a déjà un! Si vous modifiez la vue "Tous les éléments", vous verrez une liste de colonnes dont l'option d'affichage n'est pas cochée.
Il y a pas mal de ces colonnes qui existent mais qui ne sont jamais affichées, comme "Créé par" et "Créé". Ces champs sont utilisés dans SharePoint, mais ils ne sont pas affichés par défaut pour ne pas encombrer l'affichage. Vous ne pouvez pas modifier ces champs, mais vous pouvez les afficher pour l'utilisateur. si vous cochez la case "Affichage" à côté du champ ID, vous obtiendrez un champ ID unique et généré automatiquement affiché dans votre liste.
Découvrez: ID unique dans la liste SharePoint
Si vous souhaitez contrôler la mise en forme de l'identifiant unique, vous pouvez créer votre propre <FieldType>
Dans SharePoint . MSDN a également un Visual How-To . Cela signifie essentiellement que vous créez une colonne personnalisée.
WSS définit le type de champ Compteur (qui est ce que la colonne ID ci-dessus utilise). Je n'ai jamais eu besoin de le réutiliser ou de l'étendre, mais cela devrait être possible.
Une solution peut exister sans créer un <FieldType>
Personnalisé. Par exemple: si vous vouliez des ID uniques comme CUST1, CUST2, ... il pourrait être possible de créer une colonne calculée et d'utiliser la valeur de la colonne ID dans votre formule (="CUST" & [ID]
). Je n'ai pas essayé cela, mais cela devrait fonctionner :)
J'ai eu ce problème avec une liste personnalisée et bien qu'il ne soit pas possible d'utiliser la colonne ID générée automatiquement pour créer une colonne calculée, il est possible d'utiliser un flux de travail pour faire le gros du travail.
J'ai créé une nouvelle variable de flux de travail de type Number et l'ai définie comme la valeur de la colonne ID dans l'élément actuel. Ensuite, il s'agit simplement de calculer la valeur de la colonne personnalisée et de la définir - dans mon cas, j'avais juste besoin de la numérotation pour commencer à 100 000.
Comme indiqué, tous les objets dans sharepoint contiennent une sorte d'identifiant unique (souvent un compteur basé sur des nombres entiers pour les éléments de liste et des GUID pour les listes).
Cela dit, il existe également une fonctionnalité disponible sur http://www.codeplex.com/features appelée "Politique de colonne unique", conçue pour ajouter une autre colonne avec une valeur unique. Un résumé complet est disponible sur http://scothillier.spaces.live.com/blog/cns!8F5DEA8AEA9E6FBB!293.entry
Je ne suis donc pas sûr de pouvoir vraiment penser à pourquoi vous auriez en fait besoin d'un identifiant "collection de sites unique", alors peut-être pouvez-vous commenter et nous faire savoir ce qui essaie réellement d'être accompli ici. ..
Quoi qu'il en soit, tous les éléments ont une propriété UniqueID qui est un GUID si vous vous en avez vraiment besoin : http://msdn.Microsoft.com/en-us/library/Microsoft.sharepoint.splistitem.uniqueid.aspx
il est là par défaut. C'est le champ id.
Si vous voulez quelque chose au-delà de la colonne ID qui se trouve dans toutes les listes, vous devrez probablement recourir à un récepteur d'événements sur la liste qui "calcule" la valeur de votre identifiant unique ou en utilisant un type de champ personnalisé qui a la logique requise intégrée dans cela. Malheureusement, ces deux options nécessiteront l'écriture et le déploiement de code personnalisé sur le serveur et le déploiement d'assemblys sur le GAC, ce qui peut être mal vu dans les environnements où vous n'avez pas un contrôle total sur les serveurs.
Si vous n'avez pas besoin que l'identifiant unique s'affiche immédiatement, vous pouvez probablement le générer via un flux de travail (avec SharePoint Designer ou un flux de travail personnalisé WF intégré à Visual Studio).
Malheureusement, les colonnes calculées, qui semblent être une solution évidente, ne fonctionneront pas à cet effet car l'ID n'est pas encore attribué lors de la tentative de calcul. Si vous entrez après le fait et modifiez l'élément, le calcul peut atteindre ce que vous voulez, mais lors de la création initiale d'un nouvel élément, il ne sera pas calculé correctement.
Peetha a la meilleure idée, j'ai fait la même chose avec une liste personnalisée dans notre site SP. Utiliser un workflow pour incrémenter automatiquement est la meilleure façon, et ce n'est pas si difficile. sortie du site Web: http://splittingshares.wordpress.com/2008/04/11/auto-increment-a-number-in-a-new-list-item/
J'apprécie beaucoup la personne qui a posté cette solution, c'est très cool !!