Pièce jointe insérée automatiquement à la création

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Pièce jointe insérée automatiquement à la création

Messagepar Cyril Niang » 11 Fév 2011 à 11:31

Bonjour,

J'ai lu et relu plusieurs posts sur les pièces jointes, mais je n'ai pas trouvé un qui puisse répondre à mon besoin.

J'ai un fichier modèle excel que je dois insérer à chaque création de mon masque. J'ai créé un document de configuration dans lequel il y a un RT où j'ai enregistré le fichier.
Au postopen de mon formulaire j'exécute ce code :
Code : Tout sélectionner
   Dim s As NotesSession
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim docProfile As NotesDocument
   Dim vueConnex As NotesView
   Dim docConfProfile As NotesDocument
   Dim ItemConfig As NotesRichTextItem
   Dim ItemForm As NotesRichTextItem
   
   Set s = New Notessession
   Set db = s.CurrentDatabase
   Set vueConnex = db.GetView("vLkpConfig")
   Set doc = Source.Document
   Set docConfProfile = vueConnex.getfirstdocument
   
   Set ItemConfig = docConfProfile .GetFirstItem( "ModeleFiche" )
   Set ItemForm = New NotesRichTextItem(doc, "FicheGoNoGo" )
   Call ItemForm.AppendRTItem(ItemConfig)


Voilà si quelqu'un a une idée car il y a une solution qui consiste à "détacher/rattacher" mais je la trouve lourde et j'ai l'impression qu'elle supprimera mon fichier de mon doc profile!

Merci
Dernière édition par Cyril Niang le 15 Fév 2011 à 01:01, édité 1 fois.
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar Michael DELIQUE » 11 Fév 2011 à 12:37

fait un save avant pour voir !

sinon un uidoc.refresh(true)
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Cyril Niang » 11 Fév 2011 à 13:27

Je ne peux pas faire un save car il y a un contrôleur de champs obligatoires.
Sinon pour le Source.Refresh(True), il ne se passe rien !!
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar Cyril Niang » 11 Fév 2011 à 14:02

J'ai mis ce code pour tester :
Code : Tout sélectionner
If Isarray(ItemA.EmbeddedObjects) Then
   Forall o In ItemA.EmbeddedObjects
      If (o.Type = EMBED_ATTACHMENT) Then
         Msgbox o.Name
      End If
   End Forall
End If


Et il m'affiche bien le nom du fichier en question qui se trouve dans mon champ.
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar Cyril Niang » 11 Fév 2011 à 17:29

Bon j'ai trouvé une solution :
Code : Tout sélectionner
   Dim s As NotesSession
   Dim w As New NotesUIWorkspace
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim docProfile As NotesDocument
   Dim vueConnex As NotesView
   Dim docExportProfile As NotesDocument
   Dim ItemA As NotesRichTextItem
   Dim ItemB As NotesRichTextItem
   
   Set s = New Notessession
   Set db = s.CurrentDatabase
   Set vueConnex = db.GetView("vLkpConfig")
   Set doc = Source.Document
   Set docExportProfile = vueConnex.getfirstdocument
   
   Set ItemA = docExportProfile.GetFirstItem( "ModeleFiche" )
   Set ItemB = New NotesRichTextItem(doc, "FicheGoNoGo" )
   
   Call ItemB.AppendRTItem(ItemA)   
   Call ItemB.Update
   Call doc.Save(False, True)
   Call w.EditDocument(True, doc,,,, False)


Je sauve et je réouvre le document en mode édition. Seulement voilà il me créé un autre nouveau document sur un nouvel onglet!
Je sais pas pourquoi?
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar Cyril Niang » 11 Fév 2011 à 17:38

Voici l'illustration; L'onglet du milieu est celui qui contient bien mon fichier joint dans mon formulaire.
Le troisième onglet (à droite) et une nouvelle fenêtre qui s'ouvre, je ne sais pas pourquoi ?[/img]
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar abertisch » 14 Fév 2011 à 08:23

Salut.

Ferme ton document avec "close()" du notesuidocument avant de le réouvrir :wink:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Cyril Niang » 14 Fév 2011 à 09:30

Salut,

Merci de ta réponse, elle résout mon problème mais cela m'affiche la boite de dialogue (voir PJ).

