Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: KlausiK am 21.05.12 - 12:25:36
-
Hallo Notes-Experten,
hier ist meine erste Frage:
Ich habe bei einem Optionsfeld Synonyme verwendet.
Beispiel:
1.Auswahl | 1
2.Auswahl | 2
usw.
innerhalb der Maske funktioniert alles einwandfrei.
Aber in Ansichten, wo ich das Feld verwenden möchte, steht nun das Synonym und nicht der Text links vor dem „|“.
Kann man das irgendwo einstellen?
Oder mache ich etwas falsch?
Vielen Dank
-
Du machst gar nichts falsch - im Backend werden die Synonyme gespeichert (dafür sind sie ja auch da).
Bernhard
-
Vielen Dank, für die super schnelle Antwort.
-
...
Kann man das irgendwo einstellen?
Oder mache ich etwas falsch?
...
Du machst nichts falsch und einstellen kann man da auch nichts.
Aber es ist trotzdem möglich. Du brauchst in deiner Maske ein zusätzliches verstecktes Textfeld. Das nennst du z.B. viewSynonyme.
Im QuerySave - event füllst du dann dieses Feld mit Forntendmethoden.
So z.B.
...
Call Source.FieldSetText("viewSynonyme", Source.FieldGetText("Synonyme"))
...
Damit schreibst du den "Frontend-Wert" der dir in der Maske angezeigt wird in das Hilfsfeld und diese Hilfsfeld verwendest du in deiner Ansicht.
Axel
-
Wobei das natürlich den Sinn der Aliase ad adsurdum führt ...
Bernhard
-
Wobei das natürlich den Sinn der Aliase ad adsurdum führt ...
Nicht unbedingt. Das kommt m.E. auf den konkreten Anwendungsfall an.
Hast du eine andere Alternative zur Anzeige in Ansichten?
Axel
-
Nö, ich habe auch keine bessere Lösung. Die Katze beisst sich an der Stelle einfach in den Schwanz ...
Bernhard
-
Einen Alias finde ich dann besonders wichtig, wenn von dem Feld eine weitere Steuerung abhängt. Besonders bei anzukreuzenden Optionen kommt es gerne mal vor, dass aus Anwendersicht eine Änderung des anzukreuzenden Textes gewünscht wird (z.B. bei Gesetzesänderung, geänderte Paragraphen oder Wortlaute). So braucht nur die Maske geändert zu werden, der Alias bleibt gleich und damit der gesamte weitere Ablauf (Importe, Exporte, Steuerungen usw.).
Das gilt allerdings auch für alte Dokumente, da ist dann möglicherweise vor drei Jahren etwas angekreuzt worden, was es erst seit heute gibt. Da muss man überlegen, wie man das versioniert. Neue Maske / Teilmaske? Oder die Auswahlliste samt Alias in einem Feld "berechnet beim Anlegen" im Dokument speichern. Der Alias ist dann immer der gleiche, der angezeigte Text abhängig vom Erstelldatum. In Ansichten kann man aus dem Alias über solch ein Feld rückwärts auf den Klartext schließen.
-
Wenn die Synonyme hardcodiert sind, kann man die doch einfach in der View mit If abfragen und den richtigen Text anzeigen. Nur wenn die Synonyme variabel sind, bekommt man in Klassik Notes ein Problem. in xPages sollte es aber möglich sein.
Grüße
Ralf
-
Deshalb speichere ich meine synonymlisten immer in eine extrafeld, auf das ich dann im auswahlfeld verweise. Wenn man ein Feld hat Namens Auswahl und ein Feld Namens AuswahlListe
Dann kann man ein weiteres Feld machen AuswahlAnsicht und dort die Formel eintragen:
@Replace(Auswahl; @Word(Auswahlliste; "|"; 2) ;@Word(Auswahlliste; "|"; 1))
Dann hat man immer beides...
Und wenn man die Benennung der Felder immer gleich macht (Feld mit Auswahlmöglichkeiten immer Feldname + Liste, Feld für Ansicht immer Feldname + Ansicht), dann kann man wunderbar portablen code schreiben, wo man die dei Felder nur kopieren muss und Ihren Namen abändern, dann funktioniert das sofort wieder.
bsp:
In der formel für die möglichen Werte in Auswahl:
@GetField( @ThisName + "Liste" )
Und in der Fonel fürs Ansichtsfeld:
ThisField := @LeftBack( @ThisName ; "Ansicht" );
Werte := @GetField( ThisField );
Liste := @GetField( ThisField + "Liste" );
@Replace(Werte; @Word(Liste; "|"; 2) ;@Word(Liste; "|"; 1))
-
Vielen Dank nochmals, für die vielen Tipps!
Hat mir sehr gut weitergeholfen.
Grüße
Klaus