# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  [Infopath 2007] fermeture form

## stephane eyskens

Salut,

Alors a parat on ne peut plus simpliste mais je n'ai pas trouv comment fermer un form en code behind et en mode web.

Par la mme occasion, je n'ai pas trouv non plus comment envoyer un message  l'utilisateur (un alert js en somme)......comme je suis dans le mode web, on peut oublier MessageBox et j'ai vu qu'en infopath 2003 il y avait un XDocument.UI.Alert... qui n'a plus l'air d'exister. Donc en gros, deux questions en une mais bon, c'est du mme accabi


- Comment envoyer un message  l'utilisateur en mode web en code behind
- Comment fermer le formulaire en code behind

Je prcise que je sais qu'on peut utiliser les "rules" mais j'aimerais le faire en code behind.

Merci

----------


## virgul

Salut,

Dans FormErrorCollection.FormError tu as une mthode Modal compatible avec le web.

Pour fermer tu as bien close et quit mais il ne sont compatible avec le web donc je ne peux te rpondre... Je vais regarder si je trouve quelquechose

----------


## stephane eyskens

Salut,

Merci pour ta rponse. Je suis toujours pas au travail  cause des embouteillages mais ds que je peux je teste. Apparemment il y aurait une mthode close  xmlform, je verrai a.

Merci  :;):

----------


## virgul

> Salut,
> 
> Merci pour ta rponse. Je suis toujours pas au travail  cause des embouteillages mais ds que je peux je teste. Apparemment il y aurait une mthode close  xmlform, je verrai a.
> 
> Merci


Chouette quelle chance les embouteillage   ::aie::  

comme je te le disait close de xmlform n'est pas compatible web donc tu ne trouveras pas ton bonheur avec ca.

D'ailleurs je sais plus ou sur MSDN (je te donne le lien si je le retrouve) mais j'ai trouv un pdf au format A3 qui te reprsente le modle object d'Infopath et avec une toile a cot si ce n'est pas compatible form service.

----------


## stephane eyskens

> Chouette quelle chance les embouteillage   
> 
> comme je te le disait close de xmlform n'est pas compatible web donc tu ne trouveras pas ton bonheur avec ca.
> 
> D'ailleurs je sais plus ou sur MSDN (je te donne le lien si je le retrouve) mais j'ai trouv un pdf au format A3 qui te reprsente le modle object d'Infopath et avec une toile a cot si ce n'est pas compatible form service.


Ce serait bien en effet si tu le retrouves  ::): . Par contre formerror & formerrorcollection chez moi sont vides. L'intellicense ne me montre que deux choses pour chacune des deux "equals et referenceequals" donc pas de "modal"  l'horizon.  ::(:

----------


## stephane eyskens

Presque chaque fois que je trouve une doc, a parle de Xdocument comme ici par exemple

http://msdn2.microsoft.com/en-us/library/bb229821.aspx

Sauf que chez moi Xdocument c'est comme FormError etc, je ne peux pas les instancier et elles ne contiennent aucune mthode. 

Est-ce que l'un d'entre-vous aurait un exemple concret d'utilisation de Xdocument? J'ai lu dans une autre ressource MIcrosoft que normalement la variable "thisXdocument" tait automatiquement instancie au dmarrage etc... mais ce n'est pas le cas chez moi, je commence  tourner bourrique avec infopath donc si vous avez une ide, elle sera bienvenue 

Merci

----------


## virgul

Ok une clarification s'impose:

XDocument et thisXDocument viennent du modle object de 2003 un pour les Script (XDocument) et l'autre pour .Net (thisXDocument)

XmlForm quand a lui est pour le modle object 2007.

Dans Form Services seul le modle object de 2007 fonctionne.

Si tu fais XmlForm.Errors.FormErrorcollection.FormError tu n'as pas ErrrorMode ou Modal?

----------


## virgul

Voila je l'ai retrouv:

http://download.microsoft.com/downlo...ctModelMap.pdf

----------


## stephane eyskens

> Ok une clarification s'impose:
> 
> XDocument et thisXDocument viennent du modle object de 2003 un pour les Script (XDocument) et l'autre pour .Net (thisXDocument)
> 
> XmlForm quand a lui est pour le modle object 2007.
> 
> Dans Form Services seul le modle object de 2007 fonctionne.
> 
> Si tu fais XmlForm.Errors.FormErrorcollection.FormError tu n'as pas ErrrorMode ou Modal?


Ben non, directement en dessous de XmlForm je n'ai que Equals et ReferenceEquals, je n'ai aucune autre proprit/mthode et c'est le cas avec toutes les classes x...qqchose...

Y a truc qui m'cappe mais je vois pas quoi.

[edit]
encore un autre truc, dans ce lien http://msdn.microsoft.com/msdnmag/is.../InfoPath2007/ microsoft parle de Xdocument au niveau de infopath2007....
[/edit]

----------


## virgul

Dsol mais n'ayant pas encore pass dans le nouveau modle object je ne peux pas vraiment t'en dire plus...

----------


## virgul

Une solution serait de le faire avec une rgle dans Infopath mais je ne sais pas si ca marche dans ton cas?

Attention ne jamais oublier:
*Infopath xecute d'abord les rgles dfinit dans l'UI et ensuite le code*

----------


## stephane eyskens

> Une solution serait de le faire avec une rgle dans Infopath mais je ne sais pas si ca marche dans ton cas?
> 
> Attention ne jamais oublier:
> *Infopath xecute d'abord les rgles dfinit dans l'UI et ensuite le code*



Ben si avec des rgles je peux le faire comme je l'avais dit dans mon premier post 




> Je prcise que je sais qu'on peut utiliser les "rules" mais j'aimerais le faire en code behind.


  :;):   mais bon a m'arrange pas car je ne peux associer la rgle qu' un bouton et je ne veux justement pas laisser le choix  l'utilisateur de cliquer ou non sur ce bouton  ::): .

