Das Notes Forum

Lotus Notes / Domino 10 => ND10: Entwicklung => Thema gestartet von: Thikor am 08.12.21 - 15:02:47

Titel: Optionsfeld übertrag 2. wert
Beitrag von: Thikor am 08.12.21 - 15:02:47
Hallo, ich habe ein Optionsfeld gefüllt mit werten z.B Brot |1 und Wasser|2

Wenn es eins der beiden in die Ansicht schreibe, steht da nur 1 oder 2, aber ich brauche den Text.

Formelsprache oder Skriptsprache wäre super.
Titel: Re: Optionsfeld übertrag 2. wert
Beitrag von: CarstenH am 08.12.21 - 16:04:27
Zwei Dinge:

1. Script kann nicht in Spaltenformeln verwendet werden, bringt dir also nichts.

2. Wenn du nur die Texte brauchst und die sich nicht durch unterschiedliche Sprachen etc. ändern solltest du in Betracht ziehen, in der Eingabemaske auf die Synonyme (|1 usw.) zu verzichten.

Ansonsten musst du die Feldwerte an allen benötigten Stellen zur Anzeige wieder in in die Texte zurück "übersetzen", z.B. so:

Code
@If( Feld="1"; "Brot"; Feld="2"; "Wasser"; "" )

Es gibt viele Varianten, das per @Formel zu machen, das war nur die einfachste für dein Beispiel.

HTH
Carsten
Titel: Re: Optionsfeld übertrag 2. wert
Beitrag von: Tode am 08.12.21 - 16:19:55
Wenn Du nicht die Werte in der Ansicht wiederholen willst, dann empfehle ich eine von zwei Vorgehensweisen.

Erstmal würde ich die möglichen Auswahlen (trotz des Daten- Overheads) im Dokument mitspeichern. Also Feld:

OptionsfeldVorgaben, berechnet, Mehrfachwerte, versteckt. Formel:

Code
"Brot|1" : "Wasser|2"

Dann diese Auswahlen im Optionsfeld über den Feldnamen (über Formel berechnen) einbinden, statt direkt ins Feld zu schreiben.

Nun werden die "Übersetzungen" Deiner Alias- Werte in Feldwerte im Dokument mitgespeichert.

Ansatz 1: In der Formel "zurückrechnen":

Code
@Replace( OptionsFeld : @Word( OptionsfeldVorgaben ; "|" ; 2 ) ; @Word( OptionsfeldVorgaben ; "|" ; 1 )

Ansatz 2: Ein weiteres Feld in die Maske, unterhalb Deines Optionsfeldes.

Feld: OptionsFeldLesbar, berechnet, versteckt, Formel:
Code
@Replace( OptionsFeld : @Word( OptionsfeldVorgaben ; "|" ; 2 ) ; @Word( OptionsfeldVorgaben ; "|" ; 1 )

Und in der Ansicht dann in der Spalte: OptionsfeldLesbar

Der erste Ansatz braucht rechenpower in der Ansicht (Ansichtsindex braucht in großen Datenbanken länger), der zweite die Redundanz in den Dokumenten...

Alternativ kannst Du natürlich, wenn Du die Maske nicht verändern willst, die Formeln rein für die Ansicht kombinieren, dann musst Du aber immer drandenken, wenn Du neue Optionen einführst, dass Du das in den Ansichten nachführst. Dann so:

Code
_vorgaben := "Brot|1" : "Wasser|2";
@Replace( OptionsFeld ; @Word( _vorgaben; "|" ; 2 ) ; @Word( _vorgaben; "|" ; 1 ) )
Titel: Re: Optionsfeld übertrag 2. wert
Beitrag von: Thikor am 08.12.21 - 16:46:51
Vielen  Dank euch beiden, beides hat mir sehr weitergeholfen.