一、Domino中的函数
Private Const CLASS_NAME = "HandleCSVFile"
Private objLog As StdLog
Public Class HandleCSVFile
Private db As NotesDatabase
Private sess As NotesSession
Private ws As NotesUIWorkspace
''Private strFullPath As String
Sub new()
On Error Goto ErrHandler
Const PROC_NAME = "New"
WriteLog PROC_NAME, PROC_START, DEBUG_LOG
Set sess = New NotesSession
Set db = sess.CurrentDatabase
Set ws = New NotesUIWorkspace
ExitPoint:
WriteLog PROC_NAME, PROC_END, DEBUG_LOG
Exit Sub
ErrHandler:
WriteLog PROC_NAME, "Line " & Cstr(Erl) & " - " & Error$ & " (" & Cstr(Err) & ")" , ERROR_LOG
Resume ExitPoint
End Sub
Public Function ImportCSVToMappingProfile(strFilePath As String)
On Error Goto ErrHandler
Const PROC_NAME = "ImportCSVToMappingProfile"
WriteLog PROC_NAME, PROC_START, DEBUG_LOG
Dim fileNum As Integer
Dim strLineData As String
Dim vntLineData As Variant
Dim counter As Integer
Dim docMappingProfile As NotesDocument
Dim dcMapping As NotesDocumentCollection
Dim docMapping As NotesDocument
Dim strFormula As String
Dim strMachineID As String
Dim strOctopusID As String
fileNum = Freefile()
counter = 0
Open strFilePath For Input As fileNum%
Do While Not Eof(fileNum%)
Line Input #fileNum%, strLineData$
vntLineData = SplitCSVValue(strLineData$) ''Machine ID + Octopus ID
counter = counter + 1
''rule out the first line
If counter > 1 Then
If vntLineData(0) <> "" And vntLineData(1) <> "" Then
strMachineID = vntLineData(0)
strOctopusID = vntLineData(1)
strFormula = {(Form="MappingProfile") & (MachineID="} + strMachineID + {")}
Set dcMapping = db.Search(strFormula,Nothing,0)
If dcMapping.Count > 0 Then
Call dcMapping.StampAll("OctopusID",strOctopusID)
WriteLog PROC_NAME, "Mapping Profile: Update Octopus ID to '" + strOctopusID + "' depending on Machine ID '"+strMachineID+"'" , INFORMATION_LOG
Else
Set docMappingProfile = New NotesDocument(db)
With docMappingProfile
.Form = "MappingProfile"
.FormType = "MappingProfile"
.MachineID = strMachineID
.OctopusID = strOctopusID
End With
Call docMapp