Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 16.08.04 - 15:14:15

Titel: Feldnamen auslesen
Beitrag 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
Titel: Re:Feldnamen auslesen
Beitrag von: Glombi am 16.08.04 - 15:22:23
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
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 16.08.04 - 15:41:10
Danke!
Geht das auch bei Exiting? Ohne die statische Vorgabe?
Titel: Re:Feldnamen auslesen
Beitrag von: Axel am 16.08.04 - 18:21:55
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
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 16.08.04 - 21:23:38
Möchte den Feldnamen nicht direkt angeben wie z. B Feld1, sondern diesen über Script ermitteln lassen.
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 17.08.04 - 15:43:20
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
Titel: Re:Feldnamen auslesen
Beitrag von: Glombi am 17.08.04 - 15:54:14
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
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 17.08.04 - 16:35:11
funktioniert leider nicht. Übernimmt den Feldnamen von dem Feld das ich als nächstes auswähle.
Titel: Re:Feldnamen auslesen
Beitrag von: Glombi am 17.08.04 - 16:36:59
Du musst
dim currentFieldName as string
in den Globals der Maske deklarieren

und nicht lokal im Exiting/Entering.
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 17.08.04 - 16:42:42
Sorry, aber hab ich!
Titel: Re:Feldnamen auslesen
Beitrag von: Glombi am 17.08.04 - 16:45:06
Sag mal an, was Du wo programmiert hast. Du brauchst
Globals - (Declarations)
Entering
Exiting

Andreas
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 17.08.04 - 16:52:20
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
Titel: Re:Feldnamen auslesen
Beitrag von: Glombi am 17.08.04 - 16:57:34
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
Titel: Re:Feldnamen auslesen
Beitrag von: skywook am 18.08.04 - 07:12:50
Danke, funktioniert!!!