|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Bonjour
J'aimerais utiliser les fonctions classiques d'une liste box (ajouter des éléments, lire les élément, sélectionner...) si quelqu'un avait les fonctions pour, je suis intéressé. Code :
Quand je les décoches ils sont supprimé, pourquoi ? mon dernier élément inséré apparait 2 fois dans ma liste (a la fin et au début) donc doublon, si je le dé-sélectionne les deux disparaissent Bref Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Bonjour,
En fait la technique est de peupler cette listbox à partir d'une connexion de données. Pour cela il faut suivre la méthode suivante.
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Merci pour les informations.
La méthode de connexion au fichier XML passe avec sharepoint 2010? Et pourquoi coder le fichier XML alors que je code dans infopath? infopath est-il si limité? En faite, je voulais éviter de passer par une connexion pour justement permettre a l'utilisateur de choisir entre 3 boutons Chaque bouton ayant une requête légèrement différente. C'est pour cela que je cherche a modifier la Requête SQL de ma connexion a la base. (ou directement remplir ma Listebox, qui se remplit correctement, mais les cases a cocher sont sélectionnées par défaut) Sinon je passe par 3 vues "une par action bouton"? |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Pardon, je n'ai pas été assez clair.
Tout d'abord il faut créer le fichier XML qui sera en fait un fichier de ressource du formulaire InfoPath, stocké à l'intérieur de celui-ci! Et la connexion de données en reception de ce document XML pointera sur le fichier de ressource. Elle permet en fait de créer une source de données secondaire basée sur ce document XML. Ainsi il sera facile de connecter cette source de données secondaire au champ. Pour ajouter un fichier de ressource, simplement aller dans l'onglet données puis sélectionner "fichier de ressouces". Si vous pré-peuplez directement le document XML, vous n'aurez pas de code à réaliser. Une fois que aurez réalisé les manipulations, vous verrez que ce n'est pas si compliqué. Cordialement. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Merci, pour l’intégration du fichier XML je vois comment faire.
Me reste plus qu'a faire mon Xml, ou j'avoue être plutôt très débutant et perdu. Mais la j'ai besoin que de requête simple genre select Client from table where pays = 'Pays' et le faire par pays en gros (donc 15 à 20+ fichiers de ressources XML?). Les fichier XML sont des données fixes, c'est bien ça? Vous disiez que je pourrais insérer du code? car si c'est le cas j'ai juste besoin d'un Xml(et pourquoi pas directement infopath) avec une fonction dynamique de requête? Lien de votre blog Voila pourquoi je voulais par Code C#, récupérer la valeur de mon champs 'Pays' histoire de faire une requête dynamique toute simple Ça existe pas la simplicité dans infopath on dirait :s? |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Bonjour,
Je penses que la solution est de ne disposer que d'un seul fichier XML. Ensuite vous avez 2 stratégies possibles:
|
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Merci, alors j'ai ajouté ma connexion a mon fichier Xml
je dois donc remplir mon Xml File avec les data de ma requete SQL? pour ensuite les afficher, si je comprends bien. auriez vous un petit exemple? j'avoue etre un peu perdu. Voici le code de votre blog que j'ai essayer de modifier Code :
j'aimerais utiliser ce system pour ajouter une node (et donc le faire en repetition) Note: il n'existe aucun moyen de "uncheck" les items que j'ai ajouté dans ma liste? Car tout fonctionne sauf que l'item ajouté est par défaut coché et je n'arrive pas a trouver la propriété .checked ou un truc comme ça. |
||
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Alors pour résumer:
Le contrôle "Zone de sélection multiple" n'est pas très simple dans InfoPath. Il existe une différence entre les valeurs affichées et les valeurs sélectionnées. Si vous repartez d'un exemple simple, vous verrez que les valeurs affichées dans ce contrôle peuvent provenir de valeurs que vous positionnez dans le formulaire ("Entrer manuellement des choix", "Rechercher des choix dans une source de données externe"). Dans cette partie la, nous avons donc les valeurs affichées dans la zone de liste multiple (cochées ou non). Maintenant, attardons nous sur les valeurs sélectionnées et déselectionnées. InfoPath possède un structure extensible pour ce champ. En fait lorsque vous sélectionnez une valeur, le champ extensible prend une entrée avec la valeur sélectionnée. Il est donc important de comprendre la décorrélation entre l'endroit où les données sont stockées (en dur dans le template ou dans une connexion de données externe) et l'endroit où les valeurs cochées sont enregistrée (dans le xml du formulaire en cours). Donc par le code, ce contrôle comporte une double difficulté. Il faut tout d'abord réussir à peupler correctement la zone de liste multiple avec toutes les valeurs que vous souhaitez. Ensuite il faudra vous attarder à la méthode permettant de sélectionner / déselectionner par le code les valeurs affichées. Cordialement. |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Justement je suis arrivé en cherchant un peu a afficher les données dans la liste (rien de trop difficile a ce niveau)(cf code de mon tout premier post)
ensuite un doublon se créé, je le delete donc ma liste est pleine et exacte mais cochée... Et c'est bien la tout mon probleme ^^. Sinon je peux recuperer le code XML et remplacer ou ajouter des chaines dans mes champs pour les decocher Mais je n'ai trouvé aucune info sur les attributs "checked, uncheked". Sinon est il possible de creer X connexions de données et attribuer a la liste tel ou tel "Connexion" et de forcer un load()? Merci. |
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Je crois que l'on n'est pas du tout sur la même longueur d'ondes...
La manière dont vous peuplez dans votre premier post, permet uniquement de rajouter des valeurs cochées! En effet vous rajoutez chaque item dans la partie du formulaire qui stocke les valeurs cochées dans ce contrôle... Donc lorsque vous décochez, l'élément disparait! Cela est entièrement normal. Pour bien faire, il faut tout d'abord correctement peupler votre contrôle avec des valeurs non cochées. C'est cela que vous ne savez pas faire. Aller dans Propriétés sur le contrôle en faisant un clic droit puis entrer des valeurs manuellement (par exemple A, B, C, D). Vous verrez que ces valeurs apparaissent décochées... Ensuite réalisez votre code que vous aviez posté dans le premier post. Par exemple réalisez le pour B et D. Vous verrez que le formulaire se charge avec B et D cochés et que lorsque vous décochez la valeur, l'élément reste affiché décoché car il est enregistré dans les valeurs possibles du contrôle. Vous comprendrez la différence entre l'endroit où positionner des valeurs à afficher dans le contrôle (enregistré dans le template) et l'endroit ou stocker les valeurs cocheés (votre élément extensible Lst_Test). Cordialement |
|
|
10
|
|
|
#11 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Merci pour votre aide
N'ayant pas les bases ^^, je réfléchi en mode Pur C# comme sous Visual studio, donc avec une logique de "controles standards "(ou remplir une listebox se fait en 2 min). Alors j'ai un petit soucis, j'ai repris un code et un model Xml Code :
Code :
autre petite question le form sera dispo sous sharepoint et intra/internet Je dois obligatoirement dev part du webservice pour proteger ma bdd? |
||||
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Bonjour,
Oui vous avez raison, le passage de contrôle standard à InfoPath est parfois assez rude. Cela provient du mode de conception d'InfoPath qui comprend un modèle puis un xml associé à ce modèle. Pour votre connexion de données, oui vous êtes obligé de faire comme vous avez réalisé. Il faut que ce soit extensible pour qu'InfoPath affiche X lignes dans le contrôle zone de liste multiple. Pour votre dernière question, vous avez le libre choix. Soit passer par des web services, soit aller directement interrogé une procédure stockée de la base de données (ce que vous auriez fait dans le web services...). Si la base est accessible depuis le serveur SharePoint et que le connecteur à la base est installé sur le serveur (ODBC, Oracle client,...), vous n'avez pas d'intérêt majeur à passer par un web service. Personnellement, je partirai sur une V1 en faisant l'appel à la procédrure stockée directement dans le code du formulaire. |
|
|
00
|
|
|
#13 | |||||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
Merci
Code :
Citation:
xml: Code :
|
|||||
|
|
00
|
|
|
#14 | ||
|
Membre chevronné
![]() MVP InfoPath Inscription : juillet 2007 Messages : 556 ![]() |
Attention, je crains qu'il n'y ait une confusion.
Vous construisez un fichier XML par contre le problème est que vous essayez d'affecter ce fichier XML au champ par le code d'après ce que je vois. Afin de vous aider, je vous ai réalisé ce petit bout de code en LINQ qui permet de rajouter des éléments à une source de données de type XML: Code :
|
||
|
|
00
|
|
|
#15 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 44 ![]() |
En faite je souhaitais juste remplir ma liste avec ma source de donnée Xml,
comme vous m'aviez conseillé. Donc j'ai : - créé une source Fichier ressource XML. - compléter (avec les résultats de ma requête SQL (dynamique) ->mon Fichier XML pour que le formulaire l'affiche 'en auto'. Je pensais, suite au différents code que j'avais trouvé, et votre blog utiliser ce code pour "intégrer mes données", et donc créer un code Xml temporaire et l'afficher dans ma liste - ou changer le contenu du Fichier de ressource (mais je n'ai pas trouvé comment faire encore) J'ai donc tester la méthode avec le code Linq (je connais très peu). j'ai modifié Code :
DataConnections["RRHS"].Execute(); -> DataConnections["Emplacements"].Execute(); Citation:
Code :
OuterXml = "<Emplacements><Emplacements><Value>5</Value><Descriptif>des5</Descriptif></Emplacements></Emplacements>" et j'ai recopier 4 fois cette ligne pour ajouter 4 nouveaux éléments, et je n'affiche que 3 éléments a chaque fois (car 3 éléments dans mon fichier Xml) et le premier élément n'affiche que la case a cocher et pas de valeur La struture de mon fichier XML est elle correcte? car elle passe si je //if ((firstChild != null) && (lastChild != null)) // firstChild.DeleteRange(lastChild); Bref voila pour la partie infopath, après pour associer la source de donnée a ma zone de liste sélection multiple, je reste dans infopath(comme habituellement)? c'est juste pour comprendre ce que vous voulez dire par : "par l'interface SharePoint" Merci encore d'avance, |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com