Si au moins on pouvait crer une rgle que l'on peut ensuite excuter via le code behind, a irait mais l, on dirait qu'ils ont compltement verrouiller le truc.. c'est assez nul. C'est la mme chose pour changer de vue, via une rgle et un bouton c'est trs bien, via le code c'est foireux sauf si tu associes celui-ci  un bouton justement....Je voulais par ex, afficher une vue automatiquement en fonction de l'utilisateur logg, videmment je faisais a dans le loading event mais bien sr a plante....bref, je commence  me dire qu'infopath n'est pas trs intressant lorsqu'il est coupl  forms services car trop limit.  ::?:  

Merci beaucoup pour ton aide  :;):

----------


## virgul

> Ben si avec des rgles je peux le faire comme je l'avais dit dans mon premier post 
> 
>   mais bon a m'arrange pas car je ne peux associer la rgle qu' un bouton et je ne veux justement pas laisser le choix  l'utilisateur de cliquer ou non sur ce bouton .


EXcuse j'avais un peu oubli ca mais y doit surement y avoir une solution.




> Si au moins on pouvait crer une rgle que l'on peut ensuite excuter via le code behind, a irait mais l, on dirait qu'ils ont compltement verrouiller le truc.. c'est assez nul. C'est la mme chose pour changer de vue, via une rgle et un bouton c'est trs bien, via le code c'est foireux sauf si tu associes celui-ci  un bouton justement....Je voulais par ex, afficher une vue automatiquement en fonction de l'utilisateur logg, videmment je faisais a dans le loading event mais bien sr a plante....bref, je commence  me dire qu'infopath n'est pas trs intressant lorsqu'il est coupl  forms services car trop limit.  
> 
> Merci beaucoup pour ton aide


Y a une solution pour le onload:

http://infopathdev.com/blogs/agni/ar...Slow-View.aspx

 il faut faire ton changement de vue dans le onswitchview et pas dnas le oncontextchange pour que ca marche dans 2007.


Sinon je partage ton avis, si tu veux faire du web utilise les mthodes du web (AJAX par ex.).

Pour moi Form Services est inutile et je ne comprend pas pourquoi microsoft a fait ca en sachant de toute facon qu'il ne supporterait pas la totalit du modle Object... Il aurait mieux fait de se concentrer sur la fonctionnalit de ce produit et laisser au petites entreprises externe grer le viewer (Infoscope, Infoview, Infojet, ...) qui supporte bien mieux le modle objet de 2003 que eux le 2007.

Pour moi c'est un non sense...

----------


## stephane eyskens

Merci mais a marche pas non plus en 2007 l'histoire de la vue dans ton lien  ::): . On a que 4 events lis  un form (loading, viewswitch*ed*,submit et versionupgrade)

Non,  part associer un viewinfos.switchview(lavue)  un bouton ou  un onchange d'un contrle, on peut rien faire  ::roll::

----------


## virgul

> Merci mais a marche pas non plus en 2007 l'histoire de la vue dans ton lien . On a que 4 events lis  un form (loading, viewswitch*ed*,submit et versionupgrade)
> 
> Non,  part associer un viewinfos.switchview(lavue)  un bouton ou  un onchange d'un contrle, on peut rien faire


Pas bien compris...

Ce qui veux dire que quand tu charge ton form le onviewswitched n'est pas dclancher?

----------


## stephane eyskens

> Pas bien compris...
> 
> Ce qui veux dire que quand tu charge ton form le onviewswitched n'est pas dclancher?



Si mais tu ne peux pas switcher de vue dans onviewswitched car il te sort une erreur  ::): .

Par contre, je viens de me rendre compte d'un truc lamentable:

en fait mme via une rule c'est pas possible d'envoyer un message  l'utilisateur car c'est incompatible avec forms services  :8O:  . Donc en ralit, il parat tout simplement impossible de faire l'quivalent d'un "alert('toto');" car aprs tout ce n'est que a....dans une browser form. Avoue que c'est quand mme assez incroyable a non?

----------


## virgul

C'est bien ce que je dit c'est un non-sense ce Form-Service tant qu'il ne supportera pas COMPLETEMENT le modle object d'InfoPath.

Mais c'est vrai que c'est bien naze un truc comme ca!!

----------


## stephane eyskens

> C'est bien ce que je dit c'est un non-sense ce Form-Service tant qu'il ne supportera pas COMPLETEMENT le modle object d'InfoPath.
> 
> Mais c'est vrai que c'est bien naze un truc comme ca!!


 ::mouarf::  

Mais bon, tout n'est pas noir. Il a quand mme de grandes qualits, je pense aux sections auto-extensibles,  tout ce qui touche  la validation, c'est pas mal du tout mais c'est dommage d'tre confront  des limitations aussi "simplistes".  :;):

----------


## virgul

Tout  fait Form service est fait pour des formulaire simple et pour les personnes qui n'ont pas besoin de connaissance approfondi en programmation

----------


## stephane eyskens

Bon, je mets le topic en rsolu puisqu'il n'y a de toute faon pas de solution. Aprs renseignement, j'ai un collgue beaucoup plus avanc que moi pour tout ce qui touche  Infopath et les browser forms qui m'a confirm que ce n'tait pas possible. Donc, jusqu' preuve du contraire....

----------

