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
Thursday, October 23, 2008
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.
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, but there is a trickset col = db.FTSearch({not [myField] is present}, 0)
Saturday, September 27, 2008
Upgrade Design Folder in Lotus Notes 8
Thursday, September 25, 2008
get user name from id file
Lets think, if you should receive a name from user.id. Which approach did you choose? I made it using next function. Would be great if somebody share another approach. I think it is possible to use Notes API approach...
Dim s As New NotesSession
Dim stream As NotesStream
Dim body As Variant
Dim pathname As String
Dim strBody As String
pathname = "c:\user.id"
Set stream = s.CreateStream
If Not stream.Open(pathname, "ASCII") Then
Messagebox pathname,, "Open failed"
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox pathname,, "File has no content"
Exit Sub
End If
body = stream.Read(stream.Bytes)
Call stream.Close
Forall x In body
If x <> 0 Then
strBody = strBody & Chr(x)
End If
End Forall
Msgbox Strleft(Strrightback(strBody, "CN="), "/")
Dim s As New NotesSession
Dim stream As NotesStream
Dim body As Variant
Dim pathname As String
Dim strBody As String
pathname = "c:\user.id"
Set stream = s.CreateStream
If Not stream.Open(pathname, "ASCII") Then
Messagebox pathname,, "Open failed"
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox pathname,, "File has no content"
Exit Sub
End If
body = stream.Read(stream.Bytes)
Call stream.Close
Forall x In body
If x <> 0 Then
strBody = strBody & Chr(x)
End If
End Forall
Msgbox Strleft(Strrightback(strBody, "CN="), "/")
Subscribe to:
Posts
(
Atom
)