# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  tableau extensible  N lignes

## dieudo

Salut,

j'aimerais crer 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 dbutant sur infopath

merci

----------


## virgul

Salut,

Tu peux soit:

Crer 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

----------


## dieudo

salut
le code est en Jscript et c'est de l'infopath 2003
merci

----------


## dieudo

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 problme, un champ de ma table extensible est un dropdownlist dont je le remplis par des donnes provenant de ma base access, je choisis un lment du dropdownlist tous les autres champs de la table sont pr-remplis or je ne veux que pour la ligne en question.

merci

----------


## glucas59

Cre une connexion de donnes en rception et dans le menu droulant t'utilises la connexion pour rcuprer tes donnes, tu slectionnes quel champ tu veux rcuprer et t'utilises le bouton Rgles en Dfinir un champ (ou un truc du genre) tu dis quel champ tu veux remplir et dans la valeur tu rcupres la colonne de ta BDD en filtrant par rapport au nom du menu droulant.
J'espre avoir t clair et que a t'aidera.

----------


## cocosql

Salut  ::mrgreen::  

Dsol d'up ce post, mais je rencontre un problme similaire.

Je dois rcuperer dans ma BD le nombre de lignes que comportera mon tableau.

Comment puis-je faire ?

Sachant que le tableau devra se crer aprs avoir cliqu sur un bouton, donc est-ce que je fais appel  un webservice ? 
 ::arrow::  ca me semble compliqu car je dois crer le tableau dans Infopath, il doit donc apparatre physiquement dans le formulaire, chose qui, je crois n'est pas possible via un webservice. 

Je dois donc utiliser le Microsoft Script Editor pour crer ce tableau lorsque l'on clique sur le bouton ?

Le problme : je ne m'y connait pas du tout dans ce langage. Donc si vous aviez quelques pistes, je vous serez reconnaissant  :;): 

Infos Supplmentaires :

-J'utilise InfoPath 2003
-Web Services en C#
-Base de donnes SqlServer 2005


Merci beaucoup  ::roll::

----------


## virgul

Si ton Webservices renvoit les donnes en XML et que tu lie le rsultat de ce ws a un tableau rptitif ben ca ce fait tout seul.

Si tu veux faire un query via le code faut utiliser executeAction et donnes le nom du champ que tu veux insrer ca se trouve dans les proprits du champs (infopath design, task pane, source de dones) dernier onglet normalement t'as un nom qu'es donne 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 rptitif (tableau ou section). puis tu met un bouton tu lui affecte une rgle qui aurra comme but de query ton webservice et le tour est jou

----------


## cocosql

Je dois donc crer un webservice qui prend en paramtre 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 cration de tableau xml qui  n lignes ? (n tant le paramtre)





> comment on fait avec SQL 2005


tu voulais dire Visual C# ?

^^

----------


## virgul

Dsol 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:



```
XDocument.View.ExecuteAction("xCollection::insert", "group1_1");
```



```
XDocument.View.ExecuteAction("xCollection::insertBefore", "group1_1");
```

Le num que tu trouve dans les proprits te renvoit une erreur esssaye en diminuant ou en augmentant de 1 ce num.

Attention toutefois avec cette mthode tu ne peux pas insrer une ligne sur une autre vue que celle qui est affich.

----------


## cocosql

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 rcupere dans un champ sous InfoPath et je donne en paramtre ce champ dans le Script ?

Merci de ton aide Virgul  :;):

----------


## virgul

oui exactement tu fais une boucle:


```

```

Je sais pas si ca s'crit exactement comme ca en Jscript mais ca doit pas tre loin de la vrit.

----------


## cocosql

C'est l'heure de la .... QUESTION DE DEBUTANT  ::traine:: 

comment on rcupere le chemin XPath d'un champ dans la source de donnes ? 

Je suis en InfoPath 2003  ::):  et j'ai pas le clic droit / copier XPath de la version 2007 

Je pourrais peut etre le rcuperer en utilisant le champ formule, dans rgles, et je transforme le chemin en expression xpath, mais il doit y avoir un moyen plus rapide ^^

----------


## virgul

non a part si toi tu connais ton schma 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.

----------


## cocosql

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  :;):

----------


## virgul

> 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?

----------


## cocosql

lol non, j'ai 3 lignes de code jscript, j'ai une erreur :



```

```


je vais me pendre et je reviens xD

----------


## virgul

bon alors fait un while:



```

```

La je suis sure de la syntaxe, tu vas pas te pendre pour un stage?  ::aie::

----------


## cocosql

Non mais c'est au dessus du stage : 2 ans d'tudes d'informatique pour ....

une erreur de ';' alors que "normalement" mon code est juste



```

```

enfin bon j'essaye ton while et je te dis  :;):

----------


## cocosql

Ah du nouveau, int n'est pas dfini -_-

C'EST QUOI CE LANGAGE  ::mur::   ::lol::

----------


## virgul

et oui c'est enfauite comme ca qu'il faut faire:



```
parseInt(tonStr);
```

----------


## cocosql

Encore une erreur .. dcidment ^^



```

```

Ligne 24 :



```
var nbLigne= parseInt(XDocument.selectsinglenode("../../../my:NbLignes").text);
```

----------


## virgul

ahahahahaha...

dsol mais sa me rappelle mes dbut.

en faite si tu veux prendre l'expression xpath faut pas oubli d'insrer le controle expression xpath a la racine du formulaire et pas dnas une section (rpt ou pas)

Car la tu part du root de ton XML et en faisant ../../ tu retourne deux balises en arrire donc la t'es dj parti de Infopath  ::aie::

----------


## cocosql

lol ok je vois ce que tu veux dire, 

et est-ce que toi aussi,  tes dbuts tu ne savais pas comment insrer le controle d'expression xpath a la racine du formulaire et pas dans une section (rpt ou pas) ? xD

----------


## virgul

j'avais surtout des souci a crire mon expression Xpath car je ne savais pas que tu pouvais faire ca...

----------


## cocosql

Problme rsolu, merci virgul : 



```

```

il fallait prendre "groupe2_1" qui provient du dernier onglet "avanc" du tableau extensible, dans x_collections et non le nom du tableau extensible "groupe2" du taskpane.

Encore une fois, merci virgul  ::yaisse2::

----------


## Yurnero_

C'est en quoi cette solution ?
Merci

----------


## cocosql

C'est du JScript, infopath 2003  ::D:

----------


## fdoncev

> bon alors fait un while:
> 
> 
> 
> ```
> 
> ```
> 
> La je suis sure de la syntaxe, tu vas pas te pendre pour un stage?


Vu que moi je code en VB, le code suivant sera comment?

Merci

----------


## virgul

> Vu que moi je code en VB, le code suivant sera comment?
> 
> Merci


vbscript ou VB.Net?

----------


## fdoncev

> vbscript ou VB.Net?


bte de ma part... ::oops:: 
je dveloppe en vb.net

----------


## fdoncev

svp...qq'un peut m'aider!!??

----------


## billout rm

Saloute,

D'aprs le code de virgul et le peu que je connais en VB.Net, je pense que ton code devra se rapprocher de ceci:



```

```


Il y a pittre 2-3 corrections  apporter mais la conversion du code ressemble  a...

Tiens nous au jus si t'as un soucis.

----------


## fdoncev

> Saloute,
> 
> D'aprs le code de virgul et le peu que je connais en VB.Net, je pense que ton code devra se rapprocher de ceci:
> 
> 
> 
> ```
> 
> ```
> ...


voila ce que j'ai fais si ca peut aider qq'un  ...ca marche trs bien ...




```

```

----------

