Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1

    Profil pro PEMIGNAN FOFANA
    Inscrit en
    septembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Nom : PEMIGNAN FOFANA

    Informations forums :
    Inscription : septembre 2010
    Messages : 36
    Points : -6
    Points
    -6

    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 :
    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 émérite Avatar de billout rm
    MVP InfoPath
    Inscrit en
    juillet 2007
    Messages
    756
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations professionnelles :
    Activité : MVP InfoPath

    Informations forums :
    Inscription : juillet 2007
    Messages : 756
    Points : 900
    Points
    900

    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 :
    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
    MVP InfoPath
    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

    Profil pro PEMIGNAN FOFANA
    Inscrit en
    septembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Nom : PEMIGNAN FOFANA

    Informations forums :
    Inscription : septembre 2010
    Messages : 36
    Points : -6
    Points
    -6

    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 émérite Avatar de billout rm
    MVP InfoPath
    Inscrit en
    juillet 2007
    Messages
    756
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations professionnelles :
    Activité : MVP InfoPath

    Informations forums :
    Inscription : juillet 2007
    Messages : 756
    Points : 900
    Points
    900

    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 :
    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
    MVP InfoPath
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •