![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML) |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: février 2006
Messages: 95
|
Salut,
j'aimerais créer un tableau extensible: à partir d'un nombre N par exemple 3 stocké dans ma base access,afficher dans mon tableau extensible N lignes c'est à dire 3 lignes dans mon exemple. je suis débutant sur infopath merci |
|
|
|
|
|
#2 (permalink) |
|
Expert Confirmé
![]() |
Salut,
Tu peux soit: Créer le xml corespondant et l'ouvrir avec ton formulaire. Mais dans ton cas je pense que tu devras soit passé par un bout de code. Vbscript, jscript, c#ou VB.Net? Infopath 2003 ou 2007? Mais si tu m'en disais un peu plus ca serait plus facile de t'aider ++ Thierry
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#4 (permalink) |
|
Membre du Club
![]() Date d'inscription: février 2006
Messages: 95
|
j'ai trouvé comment faire:il faut codé en jscript en faisant une boucle de 1 à N à chaque fois ajouter une ligne correspondant au champ de la table.
maintenant j'ai un autre problème, un champ de ma table extensible est un dropdownlist dont je le remplis par des données provenant de ma base access, je choisis un élément du dropdownlist tous les autres champs de la table sont pré-remplis or je ne veux que pour la ligne en question. merci |
|
|
|
|
|
#5 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Nord
Âge: 24
Messages: 275
|
Crée une connexion de données en réception et dans le menu déroulant t'utilises la connexion pour récupérer tes données, tu sélectionnes quel champ tu veux récupérer et t'utilises le bouton Règles en Définir un champ (ou un truc du genre) tu dis quel champ tu veux remplir et dans la valeur tu récupères la colonne de ta BDD en filtrant par rapport au nom du menu déroulant.
J'espère avoir été clair et que ça t'aidera. |
|
|
|
|
|
#6 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
Salut
Désolé d'up ce post, mais je rencontre un problème similaire. Je dois récuperer dans ma BD le nombre de lignes que comportera mon tableau. Comment puis-je faire ? Sachant que le tableau devra se créer après avoir cliqué sur un bouton, donc est-ce que je fais appel à un webservice ? Je dois donc utiliser le Microsoft Script Editor pour créer ce tableau lorsque l'on clique sur le bouton ? Le problème : je ne m'y connait pas du tout dans ce langage. Donc si vous aviez quelques pistes, je vous serez reconnaissant Infos Supplémentaires : -J'utilise InfoPath 2003 -Web Services en C# -Base de données SqlServer 2005 Merci beaucoup |
|
|
|
|
|
#7 (permalink) |
|
Expert Confirmé
![]() |
Si ton Webservices renvoit les données en XML et que tu lie le résultat de ce ws a un tableau répétitif ben ca ce fait tout seul.
Si tu veux faire un query via le code faut utiliser executeAction et données le nom du champ que tu veux insérer ca se trouve dans les propriétés du champs (infopath design, task pane, source de donées) dernier onglet normalement t'as un nom qu'es donnée genre: sectionrepet_23. Bref si tu veux pas trop faire de code tu trouveras facilement sur le net comment on fait avec SQL 2005 pour renvoyer des xml a la place d'array ou de je sais pas quoi. Une fois que c'est fait lie le avec Infopath via l'assistant puis affecte lui une truc répétitif (tableau ou section). puis tu met un bouton tu lui affecte une règle qui aurra comme but de query ton webservice et le tour est joué
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#8 (permalink) | |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
Je dois donc créer un webservice qui prend en paramètre un int qui sera le nombre de lignes de mon tableau et qui renvoie un fichier xml qui sera le tableau, c'est ca ?
Ce que je ne comprend pas c'est qu'est-ce que doit contenir le corps de ce webservice ? Une création de tableau xml qui à n lignes ? (n étant le paramètre) Citation:
^^ |
|
|
|
|
|
|
#9 (permalink) |
|
Expert Confirmé
![]() |
Désolé j'ai mal compris non bon alors fais ca avec du code jscript (comme ca tu dois pas installer Visual Studio pour faire du Visual C#) via:
Code :
XDocument.View.ExecuteAction("xCollection::insert", "group1_1"); Code :
XDocument.View.ExecuteAction("xCollection::insertBefore", "group1_1"); Attention toutefois avec cette méthode tu ne peux pas insérer une ligne sur une autre vue que celle qui est affiché.
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#10 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
Je peux pas faire appel à une fonction qui créé directement un tableau de n lignes?
Et sinon pour ton exemple, comment je fais pour passer n, nombre qui se trouve dans ma bd ? Je le récupere dans un champ sous InfoPath et je donne en paramètre ce champ dans le Script ? Merci de ton aide Virgul |
|
|
|
|
|
#11 (permalink) |
|
Expert Confirmé
![]() |
oui exactement tu fais une boucle:
Code :
var nbLigne= int.parse(XDocument.selectsinglenode("tonexpressionXPath").text); for(int i;i<nbLigne;i++) { XDocument.View.ExecuteAction("xCollection::insert", "group1_1"); }
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#12 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
C'est l'heure de la .... QUESTION DE DEBUTANT
![]() comment on récupere le chemin XPath d'un champ dans la source de données ? Je suis en InfoPath 2003 Je pourrais peut etre le récuperer en utilisant le champ formule, dans règles, et je transforme le chemin en expression xpath, mais il doit y avoir un moyen plus rapide ^^ |
|
|
|
|
|
#13 (permalink) |
|
Expert Confirmé
![]() |
non a part si toi tu connais ton schéma et donc tu sais comment il est construis.
Mais sinon c'est bien le seul moyen de faire en 2003. Mais bon tu pourrais aussi travailler sur 2007 et publier pour du 2003 comme je fais actuellement et donc tu aurais cette fonction et plein d'autre.
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#15 (permalink) | |
|
Expert Confirmé
![]() |
Citation:
Tu y arrives?
__________________
"Life is short don't forget to inhale" Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
![]() |
![]() |
||
tableau extensible à N lignes
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|