Hallo liebes Forum,
ich habe eine sortierte Ansicht "editierbar" gemacht:
Die Spalten haben die Eigenschaft "bearbeitbar".
Ins Inviewedit Event habe ich folgenden Code gestellt:
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
''code for modifying only the company column and not adding new documents from view.
Const QUERY_REQUEST = 1 ' used when the user enters the editable column
Const VALIDATE_REQUEST = 2 ' used when the user exits the editable column
Const SAVE_REQUEST = 3 ' saves after validation for an existing view entry
Const NEWENTRY_REQUEST = 4 ' after validation when the user makes a new entry in a view
Dim COLUMN_FEATURE As String
Dim FIELD_FEATURE As String
' Editable column
COLUMN_FEATURE = ColProgName(0) ' programmatic name of column--see advanced tab
FIELD_FEATURE = ColProgName(0) ' field name
'Msgbox COLUMN_FEATURE,, "Spaltenname"
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesView
Set db = ws.CurrentDatabase.Database
If (Source.CaretNoteID = "0") Then Exit Sub
Set note = db.GetDocumentByID(Source.CaretNoteID) ' The Notes ID of the document currently highlighted (that is, at the caret location) in a view
If (note Is Nothing) Then Exit Sub
If (RequestType = QUERY_REQUEST) Then
If(note.HasItem(FIELD_FEATURE)) Then
Columnvalue(0) = note.GetItemValue(FIELD_FEATURE) 'Get the current (original) value to put in Edit box
Else
Continue = False 'This doc does not contain the required field; ignore it
End If
Elseif (RequestType = VALIDATE_REQUEST) Then
Continue = True 'Accept any user input
Elseif (RequestType = SAVE_REQUEST) Then
Call note.ReplaceItemValue (FIELD_FEATURE, ColumnValue(0)) 'assumes that value stored in ColumnValue(0) is the value that goes with that column.
Call note.Save(True, True, True)
Set doc = note
Call Source.SelectDocument(doc)
Elseif (RequestType = NEWENTRY_REQUEST) Then
REM Create document and create "Form" item
REM Write column values to the new document
Set doc = New NotesDocument(db)
Call doc.ReplaceItemValue("Form", "Lexikon")
Call doc.ReplaceItemValue("wortdeutsch", "")
Call doc.ReplaceItemValue("wortenglisch", "")
Call doc.ReplaceItemValue("wortfranz", "")
Call doc.ReplaceItemValue("wortschwedisch", "")
Call doc.ReplaceItemValue("wortspanisch", "")
Call doc.ReplaceItemValue("wortnorwegisch", "")
Call doc.Save( False, True )
Call doc.ReplaceItemValue(Colprogname(0), Columnvalue(0))
REM Save(force, createResponse, markRead)
Call doc.Save(True, True, True)
Set view = Source.View
Call view.Refresh()
Call Source.SelectDocument(doc)
End If
End Sub
Soweit funktioniert auch alles wunderbar. Nur habe ich ein Problem: Wenn ich den Wert in der ersten Spalte ändere, ist das Dokument erstmal "weg", d.h. es wird woanders einsortiert (die erste Spalte ist sortiert) und der Cursor bleibt aber an der alten Stelle stehen.
Nun habe ich versucht, Lotus Notes mit
Call Source.SelectDocument(doc)
dazu zu bringen, das geänderte Dokument (doc) wieder auszuwählen, aber leider funktioniert das nicht.
Habt Ihr eine Idee dazu ?
Viele Grüße
Marion