Liste à puces - InfoPath Dev
in

InfoPath Dev

Liste à puces

Last post 05-25-2007 07:25 AM by Fils_BE. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 05-25-2007 05:23 AM

    Liste à puces

    bonjour;
    je suis débutant en Infopath et j'aimerais créer une liste d'élement à partir de 2 champs textes.
    L'action suivante est associé a un clic sur un bouton :

    var text1 = XDocument.DOM.selectSingleNode("//my:champTexte1").text ;
    var text2 = XDocument.DOM.selectSingleNode("//my:champTexte2").text ;
    XDocument.DOM.selectSingleNode("//my:Liste").text = text1 +" - "+ text2;

    Dans mon formulaire le champs 'Liste' est une liste à puces.
    Une fois que la premiere ligne de la liste a été renseigné, j'aimerais que sa passe automatiquement à la seconde, ainsi de suite.

    Est-ce comme ça qu'il faut s'y prendre ?
    Existe-t-il une opération du type .add ou .newElement pour ajouter un élément a la liste ?

    Merci d'avance pour vos réponses.

    Infopath 2003 SP2, Langage: Jscript
  • 05-25-2007 05:43 AM In reply to

    Salut et bienvenue,

     Oui il y a plusieurs moyens de le faire mais je vais te donner le plus simple et en passant ce que tu essaye de faire la et bizzare pour deux raison:

     // séléctionne tous les éléments de ce nom donc faire une selectsinglenode c'est pas logique...

     et après tu séléctionne un noeud et tu fais un concat des 2 valeurs séparé par un tiret..

    Bref voici la méthode de Infopath:

    XDocument.View.ExecuteAction("xCollection::insert", "Position_12");

    Position_12 devra être remplacé par la valeur que tu trouvera dans les propriétés de ta liste dans le dernier onglet.

    ++ 

    Thierry

    XDocument.View.ExecuteAction("xCollection::insert", "Position_12");

    Position_12 devra être remplacé par la valeur que tu trouvera dans les propriétés de ta liste dans le dernier onglet.

    ++ 

    Thierry

    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 05-25-2007 05:47 AM In reply to

    Merci pour ta réponse je teste ça dessuite,

    Je n'ai, pour l'instant, pas trouver de doc officielle sur Infopath, donc pour l'instant, j'essai de comprendre et coder à l'aide d'exemple, ce qui explique les petites choses bizarres que tu vois =)

    Infopath 2003 SP2, Langage: Jscript
  • 05-25-2007 06:25 AM In reply to

    me revoila, je suis parti un peu vite et il y a des choses que je n'ai pas compris:

    j'ai jeté un coup d'oeil sur l'aide Infopath concernant XDocument.View.ExecuteAction et je trouve que cette fonction execute une action (xCollection::insert dans notre cas) sur une vue. Personnellement je n'ai pas créé de vue.

    Il est possible de créer un contexte de vue à partir de la fonction SelectNodes (donc il me faut garder mes 2 premieres lignes?)

    autre chose, je n'arrive pas a mettre la main sur le terme auquel se rapporte ton 'position_12'

    Donc en fait ce qu'il me faut faire c'est :

    1) créer un contexte de vue avec la fonction SelectNodes

    2) exécuter la fonction xCollection::insert sur mon élément 'liste à puce'

     

    Merci.

     

     

    Infopath 2003 SP2, Langage: Jscript
  • 05-25-2007 07:18 AM In reply to

    Ok c'étais pas méchant les remarques justes pour que tu comprennes..

     il me semble que tu n'y connait vraiment pas grand chose à infopath...

    Le meilleur conseil que je peux te donner est d'acheter ce livre:

    http://www.amazon.fr/Solutions-Infopath-lentreprise-Xavier-Guesnu/dp/2100488953/ref=sr_1_27/403-7895398-5123658?ie=UTF8&s=books&qid=1180100659&sr=8-27

    Une vue tu en as forcément une c'est la page blanche que tu vois dnas infopath et tu peux en rajouter d'autre si tu veux faire des fonctionnalités supplémentaire a ton form et que tu n'aimerais pas le voir dans ton "formulaire principale" (en réalité vue principale). Ca se gère dans Infopath quand tu ouvre le form clique sur vue dans le taskpane (volet à droite de ton form).

    Désolé ce que je t'ai indiqué avant c'est pour les section ou tableau répétitif et ca ne s'applique pas au liste... Pour une liste c'est plus compliquer il faut créer ton élément dans le code et faire un appendchild ensuite. Voici un code en C# car moi je ne connais pas bien BLOCKED SCRIPT

    IXMLDOMDocument XMLItem = (IXMLDOMDocument)thisXDocument.CreateDOM();
    XMLItem.async = false;
    XMLItem.loadXML("<Item/>");

    IXMLDOMDocument XMLItem = (IXMLDOMDocument)thisXDocument.CreateDOM();
    XMLItem.async = false;
    XMLItem.loadXML("<Item/>");

    IXMLDOMDocument XMLItem = (IXMLDOMDocument)thisXDocument.CreateDOM();
    XMLItem.async = false;
    XMLItem.loadXML("<Item/>");

     thisXDocument.DOM.selectSingleNode("/Root").appendChild(XMLItem.documentElement);

     /Root représente le chemin ou se trouve ta liste a puce Attention tu doit atteindre le parent de ta liste (dasn cette exemple on considère que Root est l'élément qui contient taliste)

    <Item/> correspond au nom que tu as donnez a ta liste.

    ce qui fait que mon xml est structuré comme ceci (imaginons qu'on aie déjà deux éléments a ta liste a puce):

    <Root>
    <Item>Première puce</Item>
    <Item>Seconde puce</Item>
    </Root>

     Je vais regarder si je trouverais pas l'équivalent en Jscript mais comme ca au moins comme dirait l'autre: "T'as un os à ronger".

     ++

    Thierry

    P.S. je sais pas pourquoi mon code se double et je n'arrive pas a l'enlever alors n'es tient pas compte on ne fabrique XMLItem qu'une fois.

    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 05-25-2007 07:25 AM In reply to

    Merci pour ta réponse et ne t'inquietes pas, je n'ai pas mal pris tes remarques =)
    Infopath 2003 SP2, Langage: Jscript
Page 1 of 1 (6 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.