Lotus Notes possiblities are founded upon the concept of NotesDocument, which is just like a paper document. Paper documents are flexible because they can be updated in a breeze. For example you can add a date stamp to any paper document when it arrives to you, even if it was not created with a white space for that purpose. NotesDocuments can be individually changed as needed, both pasting in and cutting information from them.
(revised text from my own comment 12349953 at Experts-Exchange)
Some documents with web bookmarks appear in a Notes view. How do you open a bookmarked page bypassing the opening of the correspondig Notes document?
Two solutions follow: one uses Notes magic, and the other the InViewEdit event.
- Create a Dummy form, used for doing nothing (it sounds weird but works)
- Dummy: for preventing document creation, it should have a field [SaveOptions]=0 (text /computed for display)
- Dummy: for preventing form opening, it shoud have a sentence Continue = False in the QueryOpen script
- View: for inhibiting the default behaviour, in the FormFormula object write “Dummy”
- View: put the formula @UrlOpen( Bookmark ) into the QueryOpenDocument formula
now, if you double click the Bookmark document, the page (just it) appears in a new window
(revised text from my own comment 12351627 at Experts-Exchange)
Something special happens if an editable column shows a value as an icon: The SAVE_REQUEST type of the InViewEdit event is triggered as soon as the user clicks on the icon.
Sub Inviewedit(Source As NotesUIView, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
' This view has one editable column, which is for display of an icon.
' Define constants for request types
Const SAVE_REQUEST = 3
' Define variables
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim ws As New NotesUIWorkspace
Dim caret As String
' Get the CaretNoteID - exit if it does not point at a document
caret = Source.CaretNoteID
If caret = "0" Then Exit Sub
' Get the current database and document
Set db = Source.View.Parent
Set doc = db.GetDocumentByID( caret )
' Select the request type
Select Case Requesttype
Dim w As New NotesUIWorkspace
w.UrlOpen doc.URL( 0 )
Continue = False
(revised text from my own comment 12738085 at Experts-Exchange)
If your server is Win32, you could use the following function to put a page in a string. It’s based upon a service of the MSXML library, which installation is an easy task (and maybe it’s a service already running)
Function GetPage( url As String ) As String
Dim objHttp As Variant
Set objHttp = CreateObject( "Msxml2.ServerXMLHTTP" )
Call objHttp.Open( "GET", url, False )
If objHttp.status <> 200 Then
GetPage = "FAILED (status: " & objHttp.status & ")"
Dim contentType As String
contentType = objHttp.getResponseHeader( "Content-Type" )
If contentType = "text/html" Then
GetPage = objHttp.responseText
GetPage = "Not HTML (type: " & contentType & ")"
Set objHttp = Nothing
(revised text from my own comment 12271511 at Experts-Exchange)