par JfCt » 26 Nov 2010 à 16:01
Bonjour
Cela vient de ce que tu es pas positionne sur le bon document quand tu ouvres la boite de dialogue.
En effet, quand tu fais un set doc=collection.getfirstdocument, tu as bien le premier document que tu as selectionne, le premier qui est coche dans la marge.
Par contre, quand tu ouvres la dialogbox, le document qui est associe a cette dialogbox n'est pas celui que tu crois (le doc precedent), mais le document courrant dans la vue, donc celui qui est encadre dans la vue.
J'ai fait le test avec le script ci dessous (voir les commentaires) :
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim Db As NotesDatabase
Dim Ws As New NotesUIWorkspace
Dim UiView As NotesUIView
Dim Collection As NotesDocumentCollection
Dim Doc As notesdocument
Dim Temp As String
Set Db=Session.currentdatabase
Set UiView=Ws.CurrentView
Set Collection=UiView.Documents
' Se positionner sur le document courant dans la vue (l'encadre)
Set Doc=Db.GetDocumentByID(UiView.CaretNoteID)
' Ouvrir la dialogbox sur ce document
Call Ws.DialogBox ("TEST", True, True, False, False, False, False, "TEST", Doc)
' Recuperer la valeur saisie dans le champe de la dialogbox
Temp=Doc.Categorie(0)
' Se positionner sur le 1er document de la collection, donc le premier doc coche dans la vue
Set Doc=Collection.Getfirstdocument
' La bouche de traitement des documents selectionnes (coches)
While Not Doc Is Nothing
Doc.Toto=Temp
Call doc.Save( True, True )
Set Doc=Collection.getnextdocument(Doc)
Wend
' Decocher tous les docs en sortant
Call UiView.DeselectAll
End Sub
PS : ne pas oublier d'ajouter le traitemenr d'erreur .....