Auto-Incrémentation dans le Formulaire InfoPath 2010
J'ai un formulaire dans lequel je joins un flux de travail pour. La forme a un certain nombre qui sera généré automatiquement. Par exemple, le premier numéro sera 1, la prochaine fois que le formulaire est ouvert, le nombre devrait être de 2, et ainsi de suite. La question que je vais avoir est le suivant: la Valeur par Défaut sous la Zone de Texte Propriétés que j'ai de la Valeur: nombre(mynumber QuoteNumber) +1. Lorsque le formulaire est généré à la première et seul le nombre est de 2 le nombre commence à 2 et n'augmente jamais. Quelqu'un peut-il m'aider ou expliquer ce que j'ai fait de mal? Je Vous Remercie. Je ne suis pas à l'aide de visual studio.
- Je vais re-tagger ce - que vous pourriez être en utilisant d'autres technologies, mais que la question qui est écrit (et nécessaire pour une réponse) vous avez seulement besoin d'une balise.
Vous devez vous connecter pour publier un commentaire.
Vous ne faites rien de mal vous avez juste à changer la façon dont vous pensez à propos de "formes" un peu. Rappelez-vous un formulaire est juste comme un modèle de document word. Supposons que vous enregistrez un document word sur votre disque dur avec un espace vide à remplir votre nom. Plus tard, vous ouvrez le modèle, tapez votre nom, et enregistrer une copie V1.doc. Lorsque vous revenez en arrière et ouvrez de nouveau le modèle - votre nom n'est pas là parce qu'il a été enregistré dans V1.doc. Chaque fois que vous ouvrez le modèle de commencer à partir de zéro.
Des formulaires Infopath de la conception et que l'utilisateur remplit sont des modèles (.fichiers xsn). Lorsque l'utilisateur remplit et l'enregistre ils sont vraiment à l'enregistrement d'une copie qui n'est que de données (.fichiers xml). L' .xsn modèle ne change pas lorsque les utilisateurs interagissent avec elle.
Donc, pour répondre à votre question, il n'existe aucun moyen directement dans InfoPath à proprement garder la trace d'une auto-incrémentation de l'ID. Vous aurez besoin de puiser dans un peu de code (webservice, sharepoint, etc) pour ce faire. Vous pourriez aussi envisager de faire de l'ID d'un GUID (infopath ne l'appui), mais il ne sera pas auto incrémentation et il ne regarde pas "propre" si elle doit être affiché ou utilisé par des personnes réelles.
Rachel: j'ai combattu avec ce problème depuis InfoPath 2007. Voici comment je le fais.
Puisque vous dites que vous êtes, fixer un flux de travail, je suppose que vous êtes à l'aide de l'SharePoint.
1 - créez votre bibliothèque de formulaires dans SharePoint
2 - utiliser InfoPath pour la conception du formulaire. Lorsque vous publiez le formulaire à la SP, assurez-vous de promouvoir AU MOINS le champ ID vous voulez auto-inc. (J'ai l'habitude de promouvoir tous les champs dans les formulaires de mon cas, parce que j'aime les utiliser comme des PS les listes.)
3 - Dans la PS de, créer un nouveau formulaire et définissez manuellement l'ID de champ pour le numéro de départ pour votre forme de la série.
4 - retour à InfoPath designer et ouvrez votre modèle de formulaire.
5 - créer une nouvelle source de données pour recevoir des données à partir de votre SP de la bibliothèque de formulaires et de spécifier votre bibliothèque de formulaire en tant que source, et le champ ID comme un élément de données. Nom de la source de données à quelque chose comme “ID Lookup”.
6 - ouvrez les propriétés du champ que vous voulez auto-inc sur votre forme et, dans la zone valeur par défaut, sélectionner la fonction, puis choisissez la fonction MAX.
Et ajouter un “+1” après la fonction de l'incrément de 1.
Maintenant, double-cliquez dans le champ de la fonction Max. Vous verrez une boîte de dialogue indiquant vos champs de formulaire. Avis de la liste déroulante en haut de la boîte de dialogue, vous pouvez choisir la source de données (notez que j'ai nommé la mine “des Contrats de vente” dans cet exemple). Si vous sélectionnez la source de données que vous avez créé à l'étape 5, vous verrez une boîte de dialogue vous montrant un couple de données branches.
Élargir le "champs de données", branche jusqu'à ce que vous consultez sur le champ que vous voulez auto-inc. Cliquez sur ce.
Votre formule de dialogue devrait ressembler à quelque chose comme:
max(ID_X0020) + 1
Avec votre nom de champ au lieu de la " ID " de la fonction Max – la fonction retournera la valeur Maximale du champ DANS LA BIBLIOTHÈQUE de formulaires, de plus de 1.
Enregistrer le formulaire dans InfoPath et essayez de l'afficher. Vous obtiendrez probablement un avertissement de sécurité – votre formulaire InfoPath est saisissant des données à partir de votre bibliothèque SharePoint à la volée. Vous pourriez même être invité à entrer votre mot de passe (j'ai l'habitude de faire). Lorsque le nouveau formulaire vierge s'affiche dans InfoPath aperçu, vous devriez vous voir ID champ rempli avec une valeur plus grande que le nombre dans le champ de votre SP de la bibliothèque.
Il y a un énorme Gothca avec cette méthode, si les utilisateurs de re-ouvrir un formulaire pour l'éditer, la formule sera probablement essayer de remplacer le numéro d'identification. Si vos utilisateurs à ne pas modifier les formulaires après ils sont soumis, le ce va travailler pour vous.
Espérons que cela a du sens.