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 :

Erreur dans mon code infopath


Sujet :

InfoPath .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut Erreur dans mon code infopath
    Bonjour chers amis developpeur,j'ai deux zones de listes modifiables.

    -La première zone de liste modifiable est lié au libelle de la table Structure de la base de données SQL.

    CREATE TABLE [dbo].[Structure](
    [Id_structure] [int] IDENTITY(1,1) NOT NULL,
    [Libelle] [varchar](50) NULL,
    CONSTRAINT [PK_Structure] PRIMARY KEY CLUSTERED
    (
    [Id_structure] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    GO



    CREATE TABLE [dbo].[Unités](
    [Id_Unite] [int] IDENTITY(1,1) NOT NULL,
    [Libell] [varchar](50) NULL,
    [Id_structure] [int] NULL,
    CONSTRAINT [PK_Unités] PRIMARY KEY CLUSTERED
    (
    [Id_Unite] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    GO


    Lorsque je sélectionne le champ1qui est la première zone de liste modifiable,je veux afficher les éléments dans champs 2qui est la deuxième liste modifiable.

    lorsque je sélectionne un élément du champ1,il m'affiche un seul élément dans le champ2 alors que je voudrais avoir tous les éléments.

    j'ai besoin de votre concours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Public Sub champ1_Changed(ByVal sender As Object, ByVal e As XmlEventArgs)
                ' Tapez votre code ici pour modifier la source de données principale.
     
                Dim A As String
                'recuperation des champs
                Dim myNav As XPathNavigator = Me.MainDataSource.CreateNavigator()
     
                Dim Aa As XPathNavigator = myNav.SelectSingleNode("/my:mesChamps/my:champ1", Me.NamespaceManager)
                Dim Bb As XPathNavigator = myNav.SelectSingleNode("/my:mesChamps/my:champ2", Me.NamespaceManager)
                A = Aa.Value
                'creation de la connexion a la base de donnees
                Dim myConnection As New SqlConnection
                Dim recherchagent, Libelle, Unite As String
                Dim agentCommand As SqlCommand
                Dim myReader As SqlDataReader
                myConnection.ConnectionString = "Data Source=PEMCODEV\SQLEXPRESS;Initial Catalog=papa;Integrated Security=True"
                'ouverture de la connexion
                myConnection.Open()
                'Effectuer ici des opérations sur la base
                recherchagent = "SELECT Libelle,Libell FROM Structure,Unités  WHERE Libelle='" + A + "'AND Structure.Id_structure=Unités.Id_structure "
                agentCommand = New SqlCommand(recherchagent, myConnection)
                myReader = agentCommand.ExecuteReader()
                Dim i As Integer
                For i=1 to 100
                    While (myReader.Read())
                        Unite = myReader.GetValue(i)
                        myNav.SelectSingleNode("/my:mesChamps/my:champ2", Me.NamespaceManager).SetValue(Unite)
                        'Unite = ""
                    End While
                    next i 
                    'Fermeture de la connexion
                    myConnection.Close()
     
            End Sub

  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,

    En effet, je dirais même que vous avez dans champs2 la dernière valeur récupérée de votre requête. Le problème vient de la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myNav.SelectSingleNode("/my:mesChamps/my:champ2", Me.NamespaceManager).SetValue(Unite)
    En fait vous affectez ici la valeur du champ avec votre résultat.

    Pour pouvoir avoir une liste de valeurs, vous devez passer par une connexion de données secondaire InfoPath de type XML.
    Pour cette connexion de données, vous pourrez cliquer sur "Données" puis "Connexion de données", puis "Réception" puis "Document XML".

    Vous devrez depuis votre code managé remplir cette connexion de données.

    Puis vous n'aurez plus qu'à associer cette connexion de données InfoPath à la zone de liste déroulante.


    Avec ce post, vous pourrez réaliser votre besoin en 5 minutes :
    http://blogs.prakashinfotech.com/Lis...525ba33&ID=101

    Enjoy!
    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 à l'essai
    Inscrit en
    Septembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut erreur dans mon code
    Merci pour votre reponse,je voudrais savoir la procedure de création du dcument xml?
    Merci pour votre contribution

  4. #4
    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,

    Pour cela, il faut vour créer un fichier XML sur votre ordinateur comprenant uniquement une coquille vide. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xml version="1.0" encoding="UTF-8" ?>
    <options>
      <option><value/><displayname/></option>
      <option><value/><displayname/></option>
    </options>


    Une fois ce fichier enregistré sur votre PC, vous n'aurez plus qu'à ajouter ce fichier xml en tant que fichiers de resources du formulaires (dans la partie "Données" du ruban). Par la suite, lorsque vous créerez la connexion de données, vous n'aurez plus qu'à sélectionner "Réception de données" / "Documents XML" puis cliquer sur "Fichiers de resource" pour sélectionner votre modèle.

    En espérant avoir été assez clair dans mes explications.

    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.

Discussions similaires

  1. Où l'erreur dans mon code
    Par moonia dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2006, 14h16
  2. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  5. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52

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