Domino 9 und frühere Versionen > Entwicklung

Eingabeumsetzung nur einmalig ausfuehren?

(1/3) > >>

mh70220:
Hi all,

Ich habe mir folgende Formel gebastelt:

_mac1 := @LeftBack(MACAdresse;10);
_mac2 := @LeftBack(MACAdresse;8);
_mac22 := @RightBack(_mac2;2);
_mac3 := @LeftBack(MACAdresse;6);
_mac33 := @RightBack(_mac3;4);
_mac4 := @LeftBack(MACAdresse;4);
_mac44 := @RightBack(_mac4;6);
_mac5 := @LeftBack(MACAdresse;2);
_mac55 := @RightBack(_mac5;8);
_mac6 := @RightBack(MACAdresse;10);
_mac1 + "-" + _mac22 + "-" + _mac33 + "-" + _mac44 + "-" + _mac55 + "-" + _mac6

Diese habe ich in einem Feld fuer die Eingabe der MAC Adresse in die Eingabeumsetzung geschrieben. Bei Aktualisierung des Dokumentes fuehrt er dieses auch durch. Das Problem ist nur er macht dies bei jeder Akualisierung und packt mir immer wieder eine neue MAC Adresse hinten dran, so das ich diese dann 10 mal in dem Feld stehen habe.

Hat jemand eine Idee, wie ich diese Eingabeumsetzung nur ein mal ausfuehren lassen kann?

Danke
Matthias

Glombi:
Du musst abfragen, ob das Feld bereits gesetzt ist.
Wenn das Feld bspw. MACAdresse heisst dann so:

@If(MACAdresse != "";@Return(MACAdresse);"");
mac1 := @LeftBack(MACAdresse;10);
_mac2 := @LeftBack(MACAdresse;;
_mac22 := @RightBack(_mac2;2);
_mac3 := @LeftBack(MACAdresse;6);
_mac33 := @RightBack(_mac3;4);
_mac4 := @LeftBack(MACAdresse;4);
_mac44 := @RightBack(_mac4;6);
_mac5 := @LeftBack(MACAdresse;2);
_mac55 := @RightBack(_mac5;;
_mac6 := @RightBack(MACAdresse;10);
_mac1 + "-" + _mac22 + "-" + _mac33 + "-" + _mac44 + "-" + _mac55 + "-" + _mac6


Andreas

koehlerbv:
Das kann nicht funktionieren, Andreas. Nur wenn das Feld MACAdresse leer ist, würden die nachfolgenden Formeln ausgeführt - und ins Leere laufen (das Feld ist ja leer).

Matthias: Deine Formeln erscheinen mir merkwürdig. Sag' mal bitte an: Was erwartest Du als Input in dem Feld, und wie soll das dann normiert aussehen ? Wenn das dann sauber programmiert ist, erledigt sich das mit dem "einmaligen" Ausführen bzw. dem immer richtigen Ausführen von selbst.

Bernhard

mh70220:
hi,

habe die Loesung des Problems gefunden:

Ich bin von dem Eintrag "Eingabeumsetzung" zu "Exiting gegangen und habe da folgendes LotusScript eingetragen:

Sub Exiting(Source As Field)
   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document
   
   Dim mac As String
   Dim mac1 As String
   Dim mac2 As String
   Dim mac22 As String
   Dim mac3 As String
   Dim mac33 As String
   Dim mac4 As String
   Dim mac44 As String
   Dim mac5 As String
   Dim mac55 As String
   Dim mac6 As String
   Dim mac66 As String
   Dim mac7 As String
   Dim mac77 As String
   Dim result As String
   
   mac = uidoc.fieldgettext ("MACAdresse")
   
   mac1 = Left$(mac,2)
   mac2 = Left$(mac,4)
   mac22 = Right$(mac2,2)
   mac3 = Left$(mac,6)
   mac33 = Right$(mac3,2)
   mac4 = Left$(mac,8)
   mac44 = Right$(mac4,2)
   mac5 = Left$(mac,10)
   mac55 = Right$(mac5,2)
   mac6 = Right$(mac,2)
   
   mac7 = Left$(mac,3)
   mac77 = Right$(mac7,1)
   
   result = mac1 + ":" + mac22 + ":" + mac33+ ":" + mac44 + ":" + mac55 + ":" + mac6
   
   If mac77 = "-" Then
      End
   Else
      Call uidoc.fieldsettext("MACAdresse",result)
   End If
   
End Sub

Funktioniert wunderbar.

In Eingabeumsetzung habe ich jetzt nur nocht @uppercase(MACAdresse) stehen um die kleine Buchstaben "Gross" zu machen. LOL

Manchmal muss man nur anderes Denken.  ;D

Matthias

koehlerbv:
Irgendwie werde ich aber das Gefühl nicht los, dass Du Dir einerseits die Sache zu kompliziert, andererseits wiederum zu einfach machst.
Und: Das Exiting-Event muss nicht ausgeführt werden. Es ist keine adäquate Ersetzung der Input validation.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln