Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: theBastian am 17.08.05 - 14:31:22

Titel: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 14:31:22
Hallo,

ich habe mal wieder ein Problem, was eigentlich banal klingt aber mich schon wieder zum Verzweifeln bringt.  :(

Ich habe ein Feld als Checkbox, das folgende Werte enthält: (Mehrfachauswahl möglich)

Birne |1
Apfel |2
Kirsche |3

Dieses Feld soll jetzt in einer View angezeigt werden. Logischerweise wird natürlich nur 1,2 oder 3 (oder eine Kombination davon) angezeigt.
Ich suche also eine Formel, die wieder die oben genannten Werte anzeigt.

Weiterhin habe ich damit ein grundsätzliches Problem.
Wenn ich das Ganze so mache, dann muss ich die Werte (Birne, Apfel usw.) an 2 Stellen pflegen (Feld und View).
Wie macht ihr denn sowas? Gibt es da eine bessere Lösung?

Dank Euch im voraus.

cu
der B@sti
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: umi am 17.08.05 - 14:34:28
Ich mache dies immer über ein berechnetes Feld für die Ansichten.
Dieses Feld wird im QuerySave gefüllt, da zu diesem Zeitpunkt über das NotesUIDokument noch an die Werte vor dem "|" zugegriffen werden kann,  via uidoc.fieldgettext.

gruss
umi
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: Glombi am 17.08.05 - 14:38:44
Prinzipiell gibt es 2 Möglichkeiten:

1. Speichern des Anzeigenamens in dem Dokument
2. Berechnen in der Ansicht

1. macht Sinn, wenn sich die Begriffe nicht (oder nur selten) ändern.
Nachteil: bei Änderung müssen alle betroffenen Dokumente aktualisiert werden
Vorteil: Performance; wenig Programmieraufwand

2. macht Sinn, wenn sich die Begriffe ändern können
Nachteil: ggf. erheblicher Programmieraufwand, wenn das in vielen Ansichten ist
Vorteil: keine Änderung bestehender Dokumente


1 realisiere ich im QuerySave so
doc.FeldXYZ = Source.FieldGetText( "Feldname" )

2. realisiere ich in der View so
@Replace(Feldname, "1":"2";"Äpfel":"Birnen")

Andreas
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 14:50:47
Danke für die schnelle Antwort. Da die ähnlich sind, nehme ich mal zu Glombis Antwort Stellung.

1. Möglichkeit: Anzahl der Felder mit Checkboxen wird ja damit verdoppelt;
2. Möglichkeit: Arbeitsaufwand bei Änderung ist wirklich nicht zu vernachlässigen  ;)

Die Dokumente sollen nach der Erstellung nicht mehr verändert werden. (Revisionssicherheit.)

