# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  infopath + tableau ou cadre

## kev0631

Bonjour

je suis sur un problme assez particulier concernant un formulaire infopath

j'ai 2 listes droulante qui sont lies entre elles

une pour les marques de voiture et une pour les modles 

a chaque fois que je slectionne une marque dans la premire liste droulante , les diffrents modles de la marque apparaissent , ce qui marche trs bien

par contre je voudrais faire en sorte que  chaque fois que je slectionne un modle , ses caractristiques apparaissent dans un tableau , d'ou mon problme car je ne sais pas comment faire cela

pour l'instant  chaque fois que je me connecte  la base , toutes les caractristiques de tout les modles de toutes les marques apparaissent et ce n'est q'une fois que j'ai selectionner la marque et le modle de la voiture dans la liste ddroulante que le tri s'effectue dans le tableau 

et je dsirerai que ce tableau apparaisse  la fin de mes slections



d'avance je vous remercie beaucoup


cordialement kevin

----------


## stephane eyskens

Il faudrait plusieurs prcisions:

- Quelle version d'infopath?
- Utilises-tu le smartclient ou des browser forms?
- Une quelconque interaction avec sharepoint?

----------


## virgul

Salut,

Donc quand tu slctionne ta marque et tu veux que ca t'affiche le dtail? Tu y es arriv ou pas ? 

Si non il faut que tu fasse des expression box qui vont cherher la valeur que tu veux en ayant comme condition que la valeur de listebox soit gale la valeur dans la liste. Mais si tu nous donnais ta structure xml il serait plus simple de t'expliquer.

Pour ton deuxime problme pourquoi tu ne masquerais pas ton tableau tant que ta deuxime liste box est vide? Ou aurais-je mal compris?

----------


## kev0631

salut


Pour Stphane

infopath 2007


smartclient ou browser forms????

pas d'interaction avec sharepoint


pour virgul


oui quand je selectionne ma marque j'affiche le dtail 

par contre, pour l'instant a se prsente comme a : j'ai un bouton connexion pour me connnecter  ma base sql server depuis laquelle je rcupre les infos 

quand jactionne ce bouton mes deux liste box se remplisse , celle avec les marques et celle avec les modles ( au dbut celle avec les modles se remplit avec tous les modeles de toutes les marques , ce qui me convient pas car j'aimerai qu'elle reste vide au dbut , 1er problme) , 

second problme : c'est sur mon tableau qui se remplit des dtails de tous les miodles de toutes les marques ds que j'appui sur le bouton connexion

voila mes soucis

par contre je n'ai pas fait de prog : j'ai fait des rgles de liaison au niveau sql dans les proprits des list box


voila vous savez tout

encore merci

----------


## virgul

> quand jactionne ce bouton mes deux liste box se remplisse , celle avec les marques et celle avec les modles ( au dbut celle avec les modles se remplit avec tous les modeles de toutes les marques , ce qui me convient pas car j'aimerai qu'elle reste vide au dbut , 1er problme) ,


Pourquoi ne pas masquer tza listebox des modles tant que celle des marque est vie (ca ce fait tout simplement dans les proprits du controle listebox)

[QUOTE<=kev0631]
second problme : c'est sur mon tableau qui se remplit des dtails de tous les miodles de toutes les marques ds que j'appui sur le bouton connexion[/QUOTE]

Mais pourquoi ne pas faire un tableau (pas rptitif un tableau de mise en forme) qui contiendra des expression box avec la condition que je t'ai dj expliqu plus haut?

Comme ca y a juste le modle que tu as slctionn qui affiche les dtail.

Aie-je bien compris?

----------


## kev0631

salut

merci pour ce petit dtail concernant l'affichage je le connaissais pas
cela me permet dornavant de masquer la liste box modele tant qu'il n'y a pas de marque slectionn dans la premiere liste box

par contre pour le tableau le problme est toujours la
mais finalement je ne pense pas passer par un tableau mais simplement par des champs texte , ce qui me convient plus
et la encore j'ai le meme problme
si je met en place un champ texte (tout bte ) rien ne s'affiche par contre si je le cr dans une section extensible j'ai tout qui s'affiche en bloc (ce qui ne me convient pas non plus) et si je prend le champ texte qui est sous la section extensible et que je le sort pour le placer hors de cette section tout deviens nikel

comment dois-je procder pour faire quelquechose de propre

merci d'avance

----------


## virgul

