ein Komma zu viel ;-)
N'Abend Gemeinde,
ich möchten in einem Druckformular eines Artikels die zugehörige Stückliste ausgeben. Das klappt inhaltlich schon mal nicht schlecht mit:
for i in 'EA-Typ'.'Stückliste' do
i.Anzahl + " " + i.Material.'Artikel-Nr.' + " " + i.Material.Bezeichnung + "
"
end
Das Ganze hat hat jedoch einen kleinen Schönheitsfehler, denn die Ausgabe erfolgt etwa in dieser Form:
1 Stück 4711 erste Bezeichnung
,1 Stück 0815 zweite Bezeichnung
,4 Stück 1234 dritte Bezeichnung
usw.
Wie bekomme ich das vermaledeite Komma ab der zweiten Position weg? replace() kommt leider nicht in Frage, da die Bezeichnung durchaus auch Komma(s) beinhaltet.
lg, Torsten
7 Antworten
-
Hallo Torsten, es gibt ein Operator join (Array, Trennzeichen)
—-
join('EA-Typ'.'Stückliste'.(
Anzahl + " " + Material.'Artikel-Nr.' + " " + Material.Bezeichnung ),"
")—-
Leo
-
Einwandfrei,
vielen Dank!
lg, Torsten
-
Bei mir sagt der immer nur "Funktion join([String]) ist nicht definiert". Wie ist diese Funktion genau zu verwenden?
Ich versuche das obige zu machen, nur mit folgender For-Schleife:
for myFLS in 'Klient*in'.Fachleistungen do
myFLS.Datum + " " + myFLS.Beginn + ":" + "
" + myFLS.Bericht + "
"
end
-
Hallo,
witzig - ich baue gerade was vergleichbares. So sollte es funktionieren:
join(for myFLS in 'Klient*in'.Fachleistungen do
myFLS.Datum + " " + myFLS.Beginn + ":" + "
" + myFLS.Bericht end,"
")
lg, Torsten
-
Ahhhhh, danke, das wars. Ich war glaube ich einfach nur betriebsblind.
Bei mir sieht das übrigens jetzt so aus, da es ansonsten keine Möglichkeit gab, das nach Timestamp zu sortieren:
let myAktenzeichen := 'Klient*in'.Aktenzeichen;
join(for myFLS in (select Fachleistungen)[this.'Klient*in'.Aktenzeichen = myAktenzeichen] order by Timestamp do
myFLS.Datum + " " + myFLS.Beginn + "-" + myFLS.Ende + " Klient: " + myFLS.'Klient*in'.'Kund*innen'.Vorname + " " + myFLS.'Klient*in'.'Kund*innen'.Name + " Betreuer: " + 'Mitarbeiter*innen'.'Kürzel' + "
" + myFLS.Bericht
end, "
")
-
Hallo,
"order by" ist auch Mittel der Wahl, ansonsten erfolgt die Sortierung immer nach der (internen) Datensatz-ID.
lg, Torsten
-
Ah, es geht auch etwas eleganter. Ich habe Das Feld in eine andere Datenbank verschoben, wo es mehr Sinn macht. Hier funktioniert dann auch die Rückverknüpfung korrekt.
join(for myFLS in Fachleistungen order by Timestamp do
myFLS.Datum + " " + myFLS.Beginn + "-" + myFLS.Ende + " Klient: " + myFLS.'Kund*innen'.Vorname + " " + myFLS.'Kund*innen.Name + " Betreuer: " + myFLS.'Mitarbeiter*innen'.'Kürzel' + "
" + myFLS.Bericht
end, "
")
Ich hätte nie geglaubt, dass ich nach 10 Jahren wirklich nochmal meine SQL-Kenntnisse gebrauchen könnte...
Content aside
- vor 4 JahrenZuletzt aktiv
- 7Antworten
- 1565Ansichten