join als bessere concat
Ninox Profile
Guten Morgen zusammen.Gestern beim Webinar hat der Frank nebenbei die Funktion "join" erwähnt. Damit das Ganze dokumentiert ist, möchte ich hier diese Funktion kurz erklären. Zuerst die Problemstellung:
Man möchte die Aufzählung bestimmten Werte in einer Tabelle bekommen.
der Erste Weg:

concat(select Tabelle.(Feld1+Feld2))


dabei bekommt man die Liste, kommagetrennt. Jetzt möchte ich, dass die Werte nicht nebeneinander sondern untereinander stehen:

replace(concat(select Tabelle.(Feld1+Feld2)),",","
")

---
So kriege ich eine tabellenähnliche Darstellung. Problematisch wird das ganze, wenn die Felder Texte mit Komma enthalten. Dann ersetzt "replace" diese Kommas auch durch Zeilenumbruch. Jetzt kommt "join"zum Einsatz:

join((select Tabelle.(Feld1+Feld2)),"
")


So kann ich alles untereinander ordnen, ohne mir gedanken über Kommas zu machen. Natürlich kann man damit auch adere Trennzeichen setzen.

Grüße
Leo
A
Hallo Leo, danke für die Info. Ich habe allerdings noch nicht verstanden, was concat/join genau bewirkt und wofür man das gebrauchen könnte. Lässt sich das in ein paar Worten erklären?
Ninox Profile
Lieber Leo

Wieder mal ein sehr wertvoller Input, besten Dank dafür.

Bin ja noch gespannt, was es alles noch zu entdecken gibt :-)

Gruss Nik
N

Hallo,

ist es irgendwie möglich ein Leerzeichen zwischen Feld 1 und Feld 2 einzufügen?

liebe Grüße.

Ninox Profile

Hallo, das sollte gehen, indem man das gewünschte Zeichen (oder auch mehrere) einfach als String zwischen die Felder setzt. Also, auf obiges Beispiel bezogen:

 

join((select Tabelle.(Feld1 + " " + Feld2)),"
")

Ninox Profile

Vielen Dank für den nützlichen Tipp! Ich habe es gleich verwenden können. Dazu habe ich den Code in ein Formelfeld eingebaut. Nachdem ich das Ganze in eine styled Anweisung gepackt habe werden die Zeilenumbrüche allerdings ignoriert:

 

styled(text(join((select Tabelle).Feld1, "
")), "pink", "", "warn")

 

 

Gibt es dafür eine Lösung? Ich möchte später je nach Bedingung das Feld in einer anderen Farbe darstellen lassen.

Antworten