Domino 9 und frühere Versionen > Entwicklung
Eingabeumsetzung nur einmalig ausfuehren?
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