Hallo,
ich mach es kurz. Ich habe eine Datenbank "test.nsf". Enthalten ist eine Maske "testmaske", mit den Textfeldern "kartennr", "betr", "status", "puffer". Der Agent heißt "okay", er wird über einen Button aufgerufen und das ist sein Code:
Sub Initialize
Dim uiws As New NotesUIWorkspace
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument
Dim view As NotesView
Dim fileNum As Integer
Dim fileName As Variant
Dim InputStr As String
Dim delimiter As String
Dim FieldArray As Variant
Dim knrar As String
Dim pufferar As String
Dim statusrar As String
Set db = session.currentdatabase
Set view = db.GetView ("testview")
fileNum% = Freefile()
fileName = uiws.OpenFileDialog(True, "CSV-Datei auswählen", "CSV Files|*.CSV", "C:\")
delimiter = ";"
Open fileName(0) For Input As fileNum%
Line Input #1, InputStr$
Do While Not Eof(fileNum%)
Line Input #1, InputStr$
FieldArray = Split(InputStr$,delimiter)
knrar = Replace(FieldArray(0) ,Chr(34),"")
statusar = Replace(FieldArray(1) ,Chr(34),"")
pufferar = Replace(FieldArray(2) ,Chr(34),"")
If Not Isempty(FieldArray) Then
Set doc = view.GetDocumentByKey(knrar)
If Not doc Is Nothing Then
Call doc.ReplaceItemValue("status", statusar)
Call doc.ReplaceItemValue("puffer", pufferar)
Call doc.Save(True,True)
End If
End If
Loop
Close fileNum%
End Sub
Das ist der Inhalt der CSV-Datei:
"15";"Rechnungsbetrag";15,99
"15";"";
"15";"";5,99
"12";"";2,99
"12";"";
"12";"Rechnungsbetrag";12,99
"10";"";10,99
"10";"Rechnungsbetrag";20,99
"10";"";
Und so sieht die Ansicht "testview" nach Aufrufen des Agenten aus:
kartennr betr status puffer
10 11,99
11 12,99
12 13,99 Rechnungsbetrag 12,99
13 14,99
14 15,99
15 16,99 5,99
16 17,99
17 18,99
18 19,99
19 20,99
19 20,99
Soweit klappt alles, ich hab da "nur" noch zwei Probleme.
1. Momentan liest mir der Agent alle Zeilen der CSV ein. Ich möchte aber, dass er mir nur die Zeilen einliest, mit dem Wert "Rechnungsbetrag".
2. Momentan bin ich in der Ansicht "testview" darauf angewiesen, dass die Kartennr sortiert in der 1. Spalte stehen. Ich möchte aber, dass sie z.B. in der 4. Spalte unsortiert sind.
Hab gerade erst mit Lotus Script angefangen und brauche jetzt HILFE.
Danke!