0

Doppelte Schleife und Probleme mit contains() und Zahlenwerten

Hallo Zusammen,

ich habe leider noch ein Problem:

Ich möchte überprüfen, welche Trikotnummern noch frei sind. Dafür habe ich folgende Schleife gebaut:

let me := this;
let mygroup := (select Spielerdatenbank where Geschlecht = me.Geschlecht and year(Geburtsdatum) = me.year(Geburtsdatum));
let mygivennumbers := unique(sort(mygroup.Trikotnummer));
"Freie Trikotnummern:" + "
" + concat(if even(year(Geburtsdatum)) = true then
for i in range(2, 100, 2) do
if not contains(text(mygivennumbers), text(i)) then
i
else
void
end
end
else
if odd(year(Geburtsdatum)) = true then
for i in range(1, 100, 2) do
if not contains(text(mygivennumbers), text(i)) then
i
else
void
end
end
end
end)

Jetzt klappt das eigentlich ganz gut, jedoch werden mir keine freien Nummern von einstelligen Nummern von 1-9 angezeigt. Ich habe auch schon versucht mit format(i,"00") und format (Trikotnummer,"00") das Ganze in ein anderes Format zu heben, klappt aber auch nicht. Auch mit zwei Schleifen geht es nicht - jedenfalls komme ich da nicht weiter (Stand: for ii in mygroup.Trikotnummer do if i != ii then unique(i)  else void end end.

Vielleicht könnt ihr mir noch mal helfen und habt eine Idee...

Liebe Grüße

Stephan

2 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Stephan,
    Ich würde es so ausprobieren:

    ---

    let me := this;
    let mygroup := (select Spielerdatenbank where Geschlecht = me.Geschlecht and year(Geburtsdatum) = me.year(Geburtsdatum));
    let mygivennumbers := "#"+join(mygroup.Trikotnummer,"#")+"#";
    let myStart:=if even(year(Geburtsdatum)) then 2 else 1 end;
    "Freie Trikotnummern:" + "
    " + concat( for i in range(myStart, 100, 2) do
    if not contains(mygivennumbers, "#"+i+"#") then
    i
    end
    end)

    ---

    Leo

    • Stephan_Haumann
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Funktioniert perfekt! Vielen Dank, Leo!