0

Datensätze nach Textfeld aufsteigend sortieren

Ich möchte Datensätze in einer Tabelle nach einem Textfeld sortieren.

Die Datensätze enthalten in diesem Textfeld z.B. Nummerierungen von TOPs wie

1

10

11

2

3

2.1

3.3

Das Problem: 10 wird folgt immer direkt nach 1. So z.B.

1

10

2

Ich kann anstatt des Textfelds auch kein Zahlenfeld nutzen wegen der Inhalte in dieser Form "2.1"

10 Antworten

null
    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,
    einen Teil des Problems ist über die Formel
    replace(text(number(Textfeld)), ",", ".")
    zu lösen.

    Allerdings nicht die "2-stelligen Zahlen". Da muss wohl ein Profi ran = z.B. Leo
    Meine sehr begrenzten Kenntnisse sind hier zu Ende.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    wenn es nur bei einem Punkt bleibt (2.1) dann kannst du eine Zusatzspalte einfügen 

    ...

    number('DEIN TEXTFELD')

    ...

    und danach sortieren. Es sieht zwar blöd aus (2,1 statt 2.1) aber es funktioniert.

    Leo

    • Mirko.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin,

    ich habe ein ähnliches Problem gehabt, bei mir war es wichtig, dass ich die Datensätze einsortieren kann im Nachhinein, deshalb hatte ich auch ein Textfeld zur Sortierung gewählt. So konnte ich mit 2a oder 2.1 Datensätze zwischen die schon bestehende Reihenfolge einsortieren, ohne dass ich alle anderen Datensätze neu nummerieren musste.

     

    Jetzt habe ich das ganze anders gelöst, über eine Formel wird das Feld Sortierung automatisch neu sortiert.

    Jetzt kann ich jederzeit eine Zahl einfach zwischensetzen und alle nachfolgenden und vorherigen Zahlen werden automatisch neu nummeriert.

     

    Die Formel habe ich aus der Datenbank 130 aus dem Webinar Team.

    let myID := Nr;
    let myN := Sortierung;
    var NN := 0;
    for ii in TABELLE.UNTERTABELLE[Sortierung >= myN and Nr != myID] order by Sortierung do
    ii.(Sortierung := ii.Sortierung + 1)
    end;
    for ii in TABELLE.UNTERTABELLE order by Sortierung do
    NN := NN + 1;
    ii.(Sortierung := NN)
    end

     

    Vielleicht hilft Dir das ja auch weiter.

     

    Grüße Mirko

    • Markus.2
    • vor 4 Jahren
    • Gemeldet - anzeigen

    @Leonid Danke für den Vorschlag aber aufgrund der Zusatzspalte kann ich das leider so nicht verwenden.

    @Mirko Kannst du mir bitte einmal erklären wie ich das Skript an meine Tabelle anpasse bzw. wie die Tabelle strukturiert ist, in der du das erfolgreich einsetzt?

    Die Spalte Sortierung habe ich erstellt. Mein Problem ist noch, daß nur gewisse Datensätze aus meiner Untertabelle

    mit einzelnen Einträgen in der Haupttabelle verknüpft sind. D.h. das nur die Datensätze in der Untertabelle bei der Sortierung berücksichtigt werden dürfen, die mit dem jeweiligen Datensatz (Sitzung) entsprechend in der Haupttabelle verknüpft sind. Es dürfte sich nicht jedesmal die ganze Untertabelle sortieren.

    let myID := Nr;

    Welche Felder sind Sortierung und Nr?

    • Markus.2
    • vor 4 Jahren
    • Gemeldet - anzeigen

    @Mirko Das Problem ist, daß die Unterpunkte wie 2.1 oder 3.2 gewünscht sind und ich keine alternative Sortierung alla 1,2,3,4 haben möchte. 

    Im Prinzip möchte ich das Textfeld so beibehalten. Dort hinein Werte wie 1, 2.1 oder 3.2 schreiben. Aber Ninox soll mir die Reihenfolge automatisch bei hinzufügen eines neuen Punktes sortieren. Nur Sortiert Ninox eben alla 1,10,2,3

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    Wenn die Zahlen maximal zwei Stellen haben (also. max 99.99.99) kannst du folgende Sktipt nach Änderung bei deinem Textfeld schreiben:

    ...

    let myARR := split(TEXTFELD, ".");
    let myNEW := for i in myARR do
    if number(i) < 10 then " " + i else text(i) end
    end;
    TEXTFELD := join(myNEW, ".")

    ...

    So wir Ninox jedesmal bei einstelligen Zahlen ein Leeizeichen vorne bringen und die Sortierung sollte dann korrekt werden.

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo leo, ich mußte es natürlich gleich ausprobieren.
    Leider wird nicht sortiert, dafür aber bei den Ziffen mit . (z.B. 2.4) hinter dem . ein Leerzeichen eingefügt.
    Grund: Keine Ahnung, würde mich aber interessieren

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Zusatz: Bei manuellem Einschalten der Spaltenfunktion "aufsteigend sortieren" wird einmal sortiert. Beim nächsten Eintrag wieder hinten angehängt. In jedem Fall nach dem . ein Leerzeichen.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi,

    Genauso ist es auch gedacht. Aus (2.4)macht Ninox (" "2." "4). So wird es gewährleistet, dass die Zahlentexte richtig sortiert werden. Wenn man in einem String ein Leehrzeichen am Anfang zetzt, entfernt Ninox dieses Leehrzeichen in der Anzeige, behält aber für die Berechnungen und wenn man das Feld anklickt, ist das Leerzeichen wieder da. Deswegen sieht man in der Dabellenansicht vorne keine Leerzeichen, hinter dem Punkt aber schon. Jetzt zur Sortierung. Ninox hat leider keine Aktualisierungsoption, deswegen muss man nach dem Einfügen des Datensatzes auf Aktualisierung klicken. 

    Leo

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, jetzt habe ich es begriffen. Danke.

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 10Antworten
  • 2900Ansichten