Un moyen d'ajouter des données de lignes multiples dans une table extensible InfoPath?

StackOverflow https://stackoverflow.com/questions/1610373

  •  05-07-2019
  •  | 
  •  

Question

Mes utilisateurs utilisent Excel pour créer des listes ad-hoc des bâtiments que nous possédons. Je construis un formulaire InfoPath pour gérer les contrats sur ces bâtiments. Je cherche un moyen de permettre à mes utilisateurs de spécifier les bâtiments dont ils ont besoin dans Excel et de coller cette liste dans le contrôle Table répétitive du formulaire InfoPath.

La table a plusieurs champs. les utilisateurs sélectionnaient la colonne Building ID de leur feuille de calcul, la collaient dans le champ Building ID de la table extensible, puis le formulaire InfoPath recherchait les informations de construction restantes dans la source de données liée au contrôle, en utilisant l'ID de bâtiment comme clé.

La partie de recherche de la table extensible fonctionne: l’utilisateur peut entrer (en tapant ou en collant à partir d’Excel) un seul ID de bâtiment, appuyer sur la touche de tabulation, et la table recherche le reste des informations. Ensuite, ils peuvent insérer une nouvelle ligne et entrer le deuxième ID du bâtiment, faire mousser, rincer, répéter. C'est bien pour une poignée d'immeubles, mais pas pour des dizaines ou des centaines. Je cherche donc un moyen de les laisser coller dans une liste et de compléter le tableau à partir de là.

S'ils ne peuvent pas coller directement dans un tableau répétitif, pourrais-je les faire coller dans un contrôle de texte multiligne, puis les analyser avec une expression XPath? À quoi ressemblerait cette XPath? Une dernière limite: pas de code C / C ni VB code-behind - nous avons décidé pour le moment que la logistique de déploiement de formulaires avec code-behind est trop lourde pour le projet actuel.

Toute aide appréciée ...

Était-ce utile?

La solution

Le seul problème que je vois surgir (principalement en raison du fait que cette solution ne peut pas impliquer code-behind) est le fait qu’aucune règle Infopath ne peut être utilisée pour ajouter de manière dynamique des nœuds supplémentaires à un groupe récurrent (ce que le système la table extensible est obligatoire pour.)

La seule façon de créer des enregistrements supplémentaires dans une table extensible consiste pour l'utilisateur à appuyer manuellement sur la touche " Insérer une ligne supplémentaire " onglet au bas du tableau.

Je recommanderais fortement d'utiliser codebehind, afin qu'un utilisateur puisse coller ses données Excel délimitées par des tabulations à partir du presse-papiers dans une zone; faites-le analyser par les serveurs; et utilisez ces données avec une routine pour accéder à MainDataSource du formulaire et ajoutez les lignes supplémentaires de cette manière.

Autres conseils

Si vous extrayez les fichiers sources d’infopath, l’un des documents sera le fichier template.xml. cela contiendra les données pour votre formulaire d'infopathe. Utilisez une macro Excel pour ouvrir le modèle en tant que document XML et ajoutez les données de la feuille de calcul Excel. vous pouvez ensuite permettre à l'utilisateur d'ouvrir le fichier eux-mêmes ou de l'ouvrir pour eux. Juste un moyen de se déplacer sans code-behind.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top