0

Massendatenänderung fortlaufende Zahl

ein altes Problem von mir welches immer noch offen ist..

 

wie kann ich per massendatenänderung eine Tabellenspalte mit vortlaufender nummerierung befüllen..  am beispiel in einer Tabelle mit Namen und Vornamen kommt eine Spalte persNR dazu welche anfangs leer als Zahlenfeld definiert ist und nun mit 1-100 befüllt werden muss da schon 100 Personen eingepflegt wurden..

 

an der Internen NR kann mans nicht fest machen da die Zahl nicht fortlaufen ist..

35 Antworten

null
    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ich würde es so machen: ohne Massendatenänderung

    in der Tabelle/Formular eine Schaltfläche mit folgendem Code:

    var LFD := 1;

    for DAS in select 'hier Tabellenname' do

        DAS.'hier Feldname' := LFD;

        LFD := LFD + 1;

     

    end;

     

    Anschließend Schaltfläche wieder löschen.

    ( es gibt noch andere Möglichkeiten)

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Bernd bin grad unterwegs und werd mir das am Abend ansehen...

    was och aber gar nicht verstehe warum die interne Kontextfunktion markieren, kopieren, einfügen nicht funktioniert.. die Funktion scheints hat gar keine Funktion... löschen kopieren funktioniert.. der Rest ist funktionslos ...

    es ist doch irgenwie seltsam das die einfachste funktion nur mit affengriffen zu erledigen ist..

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ach ja „( es gibt noch andere Möglichkeiten)“ ich würde mich freuen genaueres zu erfahren..

    Viele liebe Grüße! 

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    hier geht es auch noch, den Sript zu schreiben und ausführen zu lassen..., mache ich aber persönlich nicht...

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    das Teil macht mir ein wenig angst etwas zu verbiegen was im nachhinein nicht mehr korrigierbar ist... ich denke das ist eher etwas für spezis wie Birger und Leo..

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

    Für den Fall der Fälle vorher ein Backup der Datenbank anlegen. Damit lässt sie sich komplett wiederherstellen, wenn irgendwas schiefgehen sollte.

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Na das ist schon klar ;) ändert aber nichts am Hintergrund ne simple Problematik mit STRG+C STRG+V zu lösen..

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Bernd das funktioniert soweit wenn ja wenn keine Datensätze dupliziert werden oder sortiert wurde..

    als Beispiel wird eine Produktgruppe um  Klasse 1/1 um die Klasse 1/2  und oder 1/3 erweitert und diese Aufsteigend sortiert wird in deinem Script die PersID nicht nach Sortierung neu vergeben sondern nach der Anlagezeit..

    bspw. Alte Tabelle Mustermann 1-10 neue Tabelle Musteman5 gibt es 3x Franz, Ferdinand, Paul... wenn ich diesen mit deinem Script neue PersID gebe hat Musterman1.Franz PersNR5 und die neuen Ferdinand und Paul PersID 11 und 12.. egal wie es sortiert wurde..

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

    Mein Hinweis sollte auch lediglich etwas an der Angst ändern, "etwas zu verbiegen was im nachhinein nicht mehr korrigierbar ist".

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    weis ich doch darum auch der schmeili :)

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    mit Sortierung:

    var LFD := 1;

    for DAS in select 'hier Tabellenname' order by 'hier Sort-Feldname' do

       DAS.'hier Feldname' := LFD;

       LFD := LFD + 1;

    end;

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    cool vielen Dank dafür..

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    wird gleich in die Toolsbibliothek aufgenommen.

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    sorry das funktioniert auch nicht richtig..  kann es auch gar nicht weil order by eine ordnung in die unordnung bringt die bei Mustermann1 bis x noch funktioniert nicht aber bei normalen namen  hier wird die order by am Alphabet fest gemacht..

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    wie ist denn die Ordnung, ich kann es vonhier nicht so richtig erkennen. Am besten, ein Foto von der Tabelle posten und dazu die Reihenfolge der Datensätze beschreiben...

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Morgen Bernd hier ist das Foto 

     

    ich spiele da gerade alle Varianten durch und bei allen wird mit Order By  was auch klar ist eine Ordnung erzwungen die eigentlich nicht erwünscht ist.. es sollte wie in excel mittels STRGC STRGV der Inhalt in diesem Fall eine Fortlaufende Nummer einfügbar sein.. unter OSX in der App. schaut es auch danach aus nur tut diese über den Kontext nichts..

    Das deine Formel die in übrigen genau das macht was sie soll 1A ist sollte nicht extra kommentiert werden, das ist wie bei allen helfenden der Fall und kann nicht oft genug hervorgehoben werden..

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Möchte noch etwas Anfügen in der Webversion funktioniert dieses STRG+C STRG+V nicht... in der aktuellen OSX APP funktioniert es nun was in der vorigen noch nicht funktionierte.. absolut schräg.. in der IOS gibts das so scheints gar nicht... muss mich gleich mal auf die Suche machen..

    wird viele auch gar nicht betreffen.. ich muss nur sehr oft in den Abteilungen die Mitarbeiter nachrücken lassen und die PersID in den Sektionen neu vergeben  aber somit ist das Problem auch gelöst..

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ich verstehe das Problem nicht 🙄,

    Strg+C, Strg+V geht nicht...

    im ersten Post wolltest Du ein Feld mit einer fordlaufenden Nummer befüllen. Du übernimmst irgendwie Daten und möchtest das Feld füllen. Wo ist bei mir der Gedankenfehler?

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    sind schon teilweise Nummern vorhanden, doe nicht ünerschrieben werden dürfen...

    haben die Mitarbeiter schon eine ID, die dann entsprechend eingetragen werden sollen...

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    >ich verstehe das Problem nicht 🙄,

    Strg+C, Strg+V geht nicht...<

    doch aber nur in der MAC OSX  App nicht unter WEB über den Browser und nicht über IOS.

    Zurück zur SortProblematik..

    nach Fam.Name kann ich nicht sortieren lassen..

    nach gesammt PersID auch nicht da diese in einer Abteilung an unterschiedlichen Positionen sind. Sprich sie wären durcheinander.. es gibt nur zwei Möglichkeiten entweder über die OSX App oder den Export via CSV und den den Reimport...  Ninox als MAC App hat sogar die Funktion wie in EXCEL durchs runterziehen in der Tabellenspalte die Werte autozuvervollständigen.. kann aber nicht oder noch nicht erkennen das es durch Mehrfachauswahl hochzählen soll.

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

    Auch mir ist nicht ganz klar, wo genau das Problem liegt. Du sagst immer, was alles nicht geht, jedenfalls nicht so wie bei Excel. Es wäre aber wichtiger zu wissen, was du erreichen willst bzw. wie das Ergebnis aussehen soll. Dann kann man auch Ideen entwickeln, wie es mit Ninox(!) gehen könnte.

    Also: Beschreib doch mal das Ziel etwas genauer. Zum Beispiel: Welches Feld willst du nach welchen Kriterien sortieren und/oder durchnummerieren?

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    aus einer Tabelle Personal Gesammt (runde 2000Datensätze) werden in Abhängigkeit der Stellung und der Abteilung in einer Rotation 2 Mal im Jahr  einige Personen ausgetauscht..

    Diese kommen aus der Personal gesammt und haben eine PersID Gesammt von 1-2000 Nummeriert.. Die Datenbank der Abteilung bekommt aus dieser Datenbank/Tabelle in Abteilung X 15 Personen zugeteilt die in der Abteilung eingesetzt werden und die PersID Gesammt NICHT verwendbar ist.. 

    Jetzt kommt es noch zusätzlich dazu, das eventuell ausscheidende Mitarbeiter die in Verfahren Pension/Kündigung usw.. Löcher in die Datenstruktur reißen und neu geordnet werden muss... 

    sprich ich kann diese weder nach PersID, internerNR aus Ninox, Namen oder Gebursttage sortieren lassen.

    löschen nachrücken verschieben und danach die ID Neu vergeben vortlaufend basierend auf den Zustand ohne Filter..

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    und sorry <Du sagst immer, was alles nicht geht, jedenfalls nicht so wie bei Excel.>

    wenn es funktionieren wür, würde ich nicht fragen..

    und wenn die Doku umfasender wäre, würden sich viele Anfragen so oder so erübrigen

    da ich die gesamte Spalte nun in der Ninox App unter osx nun kopieren kann ist das Thema für mich erledigt...  thread schließen haben fertig

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn ich mich in die Diskussion noch einmischen darf. Ich würde statt Massendatenänderung einfach ein Berechnungsfeld einfügen und dieFormeln etwa so schreiben:

    ---

    lei myID:=Personalnummer;

    cnt(select 'DEINE TABELLE' [Personalnummer<=myID])

    ---

    Dann braucht man nicht jederzeit neu die Massendatenänderung durchzuführen. Und bei Änderungen werden die Nummern wieder neu geordnet wenn das gewünscht ist. 2000 Datensätze sollte Ninox schaffen ohne das die Ladezeit  spührbar beeinträchtigt wird.

    Leo

    • Martin_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Leo  bin gerade am testen der Szenarien..