IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InfoPath .NET Discussion :

repérage de la position dans un groupe extensible


Sujet :

InfoPath .NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2007
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 724
    Points : 787
    Points
    787
    Par défaut repérage de la position dans un groupe extensible
    Bonjour
    J'ai deux niveaux de sections extensibles imbriquées.
    J'ai des listes déroulantes dont je veux récupérer des données annexes :

    exemple : on sélectionne le client dans la liste et on stocke le mel du contact dans un deuxième champ.

    Dans une liste classique "moderne" ça se fait bien par la valeur par défaut recalculée, en filtrant la source secondaire sur le critère codeclient-connexionprincipale = codeclient-sourcesecondaire.

    En iph2003 je récupère toujours l'info du premier codeclient choisi (rappel : j'ai des clients multiples).
    Je cherche un formule en xpath qui m'extraie le codeclient de la section active.J'ai cherché du côté de
    codeclient[position()=count(../preceding-sibling::*)+1]
    pas d'erreur détectée par la vérif de syntaxe, mais ça ne remonte rien.

    Merci d'avance
    Jean-François Fustec - Consultant Formateur - SharePoint - Office 365 - Infopath Lotus

  2. #2
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    De mémoire il existe une fonction current() qu'il est possible d'utiliser sur sur un tableau extensible.

    Je rallumes une VM avec InfoPath 2003 dans la journée pour vous confirmer tout cela.

    Cordialement
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour je viens de réaliser un test simple.

    A priori, il suffit d'aller chercher le champ en remontant depuis le tableau extensible de plus bas niveau. Pour savoir comment récupérer la valeur, suivez les étapes suivantes:
    • Se placer dans le tableau extensible de pmlus bas niveau,
    • Ajouter une zone d'expression,
    • Utiliser le bouton "fx" pour récupérer le champ codeclient,
    • Tester le formulaire.
    Vous verrez que cette zone d'expression récupère correctement le code client de plus haut niveau.

    Il faudra ensuite utiliser l'expression visible en cliquant "Modifier une expression XPath (avancé)" afin que vous sachiez l'expression XPath à utiliser.

    En espérant que cela vous a aidé.
    Cordialement.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  4. #4
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2007
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 724
    Points : 787
    Points
    787
    Par défaut
    Merci.
    La deuxième piste fonctionne pour récupérer l'info brute (le code saisi dans la liste déroulante), mais pas pour utiliser cette info dans le filtre...

    C'est le current() qui marche.
    Exemple : récupérer dans la connexion Liste-secondaire le champ Nom correspondant à l'élément dont l'IdSociétéSecondaire correspond à ce qui est sélectionné dans la liste déroulante servant à saisir le champ IdSocietePrincipale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xdXDocument:GetDOM("liste-secondaire")/dataroot/liste-11/Nom[../IdSociétéSecondaire = current()/my:IdSocietePrincipale]
    Procédure
    • construire d'abord avec l'assistant
    • reprendre en modif le filtre,
    • sur le nom du champ clé (IdSocietePrincipale, dans mon exemple), remplacer par une formule
    • passer en mode xpath
    • selectionner tout le chemin getdom()... jusqu'au noeud parent du champ à exploiter
    • remplacer en tapant la fonction current()


    Ouf !
    amis débutants, courage
    Et merci à Rémi d'être toujours là.
    Jean-François Fustec - Consultant Formateur - SharePoint - Office 365 - Infopath Lotus

Discussions similaires

  1. Regrouper des champs dans un GROUP BY
    Par kaiserazo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/07/2005, 08h43
  2. Réponses: 5
    Dernier message: 20/02/2005, 01h14
  3. GROUP_ID dans requete GROUP BY
    Par quemener dans le forum Oracle
    Réponses: 11
    Dernier message: 25/10/2004, 10h59
  4. [Win32] Position dans un fichier
    Par vecchio dans le forum Windows
    Réponses: 7
    Dernier message: 22/03/2004, 16h47
  5. [VB6] Sauvegarder la position dans un Recordset
    Par inotna2099 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 29/04/2003, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo