Solved

Lotus Script Help

Posted on 2004-10-05
2
581 Views
Last Modified: 2013-12-18
Hi, I'm extracting some data from an excel spread sheet and placing the values in the form I'm in.
When I'm doing this, I'm actually in the form. When I click the button this agent runs and it works fine.
But I've to back out of the document and come back in again to view the imported values.

Do I have to change something here...

here is the code:
Sub Initialize
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim view As NotesView
      Dim view1 As NotesView
      Dim doc As NotesDocument      
      Set db = session.CurrentDatabase
      Set doc = session.DocumentContext
      
      
      Let AddMANBANCount = 0
      Let UpdatedMANBANCount = 0
      Let DropMANBANCount = 0
      
      Dim FileNum As Integer
      Dim xlFilename As String
      On Error Goto Errorhandler
      Filenum% = Freefile()
      xlFileName$ = Inputbox("Enter the excel file name and path here? example:C:\filename.xls")
      
      If xlFileName$="" Then
            Messagebox "The file location was not specified correctly. Please enter the file location correctly.",,"Account Information"
            Exit Sub
      End If      
      
      Dim One As String      
      Dim row As Integer
      Dim Written As Integer
      Dim Dropped As Integer
      Dim Switch_Y As String
      
      '// Next we connect to Excel and open the file. Then start pulling over the records.
      Dim Excel As Variant
      Dim xlWorkbook As Variant
      Dim xlSheet As Variant
      Print "Connecting to Excel..."
        Set Excel = CreateObject( "Excel.Application" )
      Excel.Visible = False '// Don't display the Excel window
      Print "Opening " & xlFilename & "..."
      Excel.Workbooks.Open xlFilename '// Open the Excel file
      Set xlWorkbook = Excel.ActiveWorkbook
      Set xlSheet = xlWorkbook.ActiveSheet
      
      '// Cycle through the rows of the Excel file, pulling the data over to Notes
      Goto Records
      Print "Disconnecting from Excel..."
      xlWorkbook.Close False '// Close the Excel file without saving (we made no changes)
      Excel.Quit '// Close Excel
      Set Excel = Nothing '// Free the memory that we'd used
      Print " " '// Clear the status line
      
Records:
      Let row = 0 '// These integers intialize to zero anyway
      Let Written = 0
      Let tmpnullrows=0
      
      Print "Starting import from Excel file..."
      
      Do While True
            
Process:
            With xlSheet
                  Let row = row + 1
                  
                  If .Cells (row, 1).Value = "" Then
                        Let tmpnullrows=     tmpnullrows+1
                        If tmpnullrows=2 Then
                              Goto Done
                        End If
                        Goto Process
                        
                  End If
                  
                  If .Cells (row, 1).Value = "Accounts" Then
                        Let Switch_Y = "Y"
                        Goto Process
                  End If
                  
                  Dim EMAN As String
                  Dim EMANTrim As String
                  If Switch_Y = "Y" Then            
                        Let EMAN$ = Val(.Cells( row, 1 ).Value)
                        Dim MANItem As NotesItem
                        Set MANItem = doc.GetFirstItem("MTN")
                        
                        Let EMANTrim$ = Fulltrim(EMAN$)
                        
                        Select Case Len(EMANTrim$)
                        Case "13"                  
                              Call MANItem.AppendToTextList(EMANTrim$)  
                              Let Written = Written + 1
                              Print Written
                              Let tmpnullrows=0
                        Case "12"
                              Let EMANTrim$ = EMANTrim$ & " "
                              Call MANItem.AppendToTextList(EMANTrim$)  
                              Let Written = Written + 1
                              Print "Written Count is: " & Written & " (" & EMANTrim$ & ") "
                              Let tmpnullrows=0
                        Case "10"
                              EMANTrim$ = EMANTrim$ & "   "
                              Call MANItem.AppendToTextList(EMANTrim$)    
                              Let Written = Written + 1
                              Print "Written Count is: " & Written & " (" & EMANTrim$ & ") "
                              Let tmpnullrows=0
                        Case Else
                              Let Dropped = Dropped + 1
                              Print "Dropped Count is: " & Dropped & " (" & EMANTrim$ & ") "
                              Let tmpnullrows=0
                        End Select                        
                  End If      
                  
                  Call doc.Save( True, True ) '// Save the new doc
                  
                  Goto Process
                  
            End With
      Loop
      Return
      
      
Errorhandler:
      Print "Error" & Str(Err) & ": " & Error$
      Resume Next
      
Done:
      Print "Done"
      
End Sub
0
Comment
Question by:chakrika
2 Comments
 
LVL 2

Accepted Solution

by:
kalios earned 500 total points
ID: 12229227
Chakrika

Replace this

Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim view As NotesView
     Dim view1 As NotesView
     Dim doc As NotesDocument    
     Set db = session.CurrentDatabase
     Set doc = session.DocumentContext


with

                Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Dim doc As NotesDocument
      
      Set uidoc = workspace.CurrentDocument
      Set doc = uidoc.Document

Kalios
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 12229297
You need to use the NotesDocument coming from the open form, so that there is an association between the UI and back end.  DocumentContext won't give that to you.

Dim ws as New NotesUiWorkspace
Dim doc as nptesDocument
Set doc = ws.currentDocument.document 'ws.currentDocument is the notesUiDocument object that represents the open form, currentDocument.document is a notesDocument that is synced into the currentDocument
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Lack of Storage capacity is a common problem that exists in every field of life. Here we are taking the case of Lotus Notes Emails, as we all know that we are totally depend on e-communication i.e. Emails. This article is fully dedicated to resolvin…
Article by: Rob
Notes 8.5 Archiving Steps and Tips This article covers setting up a Notes archive, and helps understand some of the menu choices making setting up and maintaining a Notes archive file easier.
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now