Précédent   Forum du club des développeurs et IT Pro > Dotnet > Général Dotnet > Développement Office System > InfoPath
InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 14h15   #1
pemco
 
PEMIGNAN FOFANA
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : PEMIGNAN FOFANA

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : -7
Points : -7
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
pemco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 16h29   #2
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 17h01   #3
pemco
 
PEMIGNAN FOFANA
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : PEMIGNAN FOFANA

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : -7
Points : -7
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
pemco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 19h51   #4
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h02.


 
 
 
 
Partenaires

Hébergement Web