Thursday, October 23, 2008

Just found the test-exams for Lotus Notes R7

http://dpastov.googlepages.com/

btw, does somebody have free tests for Lotus Notes R8 ? :-)

NotesDocumentCollection.IsSorted where I can use it?

I looked on this method many times and still don't understand where/how I can use it.
I really expected that new method NotesDocumentCollection.Sort(...) would in Lotus Notes later, but it did not happen. So how can I cook it? Can anybody explain me? What I see that we really can't sort collection at all...

Sub Click(Source As Button)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.FTSearch( "white wine", 0 )
If collection.IsSorted Then
Messagebox( "This collection is sorted" )
Else
Messagebox( "This collection is unsorted" )
End If
End Sub

Wednesday, October 22, 2008

edit attachment via LS

I don't know good solution for this task, so it would be cool if somebody share better way then this one.
So if you want to emulate editing of attachments via backend you can do next:
1. make edit button,.
- this button "Open attachment" should export attachment to disk and remember/save the path to the file somewhere.
Dim w As New NotesUIWorkspace
Dim s As New NotesSession
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim filename As String

Set doc = w.CurrentDocument.Document
Set rtitem = doc.GetFirstItem("Body")

If doc.HasEmbedded Then
Forall o In rtitem.EmbeddedObjects
filename = "c:\" & o.name
Call o.ExtractFile (filename)
Call doc.ReplaceItemValue("filename", filename)

Call ShellExecute(0, "Open", fileName,"", "C:\", 1)
End Forall
End If


than step #2
you should make some changes and save attachments

step #3
now we have to click on Import button, this button should remove old attachment and import new one. Something like this
Dim w As New NotesUIWorkspace
Dim s As New NotesSession
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim filename As String

Set doc = w.CurrentDocument.Document
Set rtitem = doc.GetFirstItem("Body")

If doc.HasEmbedded Then
Forall o In rtitem.EmbeddedObjects
filename = "c:\" & o.name
Call o.Remove()
Call rtitem.EmbedObject(EMBED_ATTACHMENT, "", doc.GetItemValue("filename")(0))
End Forall
End If
Call doc.ReplaceItemValue("filename", "")
Call doc.Save(True, True)

But if you read comments you will see much better solution, I should say that it is really good way to solve this task.

Monday, October 06, 2008

FTSearch on empty field

I'm facing with problem where I should get collection of documents with empty field. It means that query should look like this
set col = db.FTSearch({[myField] = ""}, 0)
We know that it does not work at all. I found a solution here
set col = db.FTSearch({not [myField] is present}, 0)