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 Jahren
    • 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 Jahren
    • 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 Jahren
    • 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 Jahren
    • 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 Jahren
    • Gemeldet - anzeigen

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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Stimmt, so ist es viel übersichtlicher. Top