0

Berechnung des aktuellen Bestandes

Liebe Community

Ich stehe auf dem Schlauch und brauche Hilfe. Ich habe ein vermutlich häufiges und banales Problem. Ein Medikament hat einen aktuellen Bestand (Bestand). Jeder neue Datensatz enthält ein Feld für Lieferung (erhöht den Bestand) und Verbrauch (erniedrigt den Bestand), sowie eben den neuen Bestand. Ich möchte also ganz einfach berechnen:

Bestand des vorhergehenden Datensatzes + Lieferung - Verbrauch = Bestand des aktuellen Datensatzes

Wenn ich jedoch eine Formel einfüge für das Feld "letzterBestand", um den Bestand des vorhergehenden Datensatzes abzufragen:

if Datensatz = 1 then                      *ich habe ein Feld definiert: Datensatz= Nr*
    0
else
    let Letzter := last((select Medikamente) order by number(Nr));
    let Vorletzter := last((select Medikamente where number(Nr) < Letzter) order by number(Nr));
    Vorletzter.Bestand
end

eine weitere Formel für das Feld "Bestand" wäre dann:

letzterBestand + Eingang - Verbrauch

Das geht aber alles nicht wegen "circular reference"

Was mache ich hier falsch

Vielen Dank für Eure Hilfe

Pascal

5 Antworten

null
    • mirko3
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Hi Pascal. Versuche es mal so. Mirko

    let me := this.number(Nr);
    sum(((select Medikamente) order by number(Nr))[number(Nr) <= me].(Lieferung - Verbrauch))
    
    • Admin_EYEPARC
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Lieber Mirko

    Vielen Dank, das wäre je so einfach gewesen. Jetzt habe ich ein weiteres Dilemma. Ich erzeuge mit einem Script auf der Seite 'IVT Bestand' einen neuen Eintrag in der Untertabelle 'Medikamente'. Das ist ein script, das ich schon hundert mal gebraucht habe, aber aktuell macht es mir keine Relation zu der darüberliegenden Tabelle (Seite). Ich mach da einen banalen Fehler. Kannst Du mir sagen wo?

    let my := this;
    let new := (create Medikamente);
    new.('IVT Bestand' = this);
    popupRecord(new)

     

    Vielen Dank

    Pascal

      • UweG
      • vor 5 Monaten
      • Gemeldet - anzeigen

       

      Probier es mal wie folgt:
      let my := this;
      let new := (create Medikamente);
      new.('IVT Bestand' = number(my));
      popupRecord(new)

      • Admin_EYEPARC
      • vor 5 Monaten
      • Gemeldet - anzeigen

       

      Lieber Uwe

      Vielen Dank für Deine Antwort. Das funktioniert leider auch nicht. Es wird zwar ein neuer Datensatz in der Tabelle Medikamente erzeugt, aber leider ist dieser immer noch nicht mit der Seite 'IVT Bestand' verbunden - sehr seltsam, sonst geht das problemlos

      • Admin_EYEPARC
      • vor 5 Monaten
      • Gemeldet - anzeigen

       

      ..... sorry, hab's gesehen - nur der Doppelpunkt fehlte bei......  := number(my))

Content aside

  • Status Answered
  • vor 5 MonatenZuletzt aktiv
  • 5Antworten
  • 55Ansichten
  • 3 Folge bereits