Selectionner un champs d'un tableau extensible - InfoPath Dev
in

InfoPath Dev

Selectionner un champs d'un tableau extensible

Last post 01-22-2007 07:50 AM by Coita Thierry. 13 replies.
Page 1 of 1 (14 items)
Sort Posts: Previous Next
  • 01-08-2007 07:26 AM

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Selectionner un champs d'un tableau extensible

    Bonjour,

    Je rencontre un pb quand je souhaite sélectionner un champ dans un tableau extensible qui est connecté à une base de données, il me récupère toujours le premier du tableau même si je change de ligne.

    J#%92aurais besoin d#%92un peu d#%92aide !
    Merci

    bruno


  • 01-08-2007 08:09 AM In reply to

    Re: Selectionner un champs d'un tableau extensible

    Salut,

    Essaye déjà de nous décrire comment tu fais pour voir ce que tu fais de faux?

    ++

    Thierry
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 01-09-2007 02:13 AM In reply to

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    Bonjour,

    Mon formulaire se décompose en trois parties

    La première partie : me permet de faire une recherche sur un utilisateur ou autre
    Elle est constituée de liste déroulante et un bouton qui exécute la requête.

    La deuxième partie : m#%92affiche le nombre de tâche effectué par l#%92utilisateur
    Elle est constituée d#%92un tableau extensible (maître) intégré dans une zone de défilement.

    La troisième partie : m#%92affiche le détail de la ligne sélectionné dans le tableau extensible.
    Elle est constituée section extensible (détail).

    Donc le souci que je rencontre, est lorsque je sélectionne une ligne dans le tableau extensible (maître)c'est toujours la première ligne qui est prise en compte, et en faite je souhaite récupérer l#%92id de la ligne sélectionné.

    Le code que j#%92utilise est le suivant qui me permet de passer un paramètre.

    [InfoPathEventHandler(MatchPath="CTRL162", EventType=InfoPathEventType.OnClick)]
    public void CTRL162_OnClick(DocActionEvent e)
    {
    XDocument newForm = thisApplication.XDocuments.NewFromSolution("file:///\\P:\\Document\\Bruno\\CasperInfopath\\Jalons et couts\\bin\\Debug\\Jalons et couts.xsn");

    je sais qu'il me faut une boucle mais je ne sais pas comment l'implementer !!
    IXMLDOMNode source = thisXDocument.DOM.selectSingleNode("/dfs:myFields/dfs:dataFields/d:Projet/@CodePrj");


    IXMLDOMNode dest = newForm.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/q:Projet/@CodePrj");
    dest.text = source.text;
    }

    merci pour votre aide
    Bruno
  • 01-09-2007 02:46 AM In reply to

    Re: Selectionner un champs d'un tableau extensible

    Ok je comprend beaucoup mieux maintenant.

    Si ton bouton est sur la ligne ou tu clique e (Docactionevent) contient ta ligne donc :
    e.Source.Selectsinglenode("@ID"); 

    devrait fonctionner. Mais si ton bouton se trouve a l'extérieur du tableau il faut que tu adapte cette méthode:

    http://www.infopathdev.com/howto/tutorials/default.aspx?i=f02e8631f1c342df9c49fe8103e10215

    Pour faire ce que tu veux. Pense que moins tu mettras dans nContextNode plus ca ira vite donc je te conseil de séléctionné que le ID.

    Pour faire une boucle :

    IXMLDOMNodeList Fkt = e.Source.parentNode.selectNodes("../../Funktion/Fkt");
    for (int i = 0; i < Fkt.length; i++)
    {
    string ID = Fkt.selectSingleNode("@Nr").text //Ca sert à rien

    }


    ++

    Thierry
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 01-16-2007 08:03 AM In reply to

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    salut Thierry,

    bon j'ai mis en application le source suivant en JScript :
    http://www.infopathdev.com/howto/tutorials/default.aspx?i=f02e8631f1c342df9c49fe8103e10215

    cela fonctionne très bien, j'ai donc repris cet exemple en la connectant à ma base de données et la ca ne fonctionne plus!
    voici le le message d'erreur :

    une erreur d'execution s'est produite
    Objet requis
    fichier script.js
    ligne 32


    Code :
    function XDocument::OnContextChange(eventObj)
    {
    if (eventObj.Type == "ContextNode")
    {
    var nContextNode = eventObj.Context;
    if ( nContextNode.parentNode.nodeName == "d:Projet");//ici ca va pas
    nCurrentRow = nContextNode;
    return;
    }
    }
    Si tu as une idée ?

    Bruno

  • 01-16-2007 10:43 PM In reply to

    Re: Selectionner un champs d'un tableau extensible

    T'as essayé de mettre sans le préfix de namespace?

    if ( nContextNode.parentNode.nodeName == "Projet");


    ++

    Thierry
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 01-17-2007 12:42 AM In reply to

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    je viens de le faire cela ne change rien !

    bruno
  • 01-17-2007 01:29 AM In reply to

    Re: Selectionner un champs d'un tableau extensible

    essaye de savoir ce qu'il y a dans nContextNode.parentNode.nodeName essaye de l'afficher avec xDocument.UI.Alert. Bref faut voir ce qui te renvoit un objet null.

    ++

    Thierry

    P.S. C'est pour ca que j'ai choisi .Net qu lieu des script tu peux débugger et surtout mieux gérer ton formulaire (par ex toujours voiur le contenu de ton xsn et de pouvoir éditer sans peine le xml et xsl qu'il contient).
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 01-17-2007 03:54 AM In reply to

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    je sais que .Net est plus intérresant mais la je rencontre des restrictions de domaine qui me bloque dans le developpement.

    Et effectivement ya un message d'erreur qui me dit:
    parentNode à la valeur null ou n'est pas un objet !

    ++
    bruno

  • 01-17-2007 05:02 AM In reply to

    Re: Selectionner un champs d'un tableau extensible

    quote:
    je sais que .Net est plus intérresant mais la je rencontre des restrictions de domaine qui me bloque dans le developpement.


    Je vois pas trop comment tu pourrais être moins bloqué avec Jscript mais soit.

    As-tu essayé ceci:

    nContextNode.nodeName


    Mais alors dans ton form tu séléctionne une ligne et tu presse sur un bouton a coté du tableau pour faire ton proccessing?
    C'est ca?

    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 01-18-2007 08:35 AM In reply to

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    bon j'ai essayé avec nContextNode.nodeName ca ne fonctionne pas + !
    Oui pour la deuxieme question !

    ++ Bruno
  • 01-18-2007 10:26 PM In reply to

    Re: Selectionner un champs d'un tableau extensible

    Après mure réflexion je ne comprend pas que ca ne marche pas.

    Car quand tu clique sur ton tableau sa séléctionne certe mais quand tu clique sur le bouton ca change aussi le contexte.

    Donc ce que je ne comprend pas c'est pourquoi quand tu clique sur ton bouton ca te fait une erreur car il devrait garder le row que tu as séléctionné avant et passser sans faire d'erreur???

    Puis-je voir le xml ou le schéma dans lequel tu essaye de séléctionné?

    ++

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

    • bruno
    • Not Ranked
    • Joined on 12-20-2006
    • Posts 12

    Re: Selectionner un champs d'un tableau extensible

    bonjour à tous,

    bon mon pb est résolu, trouvé sur le sdk infopath.
    voici ligne de code cela peut aider

    function DetailView::OnClick(eventObj)
    {
    //déclare le chemin du formulaire à ouvrir
    var objXDoc = Application.XDocuments.NewFromSolution("P:\\Document\\Bruno\\Formulaire_Infopath\\Jalons et Couts.xsn");
    // voici la ligne qui posait problème (fonctionne avec une base de données ou non
    var nameID = eventObj.Source.selectSingleNode("@CodePrj").text;
    //Appel de fonction déclarée plus bas
    put_detailViewIndex( nameID );
    //champ cible
    var destNode = objXDoc.DOM.selectSingleNode("/dfs:myFields/dfs:queryFields/q:Projet/@CodePrj");
    destNode.text = detailViewIndex;




    }

    //important sans ce petit bout de code cela ne fonctionne pas
    var detailViewIndex = 0;
    function get_detailViewIndex()
    {
    return detailViewIndex;
    }

    function put_detailViewIndex( newIndex )
    {
    detailViewIndex = newIndex;
    }

    merci thierry pour ta patience
  • 01-22-2007 07:50 AM In reply to

    Re: Selectionner un champs d'un tableau extensible

    de rien ca me fait plaisir! Et désolé mais moi aussi je me suis un peu égarré...

    Bravo et merci pour le source.

    ++

    Thierry
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
Page 1 of 1 (14 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.