Änderungen sollen dann nur für neue Dokumente gelten. Daher werde ich wohl Variante 1 wählen und halt noch ein paar Felder bauen.  :(

Vielen Dank für Eure Hilfe. Wieder etwas schlauer geworden.

cu
der B@sti
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: Glombi am 17.08.05 - 14:58:11
Ich persönlich bevorzuge Lösung 2.
Auch wenn man ein paar View beackern muss, ist es wesentlich dynamischer.

Was ich übersehen habe: Es können Mehrfachwerte sein. D.h. du musst in der Eingabeumsetzung des neuen Feldes noch ein Explode machen, damit Du wieder Mehrfachwerte hast.

@Explode(Feldname;";")

Warum verwendest Du überhaupt einen Alias?

Andreas
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: Mandalor am 17.08.05 - 15:00:51
Warum verwendest Du überhaupt einen Alias?

diese Frage habe ich mir auh gerade gestellt, was ist mit möglichkeit 3:

Feldinhalt:

Birna
Apfel
Kirsche

--> fertig?
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: koehlerbv am 17.08.05 - 15:01:04
Warum verwendest Du überhaupt einen Alias?

Jo, das frage ich mich auch. Dir geht es ja um Revisionssicherheit. Dokumentintern wäre die zwar weiter gegeben, aber wenn ein Alias geändert wird, werden im Frontend ja auf einmal auch für ältere Dokumente ganz andere Inhalte angezeigt. Aliase sind da in diesem Zusammenhang sogar kontraproduktiv.

Bernhard
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 15:03:52

Warum verwendest Du überhaupt einen Alias?


Naja, die Feldinhalte sehen in Wirklichkeit eher so aus:

bis 25.000 €|1
25.000 € bis 50.000 €|2
50.000 € bis 150.000 €|3
über 150.000 €|4

Und die muss ich dann später noch auswerten.
@If Feld = "1" ; ...
Da sind mir Zahlen einfach lieber.

cu
der B@sti
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 15:06:37

Jo, das frage ich mich auch. Dir geht es ja um Revisionssicherheit. Dokumentintern wäre die zwar weiter gegeben, aber wenn ein Alias geändert wird, werden im Frontend ja auf einmal auch für ältere Dokumente ganz andere Inhalte angezeigt. Aliase sind da in diesem Zusammenhang sogar kontraproduktiv.


Bei Verwendung von Variante 1 bleiben die Werte ja erhalten. Änderungen an der Auswahl gilt ja dann nur für neue Dokumente.

cu
der B@sti
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: Glombi am 17.08.05 - 15:10:25

Warum verwendest Du überhaupt einen Alias?


Naja, die Feldinhalte sehen in Wirklichkeit eher so aus:

bis 25.000 €|1
25.000 € bis 50.000 €|2
50.000 € bis 150.000 €|3
über 150.000 €|4

Und die muss ich dann später noch auswerten.
@If Feld = "1" ; ...
Da sind mir Zahlen einfach lieber.

cu
der B@sti

Ich verwende in solchen Fällen folgendes:

bis 25.000 €|bis 25.000 €#1

d.h. mein Alias hat sowohl den Anzeigenamen als auch einen Identifier, Dann kannnst Du mit
 @Right(Feld;"#")
den "Alias" (Identifier) und mit
 @Left(Feld;"#")
den Anzeigenamen berechnen.



Damit habe ich sowas immer gut im Griff.

Andreas
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 15:14:26
Die Idee ist natürlich noch besser. Und das klappt auch bei Mehrfachwerten?
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: Glombi am 17.08.05 - 15:16:08
Die Idee ist natürlich noch besser. Und das klappt auch bei Mehrfachwerten?
Das klappt auch bei Mehrfachwerten ohne Probleme. Du musst nur folgende Syntax einhalten:
<Anzeigename>|<Anzeigename>#<Identifier>

Eine Erweiterung wäre noch
<Anzeigename>|<Anzeigename>#<Identifier>~[<Flag1>~...~<FlagN>]

Alias = @Left(@Right(Feldname;"#");"~")

dann kannst Du quasi wie in einem QueryString noch diverse Flags mitgeben, bpsw. für Sortierung, Gruppierungen von Schlüsselworten etc.

Andreas
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: theBastian am 17.08.05 - 15:21:43
Hast natürlich recht.  ;)

Solche kleinen Sachen fehlen mir als "Hobbyprogrammierer" eben immer.

cu
der B@sti
Titel: Re: Inhalt einer Checkbox in View anzeigen
Beitrag von: StefanP1962 am 26.09.16 - 11:35:54
Hallo  zusammen,

ich weiß, ein ewig alter Thread. Aber es ist ein immer wieder gesuchtes Thema.

Wie wäre es mit folgender Lösung (funzt unter Version 9.1):

Voraussetzung ist, dass der Klarname und dazugehörige Alias in einem Dokument steht, welches z. B. für die Feldauswahl verwendet wird. Quasi ein Konfigurationsdokument.

PostOpen der View:
_Field := "Reisemittel";
_Auswahl := @If(
   @IsError( @DbLookup("":"NoCache";"";"(ViewConfiguration)"; _Field; "FeldName_mit_Werten") );
          "kein Konfigurationsdokument >Auswahlfeld " + _Field + "< vorhanden!";
   @DbLookup("":"NoCache";"";"(ViewConfiguration)"; _Field; "FeldName_mit_Werten")
   );
@Environment("PL_Reisemittel"; @Implode(_Auswahl;"~"))

In der Spalte der View:
_Liste := @Explode( @Environment("PL_Reisemittel");"~");
_Liste_K := @Trim( @Left( _Liste; "|") );
_Liste_A := @Trim( @RightBack(_Liste; "|") );
_Column := @Replace( Reisemittel; _Liste_A; _Liste_K);
_Column

Dann im QueryClose der View den Eintrag wieder entfernen:
Dim session As New NotesSession
Call session.SetEnvironmentVar( "$PL_Reisemittel", "")
   
Nachtrag (edit): Problem dabei ist, dass man nicht um SHIFT+F9 herumkommt.  O0