Précédent   Forum des professionnels en informatique > Dotnet > Général Dotnet > Développement Office System > InfoPath
InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 14h30   #1
Membre éprouvé
 
Homme
Formateur en informatique
Inscription : mai 2007
Messages : 507
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique

Informations forums :
Inscription : mai 2007
Messages : 507
Points : 492
Points : 492
Par défaut [Mini-tuto] Attacher une image et l’afficher dans le formulaire, en mode IFS

Concerne : Infopath Forms Services (Infopath 2010 + Sharepoint Entreprise 2010).

Problématique : le contrôle image en mode navigateur impose d’utiliser une image déjà stockée ailleurs, dont on fournit l’URL (soit saisie par l’utilisateur, soit calculée).
Je veux retrouver en IFS la facilité des images embarquées (disponible en client Infopath Filler), pour que l’utilisateur clique sur un bouton pour charger l’image de son choix.

Exemples d’utilisation :
  • Un trombinoscope où l’utilisateur place lui-même sa photo
  • Une gestion des factures fournisseurs où il est nécessaire de visualiser la facture scannée pour approuver son paiement…


Etape 1 : Utiliser le contrôle Pièce jointe de Sharepoint
Modifier l’étiquette pour indiquer qu’on veut joindre une image (ex. « Votre photo: » )

Etape 2 : Créer un champ, de type image, et l’insérer dans un contrôle qui affichera la pièce jointe :
- Le mettre en lecture seule
- Dans la valeur par défaut (recalculée), utiliser l’assistant pour sélectionner le champ PieceJointe

Etape 3 : Débrancher la recherche de l’image tant qu’elle n’est pas enregistrée
En effet ce n’est qu’après que l’élément est enregistré que la pièce jointe sera enregistrée de son côté et donc que son URL (commençant par l’adresse de du site) sera exploitable ; tant qu’on est en création, le champ PièceJointe ne contient qu’une info provisoire (le nom du fichier, sans le chemin http://...) que le contrôle image ne peut pas exploiter, ce qui plante l’enregistrement.
Il faut donc tester si la PJ est enregistrée… voici une méthode.

Modifier la valeur par défaut du champ image comme suit :
Code :
sous-chaîne-après(concat(commence-par(Pièces jointes; "http"); Pièces jointes); "true")
ou en mode xpath
Code :
substring-after(concat(starts-with(../my:Attachments, "http"), ../my:Attachments), "true")
Explication :
  • Si Piècesjointes commence par http, la valeur sera celle de PiecesJointes
  • Sinon, elle sera vide.
Comme xpath n’a pas de fonction SI, je concatène la valeur à tester derrière le résultat du test ;
- ce résultat renvoie true ou false
- J’extrait de la chaine concaténée la souschaine qui suit le texte true,
- j’obtiens donc soit mon info, soit vide, selon que true est présent ou pas.

C'était une petite contribution histoire de donner des idées. Bonnes recherches à tous.
__________________
Jean-François Fustec - Consultant Formateur - Sharepoint Infopath Lotus
jff42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h56.


 
 
 
 
Partenaires

Hébergement Web