Page 1 sur 1

Ouverture de pièce jointe dans application (word excel ...)

MessagePublié: 10 Sep 2007 à 07:23
par vangelis
Bonjour,

Pour que le code ci dessous fonctionne il faut être sous IE et avoir "Contrôle d'initialisation et de script non reconnu" coché à Activé.

Il vous suffit alors d'intégrer cette fonction :

[syntax="javascript"]
function execAppli(param){
var app;
var extension = param.substring(param.lastIndexOf("."));

switch (extension) {
case ".doc":
app = "winword";
break;
case ".xls":
app = "excel";
break;
case ".ppt":
app = "POWERPNT";
break;
case ".pdf":
app = "AcroRd32";
break;
}

var wshShell = new ActiveXObject("WScript.Shell");
wshShell.Run(app + ".exe " + param, 1, true);
}[/syntax]

Puis sur le lien de votre piece jointe d'appeller cette fonction :


[syntax="Formula"]NomFichier := @ReplaceSubstring(@AttachmentNames;" ";"%20");

@If(!@Attachments; @Return("Il n'y a aucun fichier attaché a ce document."); "");
@Implode("<img src=\"/icons/vwicn005.gif\"><a href=\"#\" onclick=execAppli(" + "\"http://votre-serveur-web.fr//Bureautique//form_sonia.nsf//"+@Text(@DocumentUniqueID) +"//$file//"+ NomFichier +"\")>"+@AttachmentNames + "</a><br>" ;@NewLine)
[/syntax]

Le @ReplaceSubstring(@AttachmentNames;" ";"%20"); -> Me permet de remplacer les espaces dans le nom de mes fichiers sinon il s'arreté au premier mot.

Voila j'espère que ca vous servira =)

MessagePublié: 10 Sep 2007 à 15:11
par Michael DELIQUE
une version plus complete du @replaceSubstring pour renommer les noms de fichier

Code : Tout sélectionner
NomFichier:=@If(@AttachmentNames=""; "";@ReplaceSubstring(@AttachmentNames;
"   ":" ":"\"":"#":"&":"(":")":",":"/":":":";":"<":"=":">":"?":"@":"[":"\\":"]":"^":"'":"{":"|":"}":"~" : "à":"â":"ä":"ç":"é":"è":"ê":"ë":"î":"ï":"ô":"ö":"ù":"û":"ü":"+":"°"  ;
"%09":"%20":"%22":"%23":"%26":"%28":"%29":"%2C":"%2F":"%3A":"%3B":"%3C":"%3D":"%3E":"%3F":"%40":"%5B":"%5C":"%5D":"%5E":"%27":"%7B":"%7C":"%7D":"%7E":
"%E0":"%E2":"%E4":"%E7":"%E9":"%E8":"%EA":"%EB":"%EE":"%EF":"%F4":"%F6":"%F9":"%FB":"%FC":"%2B":"%B0"));

MessagePublié: 11 Sep 2007 à 15:58
par YoGi
Michael DELIQUE a écrit:une version plus complete du @replaceSubstring pour renommer les noms de fichier

Code : Tout sélectionner
NomFichier:=@If(@AttachmentNames=""; "";@ReplaceSubstring(@AttachmentNames;
"   ":" ":""":"#":"&":"(":")":",":"/":":":";":"<":"=":">":"?":"@":"[":"\":"]":"^":"'":"{":"|":"}":"~" : "à":"â":"ä":"ç":"é":"è":"ê":"ë":"î":"ï":"ô":"ö":"ù":"û":"ü":"+":"°"  ;
"%09":"%20":"%22":"%23":"%26":"%28":"%29":"%2C":"%2F":"%3A":"%3B":"%3C":"%3D":"%3E":"%3F":"%40":"%5B":"%5C":"%5D":"%5E":"%27":"%7B":"%7C":"%7D":"%7E":
"%E0":"%E2":"%E4":"%E7":"%E9":"%E8":"%EA":"%EB":"%EE":"%EF":"%F4":"%F6":"%F9":"%FB":"%FC":"%2B":"%B0"));


et @URLEncode, non ?

MessagePublié: 11 Sep 2007 à 18:45
par Michael DELIQUE
exact, mais j'avais la fonction dans un coin !

MessagePublié: 19 Sep 2007 à 15:53
par Michael DELIQUE
re,

une autre solution en modifiant la base de registre de l'utilisateur. Validé avec Office 2002

il suffit de créer un .reg avec ceci :

Code : Tout sélectionner
REGEDIT4

// Registry file generated by the Application Launcher.

[HKEY_LOCAL_MACHINE\SOFTWARE]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
"BrowserFlags"=dword:00000008

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.8]
"BrowserFlags"=dword:00000008

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8]
"BrowserFlags"=dword:00000008