Page 1 sur 2

Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 08:44
par Dwyane24
Bonjour,
J'ai fait un masque avec plusieurs champs et un élément intégré "commande de chargement de fichier" pour que la personne qui remplit le masque puisse joindre un fichier (une photo en l'occurrence) . Je souhaiterai quand le masque est validé que cette pièce jointe apparaisse dans un champ texte riche.
Je ne sais pas si cela est possible...ce formulaire sera utilisé en web.

D'avance merci pour votre aide.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 08:54
par Michael DELIQUE
salut

la commande de chargement de fichier insert la pièce jointe directement dans le document pas dans un champ. il faut retraiter le document au webquerysave pour déplacer la piece jointe dans le champ désiré

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 09:19
par Dwyane24
Merci pour votre réponse. Par contre je ne connais pas le lotusscript donc je ne sais pas quoi mettre dans le webquerysave.
Si vous pouvez me donner un exemple ça serait sympa.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 09:25
par Michael DELIQUE
alors une initiation au LS => viewtopic.php?f=68&t=12997

Détacher un fichier => viewtopic.php?f=48&t=11940
Attacher un fichier => viewtopic.php?f=48&t=16107

plein de trucs et astuces => viewforum.php?f=20

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 13:56
par Dwyane24
Bon j'ai parcouru rapidement les liens que vous m'avez donné.
J'ai donc crée un agent "photo" avec le code suivant (trouvé ici : "http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256BC80071114F")

Sub Initialize
Dim s As New notesSession
Dim doc As notesDocument
Set doc = s.documentContext
Call WebMoveAttachment(Doc, "<Your Rich Text Field Name>")
End Sub

The subroutine "WebMoveAttachment" does the work of moving the attachment to the rich text field.

Function WebMoveAttachment(doc As notesDocument, Byval moveToFieldName As String)
' This function moves a file attached via the Web with the File Upload Control to a rich text field.
Dim s As New notesSession
Dim tempDir As String
Dim v2FileNames As Variant
Dim i As Integer
Dim attachedFile As notesEmbeddedObject
Dim filePath As String
Dim rtItem As notesRichTextItem

tempDir = s.getEnvironmentString("Directory", True)
' Put a trailing slash at the end of the directory if it is needed
If Instr(tempDir, "/") <> 0 And Right(tempDir, 1) <> "/" Then tempDir = tempDir & "/"
If Instr(tempDir, "\") <> 0 And Right(tempDir, 1) <> "\" Then tempDir = tempDir & "\"
' Get the names of all the attachments (1 or more)
v2FileNames = Evaluate("@AttachmentNames", doc)
For i = Lbound(v2FileNames) To Ubound(v2FileNames)
If v2FileNames(i) <> "" Then ' Make sure it's a valid file name
Set attachedFile = doc.getAttachment(v2FileNames(i))
filePath = tempDir & v2FileNames(i)
' Save the file on the server
Call attachedFile.extractFile(filePath)
' Create the rich text item and re-attach the file
If doc.hasItem(moveToFieldName) Then
Set rtItem = doc.getFirstItem(moveToFieldName)
' Add a couple of lines to the rich text field before re-attaching the file
Call rtItem.addNewLine(2)
Else
Set rtItem = New notesRichTextItem(doc, moveToFieldName)
End If
Call rtItem.embedObject(1454, "", filePath)
' Delete the file(s) from the server file system
Kill filePath
End If
Next ' Move on to the next file name
End Function


et dans le webquerysave : @Command([ToolsRunMacro]; "<photo>")

Je sais pas si je suis sur la bonne voie :p

merci!

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 13:59
par Dwyane24
j'ai oublié de préciser que ça ne fonctionne pas... il ne se passe rien et le document n'est pas sauvegardé, je ne le retrouve pas dans ma vue.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 26 Sep 2012 à 14:14
par Michael DELIQUE
déjà est tu certain que les <> sont dans le nom de l'agent : parceque dans le webquerysave tu appel "<photo>" si ton agent se nome juste "photo" alors tu dois mettre @Command([ToolsRunMacro]; "photo")

d'ailleur je te conseil vivement de préfixer le nom de ton agent par le type genre "agtPhoto"

ensuite je te conseil d'insérer une gestion des erreurs dans ton code => viewtopic.php?f=49&t=12054

ça aide pas mal

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 04 Oct 2012 à 16:03
par Dwyane24
Merci le script fonctionne maintenant, la pièce jointe est bien déplacée dans le champ text riche.
Par contre le fichier étant une image est-il possible qu'elle s'affiche directement dans ce champ plutôt que d'afficher le lien vers l'image seulement.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 04 Oct 2012 à 16:06
par Michael DELIQUE
suffit d'inclure dasn ton masque le code html pour afficher l'image tout simplement

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 05 Oct 2012 à 12:45
par Dwyane24
Merci mais je ne comprends pas ou inclure le code html (<img src="">) dans le masque.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 05 Oct 2012 à 13:13
par Michael DELIQUE
dans le masque a l'endroit ou tu veux que ça s'affiche, ce n'est que du html !

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 10 Oct 2012 à 13:47
par Dwyane24
Merci, désolé pour ma réponse tardive, mais je ne sais pas quoi mettre comme source dans le code html pour que ça me prenne bien le lien de l'image contenu dans mon champ texte riche.

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 10 Oct 2012 à 13:51
par Michael DELIQUE
http://Server/base.nsf/universalidVue/u ... ichier.qqc

si tu as mis une vue par défaut tu peux remplacer l'universalid de la vue par 0

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 10 Oct 2012 à 14:10
par Dwyane24
merci ça marche par contre comment faire pour récupérer à chaque fois l'ID du document et l'insérer dans l'url

Re: Insertion pièce jointe dans champ texte riche

MessagePublié: 10 Oct 2012 à 14:12
par Michael DELIQUE
en formule avec un @DocumentUniqueID mis dans un text calculé par exemple