0

Berechnetes Feld Buchungsnummer in neue Tabelle übertragen

Hallo Leute,

Ich habe die Tabelle "Buchungen" und die Tabelle "Büchungsübersicht"

In der Tabelle Buchungen werden die Eingaben getätigt, die Buchungsnummer wird automatisch generiert und muss anschliessend in die Tabelle Buchungsübersicht übertragen werden was soweit auch klappt, aber es steht dann ein "J" vor der Buchungsnummer.

Automatisch generiert wird z. B. Buchungsnummer "421"

nach dem Übertragen in die Tabelle Buchungsübersicht steht in dem Feld der Buchungsübersicht "J421"

Warum?

let varBUNummer := 'Buchungsnr.';
let neueBuchung := (create Buchungsuebersicht);
neueBuchung.(Buchungsnummer := varBUNummer);
popupRecord(neueBuchung)

Die zweite Frage:

Ich muss evtl. bei den Buchungen noch Änderungen vornehmen nachdem der Datensatz gespeichert wurde.

Es darf auch nur der Datensatz mit der betreffenden Buchungsnummer geändert werden, es wird aber jedesmal ein neuer Datensatz in der Tabelle "Buchungsübersicht" mit der gleichen Buchungsnummer erzeugt, die Buchungsnummer soll aber einmalig sein.

Ich hoffe Ihr könnt mir helfen.

Gruß

Martin

4 Antworten

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

    Hallo Martin, auf welche Weise wird die Buchungsnummer denn generiert? Was ist 'Buchungsnr.' für ein Feldtyp? Und wo wird der gepostete Code ausgeführt?

    • FVS GmbH
    • FVS_GmbH
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die Buchungsnummer wird automatisch generiert über die Funktion Nr. Der Code wird ausgeführt wenn ich die Befehlsschaltfläche betätige, der Feldtyp vom Zielfeld ist Text

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

    Das "J" ist sehr wahrscheinlich die interne Kennung der Tabelle und Teil der mit 'Nr' ausgelesenen ID des Datensatzes. Diese Kennung wird zwar erst mal nicht mit angezeigt, bleibt intern aber vorhanden. Und sobald man den Wert in ein Textfeld überträgt, wird sie wieder sichtbar. So wird aus "421" wieder "J421".

     

    Fortlaufende Identifikationsnummern (wie hier die Buchungsnummer) an die Datensatz-Nr zu knüpfen, ist generell nicht unproblematisch. Wenn man es aber tut, dann sollte man mit

     

    number(Nr)

     

    sicherstellen, dass wirklich nur die laufende Datensatz-Nr als numerischer Wert übernommen wird. Sonst schleppt man immer die komplette 'ID' inklusive Tabellen-Kennung mit sich herum. Um den numerischen Wert dann als Text zu speichern, kann man bspw. mit text() oder format() arbeiten. Also

     

    text(number(Nr))

     

    oder (am Beispiel einer dreistelligen Darstellung mit führenden Nullen)

     

    format(number(Nr), "000")

    • FVS GmbH
    • FVS_GmbH
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Oh, ich habe gar keine Benachrichtigung bekommen das hier ein Eintrag gemacht wurde, vielen Dank, genau das ist die Lösung, habe ich heute mit Jörg klären können.