<< 09 September 2007 | Home | 11 September 2007 >>

Eclipse and IBM

It sure sounds like IBM Lotus plans to keep up with the Eclipse releases for the Expeditor and hence the Notes 8 platform. This is great. At least that is what John Head quotes Ed Brill as saying the the Collaboration University keynote. This is at least what I take from "Mac Beta in 8.0.1 ... Eclipse 3.4 required and not ready yet"...

LocationDocument LotusScript class updated

I updated my LocationDocument LotusScript class again for Location type (Local Area Network, No connection etc.) and for mail server name. It makes it really easy to quickly get at location document information from script.

See the original post for usage.

'/**
' * LotusScript class for interacting with location documents 
' * in the personal name and address book.
' */
Public Class LocationDocument
   'declarations
   Private pSession As NotesSession
   Private pDb As NotesDatabase
   Private pDoc As NotesDocument
   
   '/**
   ' * Constructor
   ' */
   Public Sub New(get_location As String)
      'declarations
      Dim viewNab As NotesView
      Dim nn As NotesName
      Dim ini_location As String
      Dim location As String
      Dim comma As Integer
      
      'get session
      Set Me.pSession = New NotesSession()
      
      If get_location = "" Then
         'get the location from notes.ini
         ini_location = Me.pSession.GetEnvironmentString("Location", True)
         
         'parse out the location name if none specifed in the constructor
         comma = Instr(1, ini_location, ",")
         location = Mid$(ini_location, 1, comma-1)
      Else
         'use supplied location name
         location = get_location
      End If
      
      'abbreviate the name
      Set nn = New NotesName(location)
      location = nn.Abbreviated
      
      'get database and view
      Set Me.pDb = Me.pSession.GetDatabase("", "names.nsf")
      Set viewNab = Me.pDb.GetView("Locations")
      
      'lookup location document
      Set Me.pDoc = viewNab.GetDocumentByKey(location, True)
      If Me.pDoc Is Nothing Then
         Error 9999, "Location document not found in names.nsf"
      End If
   End Sub
   
   '/**
   ' * Saves.
   ' */
   Public Sub Save()
      Call Me.pDoc.Save(False, False)
   End Sub
   
   '/**
   ' * Property to get the backend document.
   ' */
   Public Property Get Document As NotesDocument
      Set Document = Me.pDoc
   End Property
   
   '/**
   ' * Property to get the e-mail address.
   ' */
   Public Property Get EmailAddress As String
      EmailAddress = Me.pDoc.GetItemValue("ImailAddress")(0)
   End Property
   
   '/**
   ' * Returns the name of the directory server.
   ' */
   Public Property Get DirectoryServer As NotesName
      If Me.LocationType = "3" Then
         Set DirectoryServer = Nothing
      Else
         Dim nn As New NotesName(Me.pDoc.GetItemValue("DirectoryServer")(0))
         Set DirectoryServer = nn
      End If
   End Property
   
   '/**
   ' * Sets the name of the directory server.
   ' */
   Public Property Set DirectoryServer As NotesName
      Call Me.pDoc.ReplaceItemValue("DirectoryServer", DirectoryServer.Canonical)
   End Property
   
   '/**
   ' * Returns the name of the Sametime server.
   ' */
   Public Property Get SametimeServer As NotesName
      If Me.LocationType = "3" Then
         Set SametimeServer = Nothing
      Else
         Set SametimeServer = New NotesName(Me.pDoc.GetItemValue("SametimeServer")(0))
      End If
   End Property
   
   '/**
   ' * Sets the name of the Sametime server.
   ' */
   Public Property Set SametimeServer As NotesName
      Call Me.pDoc.ReplaceItemValue("SametimeServer", SametimeServer.Canonical)
   End Property
   
   '/**
   ' * Returns the name of the mail server.
   ' */
   Public Property Get MailServer As NotesName
      If Me.LocationType = "3" Then
         Set MailServer = Nothing
      Else
         Set MailServer = New NotesName(Me.pDoc.GetItemValue("MailServer")(0))
      End If
   End Property
   
   '/**
   ' * Sets the name of the mail server.
   ' */
   Public Property Set MailServer As NotesName
      Call Me.pDoc.ReplaceItemValue("MailServer", MailServer.Canonical)
   End Property
   
   '/**
   ' * Returns the location type.
   ' * 
' * Local Area Network = "0" ' * Notes Direct Dialup = "1" ' * Network Dialup = "4" ' * Custom = "2" ' * No connection = "3" ' */ Public Property Get LocationType As String LocationType = Me.pDoc.GetItemValue("LocationType")(0) End Property End Class

Print from Adobe Acrobat using OLE

Just to have it somewhere... The code is from Visual Basic 6 with reference to the Acrobat TLD.

Private Sub Command1_Click()
    Dim doc As New AcroAVDoc
    If doc.Open("c:\test.pdf", "PDF Print") Then
        Dim numPages As Long
        numPages = doc.GetPDDoc().GetNumPages
        Debug.Print "Document has " & numPages & " page(s)..."
        If doc.PrintPagesSilent(0, numPages - 1, 0, True, True) Then
            Debug.Print "Printed document..."
        End If
    Else
        MsgBox "failed to open document"
    End If
    
    If Not (doc Is Nothing) Then
        Call doc.Close(True)
    End If
End Sub

Tags :