Freitag, 19. April 2024, 11:11 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Ms.Moneypenny

unregistriert

1

Dienstag, 20. Mai 2008, 17:52

zeitliche Abfolge von Ereignissen

Hallo zusammen!

ich möchte gerne drei zeitlich aufeinander folgende Ereignisse erfassen:

zuerst tritt "Ereignis A" ein, dann "Ereignis B" und dann "Ereignis C" - ansonsten soll INV auf "Ereignis A" warten.
Tritt "Ereignis B" oder "Ereignis C" nicht innerhalb von "Y Perioden" ein, soll INV ebenfalls an den Anfang (also vor "Ereignis A") zurückkehren.

Nun bin ich kein Programmierer und habe mit dem INV-Assisten versucht, das irgendwie mit IF verschachtelt in den Griff zu bekommen
(die AND Funktion beinhaltet nicht die zeitliche Abfolge); - bin aber immer wieder gescheitert....

Wie kann das in INV unter zeitlicher Berücksichtigung gelöst werden?

Danke für eure Hilfe!

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Dienstag, 20. Mai 2008, 18:03

Hallo

Klingt, als solltest Du auf Ereignis C warten und dann mit BarsSince() abfragen, ob die Ereignisse A und/oder B innerhalb der zurückliegenden gewünschten Periodenzahl wahr ist.
Gruss
Bernd

Ms.Moneypenny

unregistriert

3

Dienstag, 20. Mai 2008, 18:20

Hallo Bernd,

danke für deinen Input, - ich habe da einen Fehler gemacht:
"Tritt "Ereignis B" oder "Ereignis C" nicht innerhalb von "Y Perioden" ein"

soll richtig heissen:


"Tritt "Ereignis B" und dann "Ereignis C" nicht innerhalb von "Y Perioden" ein".

Also wichtig ist hier die Erfassung der genauen Abfolge von A dann B dann C - ansonsten warten auf A.
Wenn nun A und B eingetreten sind, aber C zu lange auf sich warten lässt, dann wollte ich wieder zurück, nur deshalb noch Y dazu.

Tim

unregistriert

4

Dienstag, 20. Mai 2008, 18:56

Hallo Mr Moneypenny,

du kannst den Ansatz vom Bernd trotzdem verwenden.
Musst einfach zusätzlich abfragen dass:

Barsince(EreignisA,1) > Barssince(EreignisB,1) and Barssince(EreignisB,1)>Barssince(EreignisC,1)

Eine bestimmte Maximalanzahl Perioden seit dem Ereignis A kannst du mit

Barsince(EreignisA,1) <=Wert der Maximalanzahl Perioden

und einer zusätzlichen "and"-Verknüpfung festlegen.

Cu Tim

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

5

Dienstag, 20. Mai 2008, 19:07

Versuch' doch mal

global calc valid: If( Ereignis_C, If( BarsSince( Ereignis_B, 1) < BarsSince( Ereignis_C, 1) AND BarsSince( Ereignis_A, 1) < BarsSince( Ereignis_B, 1), 1, 0), 0);

Liefert 0 wenn die Bedingungen nicht erfüllt sind, und 1 wenn erfüllt. Hab's zwar nicht getestet und aus Fantasie nur so hingeschrieben, könnte aber gehen :D
Gruss
Bernd