Hallo zusammen!
Erst mal will ich mich bei allen bedanken, die dazu beigetragen haben, dass das Forum mit vielen nützlichen Informationen und Tipps befüllt ist.
ich arbeite nicht so lange mit lotus notes und habe (bis jetzt) immer eine Lösung für meine Probleme gefunden. (Danke euch)
Leider habe ich noch ein Paar Probleme, die für die Experten unter euch keine sind. ich habe vorher stundenlange im Forum gesucht aber leider ohne Erfolg.
Ich arbeite mit dem Notes Domino Designer 6.5.1
Also... mein erstes Problem ist wie folgt:
ich habe eine Ansicht erstellt. Diese enthält eine Spalte, die man editieren kann und ggf. ein neuen Eintrag einfügen kann.
Den Code in der Option "InViewEdit" habe ich mir aus der Notes Hilfe geholt und mir eingepasst.
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
REM Define variables
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim caret As String
REM Get the CaretNoteID - exit if it does not point at a document
caret = Source.CaretNoteID
If caret = "0" Then Exit Sub
REM Get the current database and document
Set db = Source.View.Parent
Set doc = db.GetDocumentByID(caret)
REM Select the request type
Select Case Requesttype
Case QUERY_REQUEST
REM Reserved - do not use in Release 6.0
Case VALIDATE_REQUEST
REM Cause validation error if user tries to exit column with no value
If Fulltrim(Columnvalue(0)) = "" Then
Messagebox "You must enter a value",, "No value in column"
Continue = False
End If
Case SAVE_REQUEST
REM Write the edited column view entries back to the document
For i = 0 To Ubound(Colprogname) Step 1
Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
Next
REM Save(force, createResponse, markRead)
Call doc.Save(True, True, True)
Case NEWENTRY_REQUEST
REM Create document and create "Form" item
REM Write column values to the new document
Set doc = New NotesDocument(db)
Call doc.ReplaceItemValue("Form", "Module")
For i = 0 To Ubound(Colprogname) Step 1
Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
Next
REM Save(force, createResponse, markRead)
Call doc.Save(True, True, True)
End Select
End Sub
Soweit ist alles gut und funktioniert.
Aber wenn ich einen Feld direkt in der Ansicht ändern möchte und den wert Lösche und doch den vorgang abbrechen möchte (aus irgendein Grund) geht das gar nicht und den Alten Wert bekomme ich auch nicht zurück ??!!
ich habe den Code an der Stelle
Case VALIDATE_REQUEST
REM Cause validation error if user tries to exit column with no value
If Fulltrim(Columnvalue(0)) = "" Then
Messagebox "You must enter a value",, "No value in column"
Continue = False
End If
von "Continue = False" --> in "Continue = True" geändert, ich bekomme zwar die Meldungen angezeigt und ich kann auch weiter gehen aber den Wert in der Feld wird gelöscht und es bleibt leer?!
Gibt es vielleicht einen Weg, den Alten wert wieder reinzuschreiben oder vielleicht eine möglichkeit abzubrechen und die Datenbank zu schließen ohne den Wert zu löschen ?!
meine zweite Problem hängt auch vom ersten ab:
ich habe eine Maske erstellt und in der Maske habe ich ein editierbares Feld "Dialog List" eingebaut. in das feld hole ich die Werte aus der oben genannte Ansicht mittels den Code: @DbColumn("":"nocache";"";"Module";1).
Wenn jetzt der Admin (der allein die Rechte hat, einen Eintrag in der Ansicht zu ändern bzw. zu löschen) einen Eintrag ändert soll auch die Werte, die schon in der Dokumente gespeicherte sind entsprechen geändert werden bzw. beim Löschen eine Eintrag eine Fehle Meldung erscheinen, falls der Wert noch in einen Dokument existiert.
ich hoffe ich könnte das Problem so gut wie möglich schildern und mir jemanden helfen kann
Vielen Dank nochmal
Gruss
Salih