Le code que j'ai mis est le suivant :
Code : Tout sélectionner
   Dim s As New Notessession
   Dim w As New NotesUIWorkspace
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim vueConnex As NotesView
   Dim docProfile As NotesDocument
   Dim ItemA As NotesRichTextItem
   Dim ItemB As NotesRichTextItem
   Dim uidoc As NotesUIDocument
   
   Set db = s.CurrentDatabase
   Set vueConnex = db.GetView("vLkpConfig")
   Set doc = Source.Document
   Set uidoc = Source
   Set docProfile = vueConnex.getfirstdocument
   
   Set ItemA = docProfile.GetFirstItem( "ModeleFiche" )
   Set ItemB = New NotesRichTextItem(doc, "FicheGoNoGo" )
   
   Call ItemB.AppendRTItem(ItemA)   
   
   Call doc.Save(True, False)
   
   doc.saveoptions = "0"
   Call uidoc.Close
   'Call Source.Close
   
   Set doc = Source.document
   
   Set uidoc = w.EditDocument(True, doc,,,, False)
   
   Set doc = uidoc.Document
   doc.saveoptions = "1"
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar abertisch » 14 Fév 2011 à 10:05

Re,

Déplace ton doc.saveoptions = "0" avant la sauvegarde de ton document (call doc.save())
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Cyril Niang » 14 Fév 2011 à 10:24

Re,

Non ça ne change rien, je ne comprends pas pourquoi ça le fait!
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar abertisch » 14 Fév 2011 à 10:35

J'ai fait 1-2 modifications sur ton code :

Code : Tout sélectionner
Dim s As New Notessession
   Dim w As New NotesUIWorkspace
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim vueConnex As NotesView
   Dim docProfile As NotesDocument
   Dim ItemA As NotesRichTextItem
   Dim ItemB As NotesRichTextItem
   Dim uidoc As NotesUIDocument
   
   Set db = s.CurrentDatabase
   Set vueConnex = db.GetView("vLkpConfig")
   Set doc = Source.Document
   Set uidoc = Source
   Set docProfile = vueConnex.getfirstdocument

Call uidoc.Save()
uidoc.EditMode=False
   
   Set ItemA = docProfile.GetFirstItem( "ModeleFiche" )
   Set ItemB = New NotesRichTextItem(doc, "FicheGoNoGo" )
   
   Call ItemB.AppendRTItem(ItemA)   
   
   doc.saveoptions = "0"
   Call doc.Save(True, False)
   
   Call uidoc.Close

   'Call Source.Close   
   'Set doc = Source.document
   
   Set uidoc = w.EditDocument(True, doc,,,, False)
   
   Set doc = uidoc.Document
   doc.saveoptions = "1"
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Cyril Niang » 14 Fév 2011 à 10:52

Je viens de tester ton code et le document est enregistré mais ne s'ouvre pas !!
Je vais essayer de chercher autre chose, même si je sais que je ne suis pas loin de la solution!
Merci pour ton aide en tout cas!
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar

Messagepar Cyril Niang » 15 Fév 2011 à 01:07

Roooooo!!! Après une bonne bouteille de pinard (St Val oblige), j'ai trouvé ce qui clochait....
J'ai encadré tout mon code par if Source.IsNewdoc
Pourquoi ? Car j'ai mis le code dans le PostOpen donc quand je fais un EditDocument (du même doc) bah il "repasse" en quelque sorte et ça faisait un peu comme une boucle infinie..
Voili voilou :
Code : Tout sélectionner
Dim s As New Notessession
   Dim w As New NotesUIWorkspace
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim docUNID As NotesDocument
   Dim vueConnex As NotesView
   Dim docProfile As NotesDocument
   Dim ItemA As NotesRichTextItem
   Dim ItemB As NotesRichTextItem
   
   Set db = s.CurrentDatabase
   Set vueConnex = db.GetView("vLkpConfig")
   Set docProfile = vueConnex.getfirstdocument
   Set ItemA = docProfile.GetFirstItem( "ModeleFiche" )
   
   If Source.IsNewDoc Then
   '1
      Set doc = Source.Document
      Call Source.Save
      
   '2
      Set ItemB = New NotesRichTextItem(doc, "FicheGoNoGo" )
      Call ItemB.AppendRTItem(ItemA)   
      
   '3
      doc.SaveOptions = "0"
      Call doc.Save(True , False)
      Call Source.Close
      
   '4
      Set docUNID = db.GetDocumentByUNID(   doc.UniversalID)
      Call w.EditDocument(True, docUNID,,,, False)
   End If


Merci à tous et qu'est ce qu'ils sont casse-c****** ces RT ..
Bonne nuit!
Cordialement

Image
Cyril Niang
Roi des posts
Roi des posts
 
Message(s) : 719
Inscrit(e) le : 16 Déc 2004 à 11:14
Localisation : Dakar


Retour vers Développement

cron