Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > InfoPath

InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)

Réponse
 
Outils de la discussion
Vieux 23/04/2008, 10h40   #1 (permalink)
Membre du Club
 
Date d'inscription: février 2006
Messages: 95
Par défaut tableau extensible à N lignes

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
dieudo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/04/2008, 08h32   #2 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/04/2008, 09h12   #3 (permalink)
Membre du Club
 
Date d'inscription: février 2006
Messages: 95
Par défaut

salut
le code est en Jscript et c'est de l'infopath 2003
merci
dieudo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/04/2008, 16h08   #4 (permalink)
Membre du Club
 
Date d'inscription: février 2006
Messages: 95
Par défaut

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
dieudo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/04/2008, 16h32   #5 (permalink)
Membre Confirmé
 
Date d'inscription: avril 2008
Localisation: Nord
Âge: 24
Messages: 275
Par défaut

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.
glucas59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 10h43   #6 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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 ?
ca me semble compliqué car je dois créer le tableau dans Infopath, il doit donc apparaître physiquement dans le formulaire, chose qui, je crois n'est pas possible via 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
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 11h09   #7 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 11h30   #8 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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:
comment on fait avec SQL 2005
tu voulais dire Visual C# ?

^^
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 11h38   #9 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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");
Le num que tu trouve dans les propriétés te renvoit une erreur esssaye en diminuant ou en augmentant de 1 ce num.

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 11h43   #10 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 13h26   #11 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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");
}
 
Je sais pas si ca s'écrit exactement comme ca en Jscript mais ca doit pas être loin de la vérité.
__________________
"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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 14h29   #12 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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 et j'ai pas le clic droit / copier XPath de la version 2007

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 ^^
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 14h31   #13 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 14h44   #14 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

C'est juste que dans l'entreprise ou je fais le stage ils n'ont pas office 2007 donc je travaille avec ce que j'ai
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/05/2008, 15h11   #15 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

Citation:
Envoyé par cocosql Voir le message
C'est juste que dans l'entreprise ou je fais le stage ils n'ont pas office 2007 donc je travaille avec ce que j'ai
tranquille c'étais juste pour t'informer...

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > InfoPath

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

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

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide