Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 13.09.03 - 17:47:43

Titel: Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: TMC am 13.09.03 - 17:47:43
Hi,

ich habe Historienfelder die sich fortschreiben. Typ: Text.
Z.B. wenn Dok sich ändert dann erfolgt folgendes:
@SetField ("Modifier"; Modifier + @NewLine + @Name([CN]; @UserName))

Jetzt steht im Feld "Modifier" z.B. folgendes:
Reiner Unsinn
Hans Dampf
Harald Schmidt


Jetzt will ich per Button eine Box öffnen, in die man einen Namen eintragen kann (z.B. Bill Gates).
Es soll nun Harald Schmidt rausgeworfen werden und stattdessen Bill Gates rein.

Dazu soll eine Formel das Feld "Modifier" bearbeiten.
 - nimm den Inhalt des Feld Modifier
 - gehe vom Ende aus zum letzten @Newline
 - lösche den Text von der aktuell befindlichen Stelle bis zum Ende
 - Füge dem Feld den Namen "Bill Gates" hinzu

Ich hab schon mit @Right & co. experimentiert, aber irgendwie komm ich nicht drauf.

Zeilenumbruch (@Newline) wäre doch @Char(13), oder?

Bitte um Hilfe.

Danke
TMC
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: JoJo am 13.09.03 - 18:15:54
Wenn du eine Aktions-Schaltfläche mit

FIELD Modifier:= @Prompt([OkCancelEdit];"Neuer Name";"Den gewünschten Namen bitte eingeben";"");
@True

hinterlegst, sollte das funktionieren. Der alte Wert wird dann überschrieben.
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: TMC am 13.09.03 - 18:22:08
Hi Jojo,

danke, aber ich will ja nicht den alten Wert komplett überschreiben.

Vielmehr soll nur die letzte Zeile ersetzt werden.....

Gruss,
TMC
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: ata am 13.09.03 - 18:28:40
... einfacher wäre es mit einem Mehrfachwerte-Feld zu arbeiten. Dann kannst du mit @Word, @Subset , @IsMember , @Member usw. arbeiten....

... in deinem Fall würde ich den String in eine Liste konvertieren.

vListe := @Implode( String , @Char(13) )

... dann stehen dir wieder alle nützlichen @Commands zur Verfügung, die ich oben bereits erwähnte...

... mit @ReplaceSubstring gibt es auch noch Möglichkeiten - mehr dazu findest du in der Notes-Hilfe...

ata
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: TMC am 13.09.03 - 18:55:19
Hi ata,

OK, angenommen ich habe meine Modifier-Liste mit @Implode bearbeitet.

Wie bekomme ich nun den "Harald Schmid" raus?

Denn daran scheitere ich noch.....

"Suche" nach "Harald Schmid" bringt nichts, da der Wert variabel ist. Es könnte dort auch "Albert Einstein" stehen.... Eben der letzte Eintrag soll raus und mit einem angegebenem ersetzt werden.

TMC
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: Glombi am 13.09.03 - 19:06:27
Hi,
auswechseln des letzten Wertes geht so:
_ModifierListe := @Explode(Modifier;@Newline);
_ModifierOhneLetztenEintrag :=
@If(
 @Elements(_ModifierListe) < 2;
    "";
 @Subset(_ModifierListe;@Elements(_ModifierListe) - 1)
);

REM "Neuen Wert dranhängen";
FIELD Modifier :=
 @If(
    _ModifierOhneLetztenEintrag = "";
         "Bill Gates";
    @Implode(_ModifierOhneLetztenEintrag : "Bill Gates;@Newline)
 );
@True

Andreas
Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: ata am 14.09.03 - 11:06:40
... ich habe da einen grvierenden Fehler drin - mit @Implode erstelle ich aus einer Liste einen String - es muß natürlich @Explode heißen...

... mit

@Subset( vListe ; @Elements( vListe ) - 1 )

... erhälst du alle Mitglieder, ausser dem letzten, den neuen hängst du noch an

@Subset( vListe ; @Elements( vListe ) - 1 ) : "der neue Name"

.. das müsste es sein...

ata


Titel: Re:Textfeldinhalt mit Formelsprache bearbeiten
Beitrag von: TMC am 14.09.03 - 18:20:03
Hi,

ich danke Euch   :)

Ich hab jetzt eine Kombination aus ata's und Glombi's Hilfe genommen.
Klappt wunderbar.

cu,
TMC