Je suis vraiment dsol mais j'arrive pas  comprendre ce que tu veux vraiment faire avec ton tableau. Si tu veux la meilleur facon de procder, pourrais-tu poster une ou deux capture d'cran que je comprenne mieux? Et si tu peux aussi fabriquer (bricoler l'image) dans le genre d'affichage que tu voudrais ca m'aiderais grandement.

autre possibilits qui n'est surement pas la meilleur et pas la plus perfomante mais ce que tu pourrais faire c'est filtrer les donnes du tableau via la proprits (c'est le bouton juste en dessous du formatage conditionnel).

----------


## kev0631

voila un exmple avec des tlphones

je ne veux pas qu' il y est rptition de la date d'annonce par exemple

hors quand je cre une section extensible et que je place date d'annonce  l'intrieur , il y a rptition mais quand je cre une zone texte "normal" rien ne s'afiche  l'intireur

----------


## virgul

Ok ben ce qu'il faut faire c'est dans les proprits cliquez sur "Modifier les valeurs par dfaut" et aprs tu choisi en mettant une coche sur les lment que tu veux que InfoPath te cre quand tu ajoute une occurence de ton tableau

----------


## kev0631

merci pour ta rponse

mais je ne veux pas ajouter d'occurence  mon tableau , je veux juste afficher les dtails ( en l'occurence la date d'annonce en fonction de la marque et du modle du tlphones)

merci

----------


## virgul

Pourrais tu envoyer ta structure xml histoire que je puisse construire l'expression XPath et te l'expliquer?

----------


## kev0631

voila

merci

----------


## kev0631

up s'il vous plait

----------


## virgul

Ne soyons pas trop presser quand mme...


Bon a voir tu recois dans ta rponse toute les infos dont tu as besoin reste plus qu'a les afficher dans ton form.

Que stocke tu dans la listebox marque le ID ou le modle?

Pour ce faire introduis une expression box et copie l'expression XPath suivante:


```
/dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MODELE_APP[@Modele= talisteboxMarque]/d:MOBILE_CARACTERISTIQUES/@DateAnnonce
```

talisteboxMarque devra tre remplac par le chemin xpath de ta liste droulante.

----------


## kev0631

ok merci beaucoup virgul 

je vais essayer a

par contre j'ai aps trop compris ta question sur le stockage de ma liste box marque , car j'y stoque les marques et pas les modles

----------


## virgul

> par contre j'ai aps trop compris ta question sur le stockage de ma liste box marque , car j'y stoque les marques et pas les modles


Ecris trop vite je voulais dire dans les proprit de ta listebox marque tu as deux champs un valeur et l'autre nom complet.

dans valeur c'est la valeur qui va tre stock dans le xml que tu vas renvoy (ca serait bien que ce soit l'ID car je pense que c'est unique non ?)

Nom complet est le nom qui sera affich mais pas celui qui est renvoy mais celui affich a l'utilisateur.

Si tu veux envoye moi ta structure XML de source primaire en indiquant la liste droulante et je te construit ton expression XPath

----------


## kev0631

/dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MODELE_APP[@Modele= /dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MARQUE_APP/@Marque]/d:MOBILE_CARACTERISTIQUES/@DateAnnonce


c'est bon a??

parce que a n'affiche rien!!!

edit :

Si tu veux envoye moi ta structure XML de source primaire en indiquant la liste droulante et je te construit ton expression XPath

excuse mon ignorance mais c'est quoi la structure XML de source primaire


encore
merci

----------


## virgul

Non ca ca va pas march  :;): 

Ta liste droulante est bien li  un xml non ? Pourrais-tu me l'envoy?

Dans Infopath tu as toujours une source primaire qui sont les donnes qui vont tre sauvegard quand tu le voudra. Et les source secondaire sont les informations qui te seront utile pour populer ton formulaire.

si tu clique sur ton controle et que dans le volet tu est dans le menu source de donnes sa devrait directement te montrer ou il est.

----------


## kev0631

non ma liste droulante est lie  la base de donne sql server

si je fais l'opration que tu m'as demande , j'ai un truc de ce style , mais pas de source xml !!!!

comment faire


merci

----------


## virgul

Donc tu met ceci dans ton expression box et tu regarde si ca marche:



```
/dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MODELE_APP[@Modele= ../../../dfs:queryFields/q:FR_MODELE_APP/Modele]/d:MOBILE_CARACTERISTIQUES/@DateAnnonce
```

----------


## kev0631

non a ne marche pas il me dit qu'il ne trouve pas le chemin du champ ou du groupe

meme en ayant rparer ta petite erreur de frappe sur

/dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MODELE_APP[@Modele= ../../../dfs:queryFields/q:*S*FR_MODELE_APP/Modele]/d:MOBILE_CARACTERISTIQUES/@DateAnnonce

----------


## virgul

/dfs:myFields/dfs:dataFields/d:SFR_TYPE_MARQUE_MODELE/d:SFR_MODELE_APP[@Modele= ../../../dfs:queryFields/q:SFR_MODELE_APP/*@*Modele]/d:MOBILE_CARACTERISTIQUES/@DateAnnonce

Oups... Un attribut est reprsent par un @ devant le nom

La lecture de ce document te serait surement trs bnfique:

http://xml.developpez.com/faq/

----------


## kev0631

ok merci virgul a marche

donc je peux faire la mme chose avec des text box ?

voulais -tu m'expliquer autre chose ?

merci

----------


## virgul

Tout  fait tu peux le faire avec une textbox tu l'insre et tu te rend dans les proprits et tu mets ton expression XPath dans ca valeur.

Fais attention que la coche (juste en-dessous) soit dedans afin que le champs se mette  jour.

Non rien de plus mais je te conseil de lire le tuto ca t'aidera  mieux comprendre XML et surtout  savoir comment travailler correctement avec.

Pense au Tag rsolu, Merci

----------


## kev0631

arf j'ai une erreur quand jle f avec un text box

il me dit q'(un calcul ne s'est pas termin et que le nombre de calcul pour une action unique a dpass la capacit max

----------


## virgul

juste presse sur le bouton fX et aprs colle ton expression dedans!

----------


## kev0631

oui c'est ce que j'ai fait quand mme lol*

mais  l'xecution j'ai une erreur qui est celle dcrite plus haut

----------


## virgul

Ce que je ne comprend pas c'est  quel textbox (de ta structure XML) tu relis ton expression XPath?

Attends tu veux modifier ca valeur c'est bien ca? Si oui on change de technique celle-ci ne fonctionnera pas...

----------


## kev0631

oui si c'est possible je veux l'afficher et au besoin la changer

voila je te remercie vivement

----------


## virgul

Ok bon alors rinsre ton tableau rptitif puis dans les proprits tu vas dans le 2me onglet et tu clique sur le bouton filtre. 

Puis tu dfini ton filtre afin que la condition soit que marque= a ta listebox

Donc ca sera un truc comme ca:


```
@Modele= ../../../dfs:queryFields/q:SFR_MODELE_APP/@Modele
```

Je t'ai pas conseiller ca en premier car c'est moins performant et je croyais que tu voulais seulement l'afficher et pas le modifier.

----------


## kev0631

@Modele= ../../../dfs:queryFields/q:SFR_MODELE_APP/@Modele


je comprend pas 
c'est marque ou modele

et pour le filtre je ne peux pas attacher un champ (marque par exemple)  un controle

merci

----------


## virgul

Es-ce que ca t'aide cette photo?

----------


## kev0631

non du tout

c'est pas ce que je veux faire

je veux en fonction de la liste droulante marque et de la liste droulante modele , afficher les infos des tlphones

et au besoin les modifier 

voila , et la jonction je n'arrive pas  la raliser , de plus et la c'est toujours un peu le mme problme , je n'arrive pas  afficher le tableau du tlphones selectionner  la fin , il s'affiche ds le dbut et il se filtre au fur et a mesur que je selectionner la marque et el modle dans les lsites box correspondantes


d'ou le pb

je t'envoi une foto et aussi l'xml 


merci beaucoup , ton aide m'est pluss que prcieuse

----------


## virgul

Normal ton tableau tu dois le lier a:

q:SFR_MODELE_APP

et pas  d:MOBILE_CARACTERISTIQUES.

car l'attribut Modele qui te permet de faire la liaison avec ta liste droulante est dans q:SFR_MODELE_APP et pas dans l'autre noeud.

----------


## kev0631

ou mais le problme c'est que le choix ne m'est pas propos 
sous q: je ne peux le faire


pour preuve la capture d'cran


par contre sous d: j'ai loption tableau extensible


merci beaucoup encore une fois , sans toi je serai chocolat

----------


## virgul

> ou mais le problme c'est que le choix ne m'est pas propos 
> sous q: je ne peux le faire


tu fais que SFR_MODELE_APP soit ton tableau pour ce faire tu fait un glisser dplacer avec le clic droit et tu choisis tableau rptitif

----------


## kev0631

ok je vais voir a

par contre un autre petit truc

ce que je fais sosu infopaht avec les rgles de filtrages des listes box , j'ai l'impression que ce n'est pas supports sous infopath services pour un eventuel portage sous MOSS (sharepoint server 2007)

peut tu me le confirmer

et sinon xiste il une soluce

merci

----------


## virgul

oui effectivement c'est vrai Form Services de Sharepoint 2007 ne supporte pas toute les fonction d'infopath en mode client.

Y a pas de soluce si ce n'est de faire avec ces limitations.

Sinon tu peux si tu dveloppe avec Infopath 2003 utiliser ce qu'on appelle des Viewers (c'est un peu le mme chose que Form Service) qui est fabriqu par des entreprise partenaire de Microsoft:

www.Qdabra.com
www.infoscope.co.kr
www.infoview.net
http://www.infojetsoft.com/
... (y en a encore si tu veux la liste complte dit-le moi)

et le gratuit:
http://www.adep-france.fr/v2/decouvr...connector.html
qui est en francais

----------

