# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath > [IP-2007] Bouton de commande Enregistrer sous.

## Pmld59

Bonjour  tous,

Je viens de crer un formulaire avec Infopath 2007 dans lequel il y a un bouton de commande "Envoyer", qui fonctionne trs bien  ::D: 

Maintenant, je veux rajouter un autre bouton de commande intitul "Enregistrer sous" qui aura comme action d'enregistrer mon formulaire dans un emplacement partag N:\Formulaires. 

En mme temps, je veux  chaque fois attribuer un nom unique  mon formulaire pour ne pas craser les formulaires dj existants dans N:\Formulaires.  Ce nom unique pourrait tre le numro de demande de mon formulaire que j'ai dj cr (numro unique).

Une fois enregistr le formulaire devrait tre ferm.

Quelqu'un aurait-il une solution  me proposer?

Merci d'avance...

Pmld59

----------


## billout rm

Bonjour,

Si vous utilisez un formulaire InfoPath client lourd (qui s'ouvre avec InfoPath et non dans le navigateur) et que vous pouvez utiliser du code manag, il est possible d'utiliser le code suivant:

if(this.New)
{
this.SaveAs("N:\Formulaires\NomUnique.xml");
}
else
{
this.Save();
}

Cordialement.

----------


## Pmld59

Bonjour billout rm,

Merci de votre rponse...

Je suis all dans proprits - bouton, puis dans modifier le code du formulaire j'ai insr le code que vous m'avez donn.
Voil ce que j'ai:

XDocument.DOM.setProperty("SelectionNamespaces", 'xmlns ::x: si="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-07-31T14:58:19" xmlns ::x: d="http://schemas.microsoft.com/office/infopath/2003"');
function CTRL67::OnClick(eventObj)
{
if(this.New)
{
this.SaveAs("N:\Formulaires\NomUnique.xml");
}
else
{
this.Save();
}

Mais quand j'appuie sur le bouton je reois un message d'erreur: Infopath ne peut pas executer cette action en raison d'une erreur dans le code du formulaire.

Y a-t-il une chose que j'ai mal faite?

Merci,







> Bonjour,
> 
> Si vous utilisez un formulaire InfoPath client lourd (qui s'ouvre avec InfoPath et non dans le navigateur) et que vous pouvez utiliser du code manag, il est possible d'utiliser le code suivant:
> 
> if(this.New)
> {
> this.SaveAs("N:\Formulaires\NomUnique.xml");
> }
> else
> ...

----------


## billout rm

Bonjour,

Oui en effet, je pense qu'il y a un problme.
Le gestionnaire d'vnement gnr correspond  du JSCRIPT selon moi : "function CTRL67::OnClick(eventObj)".

Le code que je vous ai envoy est valable pour du C# (Catgorie .Net).
Pour cela, il faut aller dans les options du formulaire (disponible depuis Outil puis dans la partie Programmation).

Une fois que vous serez pass en C#, le gestionnaire d'vnement ressemblera  cela : btnTest_Clicked(...)

Cordialement.

----------


## Pmld59

Bonjour,

Je suis all dans les options du formulaire pour mettre C#.
Mais aprs, je n'arrive plus  ouvrir le gestionnaire d'vnements...

Vous pouvez voir en pice jointe le message d'erreurs que j'obtiens (en gros, il faut installer Visual Studio pour Applications VSTA) 

Je vais voir comment l'installer et je vous tiens au courant!

Merci encore,

Pmld59

----------


## billout rm

Exact, il vous faut installer VSTA - Visual Studio Tools for Application ou VSTO - Visual Studio Tools for Office. 


Par contre, autre prcision importante du mme tonneau, il faut activer ce que l'on appelle la couche de programmabilit .Net sur tous les ordinateurs qui utilisent des formulaires avec du code manag!

Pour faire cela, il faut cocher la totalit du bloc InfoPath lors de l'installation depuis le CD Office. Il est possible de raliser ceci  postriori en allant dans le panneau "Ajout et suppression de programmes" de votre PC puis en modifiant la configuration d'office.

Cordialement.

----------


## Pmld59

Bonjour billout rm,

Il a eu une modification des besoins concernant mon formulaire...Dsol!!!

En effet, au lieu que le bouton "Enregistrer sous" enregistre le formulaire dans N:\Formulaires, il faut qu'il le stocke dans un dossier d'Outlook (Exemple: Bote de rception/Formulaire). En gros c'est un autre bouton "Envoyer", mais la destination est plus prcise.

Est ce qu'il faut que je fasse un autre post?

Merci,

Pmld59

----------


## billout rm

Bonjour,

La destination est plus prcise en effet...
Dans ce cas la, il faudrait que vous ralisiez une connexion d'envoi par mail.

Mais pourquoi ne pas directement rester dans le contexte Outlook en ralisant un formulaire InfoPath personnalis?
Vous trouverez de nombreux tutos sur le net  ce sujet:
http://blogs.msdn.com/b/tudort/archi...22/536800.aspx

N'hsitez pas pour toutes questions.

----------


## Pmld59

Merci Billout,

J'ai finalement opt pour un formulaire Outlook et c'est beaucoup plus simple (grce  votre lien).

Mieux vaut tard que jamais: Merci de votre aide.

Pmld59

----------

