Autor Thema: InViewEdit Fehlermeldungen  (Gelesen 2146 mal)

Offline tge

  • Junior Mitglied
  • **
  • Beiträge: 65
InViewEdit Fehlermeldungen
« am: 24.03.10 - 12:43:59 »
Hallo allerseits,

in einer Ansicht mit bearbeitbaren Spalten reagiert Notes in meinen Augen völlig unklar und uneinheitlich.
Diese Beispielansicht hat vier Spalten, von denen die ersten drei Spalten bearbeitbar sind. In der dritten Spalte soll kein freier Text eingegeben werden, sondern es soll sich eine Dialogbox öffnen, über die aus einer vorgegebenen Liste zulässiger Werte der gewünschte Wert ausgewählt werden kann.
Die bearbeitbaren Spalten heißen in diesem Beispiel "Position", "Art" und "LK". Die nicht bearbeitbare Spalte haben ich "Text" genannt. In dieser Reihenfolge sind die Spalten auch in der Ansicht positioniert.
Das InViewEdit-Ereignis ist folgendermaßen codiert:
Code
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
	
	Const QUERY_REQUEST = 1
	Const VALIDATE_REQUEST = 2
	Const SAVE_REQUEST = 3
	Const NEWENTRY_REQUEST = 4
	
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim doc As NotesDocument
	Dim v_LK As Variant
	Dim Kennzeichen(2) As String
	
	If Source.CaretNoteID = "0" Then Exit Sub
	
	Set db = session.CurrentDatabase
	Set doc = db.GetDocumentByID(Source.CaretNoteID)
	
	Kennzeichen(0) = "Kennzeichen 1"
	Kennzeichen(1) = "Kennzeichen 2"
	Kennzeichen(2) = "Kennzeichen 3"
	
	Select Case Requesttype
		
	Case QUERY_REQUEST
		For i= 0 To Ubound(Colprogname)
			Select Case Colprogname(i)
			Case "LK"
				v_LK = workspace.Prompt(PROMPT_OKCANCELLIST, "LK", "Bitte wählen Sie das LK aus:",, Kennzeichen)
				Call doc.ReplaceItemValue("LK", v_LK)
				Call doc.Save(True, False)
				Call workspace.ViewRefresh
				Continue = False
				Exit Sub
			End Select
		Next
		
	Case VALIDATE_REQUEST
		For i= 0 To Ubound(Colprogname)
			Select Case Colprogname(i)
			Case "Position"
				If Fulltrim(Columnvalue(0)) <> "" Then
					If Isnumeric(Fulltrim(Columnvalue(0))) = False Then
						Msgbox "Position ist nicht numerisch.", 0 + 16, "Fehler"
						Continue = False
						Exit Sub
					End If
				End If
				
			Case "Art"
				If Fulltrim(Columnvalue(0)) <> "A" And Fulltrim(Columnvalue(0)) <> "B" Then
					Msgbox "Die Art muss A oder B lauten.", 0 + 16, "Fehler"
					Continue = False
					Exit Sub
				End If
			End Select
		Next
		
	Case SAVE_REQUEST
		For i= 0 To Ubound(Colprogname)
			Select Case Colprogname(i)
			Case "Position"
				Call doc.ReplaceItemValue("Position", Fulltrim(Columnvalue(0)))
			Case "Art"
				Call doc.ReplaceItemValue("Art", Fulltrim(Columnvalue(0)))
			End Select
		Next
		'Änderungen im Dokument speichern
		Call doc.Save(True, False)
		Call workspace.ViewRefresh
		
	End Select
	
End Sub

Das funktioniert soweit so gut. Problem ist nur:
1.
Springt man in der Ansicht von der Spalte "Art" in die Spalte "LK" durch Drücken der Tab-Taste öffnet sich - wie gewünscht - die Dialogbox, auch die Auswahl eines Wertes ist möglich, aber wenn die Auswahl in der Dialogbox mit [OK] bestätigt wird, schließt Notes das Script mit der Fehlermeldung "Operation wurde auf Ihre Anforderung hin gestoppt" ab.
Klickt man dagegen direkt mit der Maus auf das Feld dieser Spalte, erscheint die Fehlermeldung nicht.
 ???
Wie kriege ich nun diese Fehlermeldung weg?
Anmerkung: Die Dialogbox_Funktion habe ich im Requesttype "QUERY_REQUEST" untergebracht, um zu verhindern dass sich das jeweilige Feld dieser bearbeitbaren Spalte für freie Eingaben, die nicht angenommen werden sollen, öffnet.

2.
Das folgende Problem habe neulich schon hier im Forum ohne Erfolg gepostet (http://atnotes.de/index.php/topic,47994.0.html). Da es gerade zum Thema passt, beschreibe ich es hier nochmal: Wird in den Spalten "Position" und "Art" ein falscher Wert (wie unter VALIDATE_REQUEST definiert) eingegeben, gibt Notes nach der selbst programmierten abschließend immer eine eigene Fehlermeldung aus "Fehler beim Validieren des Spaltenwerts".
Auch diese Fehlermeldung würde ich gern vermeiden.

Falls jemand irgendetwas zu diesen Problemen weiß, für Ratschläge und Hinweise bin ich sehr dankbar!

Viele Grüße
Thorsten

Offline JanL

  • Frischling
  • *
  • Beiträge: 1
Re: InViewEdit Fehlermeldungen
« Antwort #1 am: 17.01.11 - 13:42:30 »
Mahlzeit,

zu 2.

wenn du die 3 "continue = false" Anweisungen mal wegglässt bzw. auskommentierst, denn danach folgt eh ein "Exit Sub", sollte
die Fehlermeldung nicht mehr erscheinen.

Nachtrag: Ich stelle gerade fest, dass dann auch ein falscher Wert als Eingabe akzeptiert wird.
Also ziehe ich meinen Vorschlag zurück... hat noch wer ne Idee.?

MFG Jan
« Letzte Änderung: 17.01.11 - 14:44:22 von JanL »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz