hallo,
hier ein kleines script welches ich eben mit meinen miesen kenntnissen erstellt habe - es soll einen view durchgehen und dort für jede vorkommende maske ein text file erstellen, und und in dieses alle vorkommenden felder exportieren
funktioniert auch, es ist nur extra langsam - daher meine frage: was kann man da besser machen? bin für jeden input sehr dankbar
'Config
Const ExpServer = "............."
Const ExpDB = "........."
Const ExpView = "Export"
Const ExpPath = "C:\TEMP\"
Sub Initialize
On Error Goto Lende
Dim db As New notesdatabase("","")
Dim OutputString As String
Dim Satz As String
Dim fileNum As Integer
Dim ExportFile As String
Dim ExportPfad As String
Dim count As Long
Dim lauf As Integer
Set db = New NotesDatabase(ExpServer, ExpDB)
If db.IsOpen Then
Print( "Succesfully opened " & db.Title )
Else
Print( "Unable to open database" )
End If
Set view = db.GetView(ExpView)
If (view Is Nothing) Then
Messagebox "Keine Ansicht" & ExpView & "gefunden", 16, "Error"
Exit Sub
End If
ExportPfad = ExpPath
outputString$ = "Line " & Str(Erl) & " / Error" & Str(Err) & ": " & Error$
On Error Goto Lende
Forall form In db.Forms
'Files erstellen und Header schreiben
Exportfile$ = ExportPfad + form.name + ".txt"
ExpFields = form.Fields
Satz = ""
For dummy = 0 To Ubound(ExpFields)
Satz = Satz & ExpFields(dummy) & ";"
Next
fileNum% = Freefile()
Open Exportfile$ For Output As fileNum%
Print #fileNum%, Satz
Close fileNum%
End Forall
count = 0
Set doc = view.GetFirstDocument
'Lesen alle Dokumente
While Not ( doc Is Nothing )
Print "bearbeite dokument mit form " & doc.form(0) & " (" & Str(count) & ")"
Set next_doc = view.GetNextDocument(doc )
Set notesForm = Db.GetForm( doc.form(0) )
Satz=""
Forall field In notesform.fields
Set item = doc.GetFirstItem( field )
If item Is Nothing Then
Satz=Satz & ";"
Else
Satz=Satz & Cstr(item.Values(0)) & ";"
End If
End Forall
Exportfile$ = ExportPfad + doc.form(0) + ".txt"
fileNum2% = Freefile()
Open Exportfile$ For Append As fileNum2%
Print #fileNum2%, Satz
Close fileNum2%
count = count + 1
Set doc = next_doc
Wend
Exit Sub
Lende:
outputString$ = "Line " & Str(Erl) & " / Error" & Str(Err) & ": " & Error$
Msgbox outputstring$
Close fileNum2%
Exit Sub
End Sub