Forum utilisateurs fréquemment questions comme ceci:
> Salut,
>
> Veuillez me dire si il y a des possibilités pour créer une liste personnalisée avec
> type de Master et de détail (comme les factures) sans l'aide d'InfoPath.
>
SharePoint fournit certains sur les fonctionnalités de la boîte qui prennent en charge les types de besoins de l'entreprise comme ça.
En général, on relie deux listes ensemble en utilisant une colonne de recherche. Liste A contient les informations d'en-tête de facture et la liste B contient les détails de la facture.
Utiliser des listes supplémentaires pour maintenir les numéros de client, numéros de produit, etc..
Utiliser un composant WebPart requête de contenu (dans la mousse uniquement) et/ou une données Découvre le composant WebPart pour créer des affichages des listes fusionnées. SQL Server Reporting Services (SRS) est également disponible pour le côté rapports.
Cependant, Il existe certaines limitations importantes qu'il seront difficile d'utiliser les fonctionnalités d'out-of-the-box pures pour tout ce qui est même modérément complexe. Il s'agit:
- Taille de recherche connexe listes vs. « débrouillardise" le type de colonne lookup. Un type de colonne de recherche se présente sur l'interface utilisateur différemment selon que vous avez activé sélection multiple ou pas. Dans les deux cas, le contrôle de l'out-of-the-box affiche tous les éléments disponibles dans la liste source. Si la liste source a 1,000 articles, Cela va être un problème. Le contrôle de liste de choix ne pas paginer ces éléments. Au lieu de cela, Il tire tous dans le contrôle. Cela fait pour une interface utilisateur très délicate tant en termes de performances et de saisie de données.
- Recherches « traction arrière" une colonne d'informations. Vous pouvez tirez jamais plus d'une colonne d'informations dans la liste source. Par exemple, vous ne pouvez pas sélectionner un client « 12345" et afficher le nombre ainsi que les nom et adresse du client en même temps. La recherche ne montre que le client numéro et rien d'autre. Ceci en fait une interface utilisateur maladroit et difficile.
- Aucune communication intra-formulaire. J'ai écrit au sujet de cette espèce. Vous ne pouvez pas implémenter les listes déroulantes en cascade, conditionnellement activer/désactiver le champs, etc..
- Pas les suppressions en cascade ou intégrité référentielle intégrée. SharePoint, traite des listes personnalisées comme des entités indépendantes et ne vous permet pas de les relier les uns aux autres dans un sens traditionnel de ERD. Par exemple, SharePoint vous permet de créer deux listes personnalisées, « client" et « en-tête de facture ». Vous pouvez créer un en-tête de facture qui relie à un client dans la liste des clients. Puis, vous pouvez supprimer le client de la liste. Out of the box, Il n'y a aucun moyen d'éviter cela. Pour résoudre ce genre de problème, vous utiliseriez normalement des gestionnaires d'événements.
Il peut sembler sombre, mais je voudrais encore utiliser SharePoint comme point de départ pour la construction de ce genre de fonctionnalité. Bien qu'il existe des écarts entre ce que vous avez besoin dans une solution, SharePoint permet de combler ces lacunes à l'aide d'outils tels que:
- Les gestionnaires d'événements. Utilisez-les pour appliquer l'intégrité référentielle.
- Colonnes personnalisées: Créer des types de colonnes personnalisés et les utiliser en remplacement de la colonne de recherche par défaut. Ajouter la pagination, Buffering et fonctionnalités AJAX pour les rendre sensibles.
- BDC. Cette fonctionnalité uniquement MOSS nous permet de requête répertorie les autre SharePoint avec une interface utilisateur supérieure de la colonne de recherche habituel. BDC peut également tendre la main à une application de serveur back-end. BDC permet d'éviter la réplication. Plutôt que de la réplication des informations de la clientèle d'un back-end système ERP, Utilisez plutôt les BDC. Les fonctionnalités BDC fournissent une interface utilisateur agréable pour tirer ces informations directement du système ERP où elle appartient et évite les tracas de maintenir une solution de réplication.
BDC est une caractéristique de la mousse (non disponible dans WSS) et est difficile à configurer.
- Formulaire de web ASP.NET: Créer une complète activée AJAX qui utilise SharePoint objet modèle ou web services pour tirer parti des listes SharePoint tout en fournissant une interface utilisateur très sensible.
Cette dernière option peut se sentir comme vous êtes à partir de zéro, mais tenir compte du fait que la plate-forme SharePoint commence vous avec les fonctionnalités clées suivantes:
- Modèle de sécurité avec entretien.
- Système de menu entretien.
- « Maître table" (i.e. listes personnalisées) avec sécurité, entretien intégré et l'audit.
- Recherche.
- Outils d'intégration back-end (BDC).
Si vous démarrez un nouveau projet vide dans visual studio, vous avez beaucoup d'infrastructure et de plomberie à construire avant de vous approcher de ce qu'offre SharePoint.
Je crois que Microsoft a l'intention d'étendre SharePoint dans cette direction du développement d'applications. Il semble comme un prolongement naturel à la base de SharePoint existant. Application CRM de Microsoft fournit beaucoup d'extensibilité des types nécessaires pour soutenir le développement d'applications en-tête/détail. Bien que ces fonctionnalités soient dans CRM, la technologie est évidemment disponible pour l'équipe de développement SharePoint et j'espère qu'il fera son chemin dans le produit SharePoint en fin de 2008. Si quelqu'un possède une connaissance ou un aperçu de ce, Veuillez laisser un commentaire.
</fin>
Grand
Raghu, Je ne pense pas il n'y a aucun moyen facile de le faire. Je serait mettre l'accent sur la formation de vos utilisateurs quand à utiliser que l'un d'eux et peut-être leur donner un indice avec le nom du contenu de type lui-même. Je ne pense pas que vous pouvez vraiment nail un down, sur le plan technique.
C'est un peu un bricolage mais j'utilise un déroulant ASP.Net qui occulte la recherche liste déroulante »" généré par SharePoint. Je point la liste déroulante ASP.Net à une source de données basée sur la liste contenant l'élément de liste de choix, ce qui me permet d'utiliser le champ ID comme la valeur et la colonne de mon choix comme le texte d'affichage. Je ne lient pas la liste déroulante ASP.Net pour le champ liste de choix parce qu'il génère des erreurs côté serveur.
Le chargement de la page, j'utilise javascript pour assigner la valeur correcte à la liste déroulante ASP.Net, et puis attacher des événements onchange à cette liste déroulante pour assigner des valeurs nouvelles de la liste déroulante recherche de SharePoint correspondante. Je me cache en réalité la ligne contenant la liste déroulante de SharePoint.
Une dernière chose — en raison de la façon dont SharePoint rend Dingo recherche listes déroulantes lorsque le nombre d'éléments est passé 20 Utiliser objet wrapper personnalisé pour obtenir et définir la valeur de la liste déroulante. J'ai un blog, précisant que cette procédure:
http://www.idiotsyncrasies.com/2007/12/lookup-list-dropdowns-in-sharepoint.aspx
Cheers,
Michael
Vous pouvez créer un Type de contenu de l'en-tête de facture basée sur le Type de contenu de dossier et puis créer un autre Type de contenu de facture et ajouter à une liste SharePoint. En effet, cela crée une relation Parent/enfant qui vous permettra de créer de multiples factures basés sur le Type de contenu de facture qui vivent sous le Type d'en-tête contenu facture qui vous donne et une relation immédiate entre les deux points et si l'en-tête de facture, élément de liste est de supprimer tous les éléments de facture enfant dans ce dossier sera supprimé. Vous pouvez également spécifier qu'un Type de contenu est seulement disponible dans un certain dossier. Cette approche est similaire au fonctionnement de la bibliothèque de discussion et est très utile pour ce type de relation entre les éléments. Code et les gestionnaires d'événements aidera avec quelques autres limitations mais globalement une solution facile rapide.