Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 16.08.04 - 15:14:15
-
Habe u.g. Script im Entering des Feldes b18 stehen:
Kann man den Feldnamen (b18) automatisch ermitteln lassen um die statische Bezeichnung zu hintergehen.
Sub Entering(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If uidoc.fieldgettext("b18") = "0,00" Then
Call uidoc.fieldsettext("b18", "" )
End If
Call uidoc.Refresh
-
Es geht (Im Editmode)
fieldName$ = notesUIDocument.CurrentField
Also:
Sub Entering(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
dim currentFieldName as string
Set uidoc = ws.CurrentDocument
currentFieldName = uidoc.CurrentField
If uidoc.fieldgettext(currentFieldName) = "0,00" Then
Call uidoc.fieldsettext(currentFieldName, "" )
End If
Call uidoc.Refresh
Andreas
-
Danke!
Geht das auch bei Exiting? Ohne die statische Vorgabe?
-
Danke!
Geht das auch bei Exiting? Ohne die statische Vorgabe?
Hi,
ich denke mal das geht auch im Exiting-Event. Wo siehst du eine statische Vorgabe?
Axel
-
Möchte den Feldnamen nicht direkt angeben wie z. B Feld1, sondern diesen über Script ermitteln lassen.
-
Wie kann ich im Exiting das "aktive" Feld ansprechen ohne diesen Feldnamen Fest einzugeben z. B. Feld1
Sub Exiting(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
dim currentFieldName as string
Set uidoc = ws.CurrentDocument
currentFieldName = uidoc.CurrentField
-
Du musst
dim currentFieldName as string
in den Globals der Maske deklarieren und im Entering folgendes programmieren
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
currentFieldName = uidoc.CurrentField
Dann kannst Du im Exiting auf currentFieldName zugreiden.
Das ganze UI Zeugs solltest Du auch globale deklarieren und im Postopen der Maske setzen...
Andreas
-
funktioniert leider nicht. Übernimmt den Feldnamen von dem Feld das ich als nächstes auswähle.
-
Du musst
dim currentFieldName as string
in den Globals der Maske deklarieren
und nicht lokal im Exiting/Entering.
-
Sorry, aber hab ich!
-
Sag mal an, was Du wo programmiert hast. Du brauchst
Globals - (Declarations)
Entering
Exiting
Andreas
-
Global Declaration:
Dim currentFieldName As String
Feld Entering:
Sub Entering(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
currentFieldName = uidoc.CurrentField
If uidoc.fieldgettext(currentFieldName) = "0,00" Then
Call uidoc.fieldsettext(currentFieldName, "" )
End If
Call uidoc.Refresh
End Sub
Feld Exiting:
Sub Exiting(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
currentFieldName = uidoc.CurrentField
If uidoc.fieldgettext(currentFieldName) = "" Then
Call uidoc.fieldsettext(currentFieldName, "0" )
End If
Call uidoc.Refresh
End Sub
-
Das
currentFieldName = uidoc.CurrentField
muss aus dem Exiting heraus, denn es liefert ja den Namen des Feldes, in das der Cursor springt.
Daher habe ich es ja extra im Entering drin!
Also:
Sub Exiting(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If uidoc.fieldgettext(currentFieldName) = "" Then
Call uidoc.fieldsettext(currentFieldName, "0" )
End If
Call uidoc.Refresh
End Sub
Andreas
-
Danke, funktioniert!!!