0

Sortierung mit oder by

Bildschirmfoto 2020-07-30 um 21.06.26

 

Hat jemand eine Idee, wie ich den Eintrag aus der ersten Zeile der Tabelle "Laufergebnisse" ans Ende der Tabelle bekomme?
Die Tabelle ist nach Rang sortiert. Aber da in diesem Fall kein Ergebnis (Zahlen Feld "Ergebnis" = null) vorliegt, wird auch kein Rang vergeben und diese Zeile eigentlich ans Ende sortiert werden...

Die Datensätze dieser Tabelle werden mit folgendem Code aus einer anderen Tabelle (my) generiert.

for i in my order by Ergebnis do
let myLaufErg := (create Laufergebnisse);
myLaufErg.(Person := i);
myLaufErg.(Hund := i);
myLaufErg.(Ergebnisse := i.myErgebnis);
myLaufErg.('1. Sprung' := i.'1. Sprung');
myLaufErg.('2. Sprung' := i.'2. Sprung');
myLaufErg.(Ergebnis := i.Ergebnis);
myLaufErg.('Startnr.' := i.Startnummer);
if i.Ergebnis = null then
myLaufErg.(Rang := null)
else
myLaufErg.(Rang := i.myRang);
myRang := myRang + 1
end
end

6 Antworten

null
    • Leonid_Semik
    • vor 4 JahrenFri, July 31, 2020 at 5:08 AM UTC
    • Gemeldet - anzeigen

    Da Ninox nach sichtbaren Spalten sortiert. Wird die Leere Zeile immer vor der gefüllten Zeilen stehen. Einzige Möglichkeit ist es, beim Rang die Nummer 7 zu vergeben. 

    ---

    if i.Ergebnis = null then
    myLaufErg.(Rang := cnt(my)) else .....

    ---

    es wird zwar blöd wenn mehrere Teilnehmer disqualifiziert sind, aber sie werden alle am ende stehen.

     

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 4 JahrenFri, July 31, 2020 at 7:31 AM UTC
    • Gemeldet - anzeigen

    Guten Morgen, was spricht denn dagegen, für die sichtbare Sortierung einfach ein Funktionsfeld zu nehmen und dort bei Nichtwertung ggf. ein "DIS", "X" o. ä. reinzuschreiben: >> if Rang then text(Rang) else "X" end <<? Nur so als Idee.

    • info.28
    • vor 4 JahrenFri, July 31, 2020 at 8:01 AM UTC
    • Gemeldet - anzeigen

    Danke @Leo! Habs befürchtet! 
    Danke auch an @Copytexter. Das hab ich schon probiert. Aber mit Text funktioniert leider die Sortierung nicht, da z.B. 11 vor 2 sortiert wird.

    Werd mich wohl mit einem Rang begnügen müssen um die Einträge richtig zu sortieren. Obwohl das in Wirklichkeit falsch ist, weil jemand der zweimal disqualifiziert wurde, eigentlich keinen Rang inne haben kann...

    Danke trotzdem an euch! :)
    LG

    • Ninox-Professional
    • planoxpro
    • vor 4 JahrenFri, July 31, 2020 at 8:08 AM UTC
    • Gemeldet - anzeigen

    Na ja, das Problem der Sortierung bei mehrstelligen Teilnehmerzahlen könnte man mit führenden Nullen lösen:

     

    if Rang then format(Rang, "00") else "X" end

    • info.28
    • vor 4 JahrenFri, July 31, 2020 at 12:20 PM UTC
    • Gemeldet - anzeigen

    Das war die perfekte Idee! Genau so hab ich es jetzt umgesetzt! :) DANKE!

    • Leonid_Semik
    • vor 4 JahrenFri, July 31, 2020 at 2:14 PM UTC
    • Gemeldet - anzeigen

    Stimmt, so ist es viel übersichtlicher. Top