Autor Thema: @Picklist - Verständnisproblem  (Gelesen 4875 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.873
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
@Picklist - Verständnisproblem
« am: 22.03.16 - 20:28:28 »
Ich programmiere ja noch nicht lange Notes- Datenbanken (maximal 20 Jahre oder so), aber manchmal verzweifle ich an mir selbst (oder es liegt einfach daran, dass ich alt werde).

Gegeben sei:

Eine Ansicht mit 2 Spalten.
Die erste Spalte ist versteckt, nicht sortiert, und zeigt ein MultiValue- Feld an. Die Spalte steht auf "Trennz. bei Mehrfachwerte" = Neue Zeile, mehrfachwerte getrennt anzeigen ist nicht aktiviert.
Die zweite Spalte ist die, die der User sieht. Sie ist sortiert, hat keine Mehrfachwerte, sehr simpel.

In einer Aktionsschaltfläche steckt folgender hochkomplizierter Code:

Code
_title := "Title";
_msg := "Message";

_srv := @Subset( @DbName ; 1 );
_db := TrailerDBName;

_viw := "ViwPicklistCompany";
_col := 1;

_pickList := @PickList( [Custom] : [Single] ; _srv : _db ; _viw ; _title ; _msg ; _col );

Laut Designer Hilfe liefert Picklist Mehrfachwerte:
Zitat
Return value
columnValue

Text list. The value(s) in the specified column for the document(s) that the user selected.

Mache ich jetzt ein @Prompt( [OK] ; "TEST"; _pickList ), dann bekomme ich alle Werte, die auch in der Spalte stehen (Moment: Müsste der Code nicht auf die Nase fallen, wenn _picklist wirklich Multivalue wäre!?).
Jetzt kommt das große ABER: Mache ich ein @Prompt( [OK] ; "ELEMENTS"; @text( @Elements( _picklist ) ) ), dann bekomme ich -und ich kann mich auf den Kopf stellen- IMMER 1.

Und das geht mir einfach nicht in den Kopf...
Ich habe das in einer leeren Datenbank nachgestellt, und es ist auch dort definitiv so...

Natürlich ist der Code nicht neu, sondern schon eine Weile im Einsatz.
Und ich könnte wetten, dass ich das so schon zig mal verwendet habe...

Das Ergebnis von Picklist wird in ein Feld geschrieben. Und wie ich jetzt herausgefunden habe, hat dann das Feld anhand seiner Multi- Value- Trenner aus diesem String wieder einen Multivalue gemacht.

Das Ganze funktioniert aber sporadisch nicht (dann wird der Text nicht in Einzelwerte geteilt, sondern bleibt ein langer String), und darüber bin ich auf dieses unglaubliche Problem gestossen.

Client ist 9.0.1FP4, andere habe ich noch nicht ausprobiert.

Jetzt sagt mir: Werde ich so langsam bescheuert, oder ist es die Formelsprache?

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #1 am: 22.03.16 - 21:49:21 »
Mehrfachwerte trennen durch neue Zeile = ein Wert mit mehreren Zeilen
In der Theorie stimmt die Beschreibung und ein @Elements( .. liefert eine 1 zurück.

Das beste wäre ein @implode(feldName;"<Trenner>") und dann wieder umkehren ;)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #2 am: 22.03.16 - 21:57:23 »
Sicher, das da ein
Code
@Explode(_pickList; @Newline)
nicht reichen würde?
Andy

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #3 am: 22.03.16 - 22:01:54 »
Naja irgendwo gibt es noch einen Haken, denn das hätte der Trenner im Feld schon machen müssen, macht er aber nicht immer.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.873
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @Picklist - Verständnisproblem
« Antwort #4 am: 23.03.16 - 08:11:10 »
Ich muss lernen, mich verständlich auszudrücken:

Das Ganze war als Beispiel zu sehen. Wenn ich in der Ansicht das Semikolon als Trenner eingebe, dann muss meine Formel im Feld @Explode( _picklist ; ";" ) lauten, und bei Leerzeichen @Explode( _picklist ; " " ).

Einen Workaround zu schaffen ist also mehr als Trivial.

Das schafft aber eine Abhängikeit zwischen Ansichts- Design und Code an einer anderen Stelle, den ich gerne vermieden hätte. Stellt jemand (versehentlich oder wegen Lesbarkeit oder weil die Dreisam grade so viel Wasser hat) die Spalteneigenschaft um, dann geht der Code in allen Picklists, die sich auf diese Ansicht beziehen plötzlich auf die Bretter.

Laut Hilfe dürfte es diese Abhängigkeit aber nicht geben... und DAS ist mein Problem... Ich kann ja in den Feldeigenschaften auch einstellen, dass ich Mehrfachwerte mit Neuer Zeile getrennt anzeigen will, aber wenn ich Programmatisch auf das Feld zugreife bekomme ich trotzdem einen Mehrfachwert, und keinen mit @NewLine implodeten Wert...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #5 am: 23.03.16 - 08:52:17 »
Theorie und Praxis, es bleibt das Problem das @Newline nicht immer zieht. Vielleicht gibt es den Aufruf noch wo anders, z.B. aus einer Ansicht heraus ohne das die Feldtrenner-Definition greift?

Das du keine Änderung an der Ansicht machen möchtest, mit dem Hinweis jemand könnte die Spalten-Eigenschaft später anpassen, kann ich nicht nachvollziehen. Mach eine versteckte Ansicht, oder schreibe einen Kommentar in die Spaltenformel oder wie muss ich mir bei euch Anpassungen an Datenbank vorstellen? Aber wie auch immer, das ist ein anderer Prozess.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.873
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @Picklist - Verständnisproblem
« Antwort #6 am: 23.03.16 - 12:51:17 »
Nochmal: Es geht mir nicht um die Lösung des Problems (ich habe das Ganze inzwischen in Script umgesetzt, ist sowieso in der gegebenen Datenbank sauberer so, weil ich den Code noch an anderer Stelle brauche).

Es ging mir darum, ob meine Wahrnehmung des Befehls @Picklist wirklich seit Jahren so falsch ist, oder ob es irgendeine Ursache gibt, warum Picklist was anderes zurückliefert als die Dokumentation sagt...

Es geht mir also explizit NICHT darum, wie ich das umgehen kann, sondern darum, WARUM Picklist einen Single Value und nicht einen Multi Value zurückliefert (unabhängig von der Ansichts- Definition)
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #7 am: 23.03.16 - 13:17:22 »
Weil:
Zitat
Mehrfachwerte trennen durch neue Zeile = ein Wert mit mehreren Zeilen
Siehe Spalteneigenschaften oder was ist daran falsch?

Die Beschreibung:
Zitat
Return value
columnValue

Text list. The value(s) in the specified column for the document(s) that the user selected.
Bezieht sich auf den Parameter [SINGLE], welchen man dann nicht benutzen darf.

Sorry, aber in diesem Fall stimmt die Beschreibung mit der Praxis überein.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: @Picklist - Verständnisproblem
« Antwort #8 am: 23.03.16 - 15:52:31 »
Stell Dir vor, es käme wirklich eine Liste zurück.
Und jetzt nimmst Du ein Picklist und wählst mehrere Dokumente aus.
Zitat
columnValue
Text list. The value(s) in the specified column for the document(s) that the user selected.
Das könnte dann eher zu ungewünschten Effekten führen.

Gut, tut es so auch ;)
Andy

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz