0

Spalte einfügen (wie bei Excel) - Geht das?

Hallo zusammen, ich habe wieder mal eine Frage. Ich habe bei Ninox ein Routing für eine Heftverteilung erstellt. Nun ändert sich dieses immer mal wieder. Ablagestellen fliegen raus oder es kommen neue dazu. Bei Excel habe ich einfach immer eine Spalte an der richtigen Stelle (soll ja geroutet sein) eingefügt und im Anschluss die ganze Tabelle neu nummeriert, fertig war.

Bei Ninox habe ich eine derartige Möglichkeit leider noch nicht gefunden. Gibt es die Möglichkeit zwischen zb Nr 10 und 11 eine neuen Datensatz zu erzeugen, der dann die Nummer 11 hat, während die alte 11 die neue 12 ist?

 

Bisher habe ich nur die Möglichkeit einzeln überall einen Haken zu setzen und dann über die Massendatenänderung zu gehen, was bei 960 Auslagestellen und ohne die Möglichkeit die Auswahl durch ziehen zu vergrößern mehr als beschwerlich ist. Oder mit Nummern wie 11.1 zu arbeiten, was ich aber etwas unsauber finde.

 

Vielleicht bin ich ja auch einfach bur zu blöde, jemand eine Idee?

 

Schöne Grüße!

3 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Paul, Leo hat mal eine Musterlösung erstellt, mit der man einem Eintrag manuell eine neue Nummer vergeben kann und alle folgenden Einträge automatisch entsprechend neu durchnummeriert werden. Ich könnte mir vorstellen, dass sie auch dein Problem löst. Die Datenbank hat den Namen "130_Untertabelle_nummerieren" und findet sich im Team "Webinar DE 2019". 

     

    Falls du noch nicht Mitglied dieses Teams bist: Kurze Mail an den Support mit Bitte um Aufnahme in das Webinar-Team und Angabe der E-Mail-Adresse deines Ninox-Accounts genügt.

    • Paul_J_Herberhold
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das klingt nach einer Lösung, ich danke dir! 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Paul,

    Interne IDs kann man nachträglich nicht verändern. ist auch gut so - schließlich ist Ninox keine Tabelle, sondern eine Datenbank und es ist sehr wichtig, dass die IDs für Verknüpfungen unverändert bleiben. In deinem Fall würde ich eine neue Zahlenspalte (nennen wir diese LFDNR) hinzufügen. In der Tabelle kann man mit einem Trigger bei neu erstmal die automatische Nummervergabe einstellen:
    ...

    LFDNR:=max(select DEINETABELLE.LFDNR)+1
    ...

    so werden alle Nummern automatisch vergeben. Jetzt zu den nach träglichen Änderungen:
    hier muss man untrescheiden ob du einen Datensatz nach oben oder nach unten bewegst. Ich würde es universell gestallten, so dass Ninox zuerst die Nummern nach unten durchläuft und dann nach oben. Dafür schreiben wir einen Trigger nach Änderung des Feldes LFDNR:
    ...

    let me := this;
    var myCounter := 0;
    for i in (select DEINETABELLE where Nr != me.Nr and LFDNR >= me.LFDNR) order by LFDNR do
    myCounter := myCounter + 1;
    i.(LFDNR := me.LFDNR + myCounter)
    end;
    myCounter := 0;
    for i in (select DEINETABELLE where Nr != me.Nr and LFDNR <= me.LFDNR) order by LFDNR do
    myCounter := myCounter + 1;
    i.(LFDNR := myCounter)
    end

    ...

    So kannst du nicht nur die neuen Datensätze nach oben schieben sondern auch die alten nach unten. Die Tabelle muss nach die Spalte LFDNR sortiert werden und (leider) nach der Änderung manuell aktualisiert werden. Statt DEINETABELLE solltest du natürlich der Name deiner Tabelle schreiben.

    Leo