'define a Script Library with the 'following specifications
'@Name  :  locktest
'@Usage :  Necessary elements to Programatically lock a document irrespective of the version of lotus notes
'(Declarations)
'****************
Dim lockstatus As String
Dim username As NotesName
Dim flag As Boolean
'a function isbeingused()
'**************************
Function Isbeingused(source As NotesUIDocument)
    
    On Error Goto erh
    
    If source Is Nothing Then
        Msgbox "the current document handle is not set  - script library  ""locktest""",,"Exiting"
        Exit Function
    End If
    If source.IsNewDoc Then
        Exit Function
    Else
        'Msgbox  source.FieldGetText("lockingfield")
        If source.EditMode=True Then
            If lockstatus<>"" Then
                Msgbox lockstatus
                Exit Function            
            Else
                
                lockstatus = "The document is in use by "+username.Canonical+Chr(13)+  _
                "So please try again after some time"
            End If
        End If
    End If        
    Exit Function
erh:
    Msgbox "Error in script library ""locktest""" & Chr(13)  _
    & Cstr(Erl)+" "+ Error
    Exit Function
End Function
'a garbageCollector gc()
'*****************************
Function gc()
    lockstatus=""
End Function
'A function isDocumentAlreadyOpen()
'*****************************
Function isDocumentAlreadyOpen(uidoc As NotesUIDocument) As Boolean
    If lockstatus<>"" Then
        Msgbox lockstatus,,"exiting"
        
        isDocumentAlreadyOpen =False
    Else 
        isDocumentAlreadyOpen=True
    End If
    
End Function
'*********************************************************
' place the following code in a form (the document source)
'*********************************************************
'(options)
**********
Use "locktest"
'(Queryopen) event
******************
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
    On Error Goto erh
    Call Isbeingused(Source)
    Exit Sub
erh:
    Msgbox "Error in queryopen event on form ""locktest""" & Chr(13)  _
    &  Error +" on line "+Cstr(Erl)
    continue=False
    Exit Sub
    
End Sub
'(Querymodechange) event
'************************
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
    If Not( isDocumentAlreadyOpen(source)) Then 
        continue=False 
        Exit Sub
    End If
End Sub
'(Queryclose) event
'*********************
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
' nullify the locking field to allow others to access the document once u close it
    Call gc()
End Sub
 
 
Hi Sir,
ReplyDeleteI have a problem on xPage that How to upload a photo in xPage document and How to see it on both edit and read mode...?