Hallo,
ich brauche wiedermal Eure Hilfe und hoffe, Íhr könnt mir weiterhelfen.
Der Ausgang eines Sortierers ist so lange gesperrt, bis seine Kapazität (30 BE) erreicht ist. Mit jedem neu eintreffenden BE erfolgt eine Sortierung nach dem freien Attribut "Priorität" des eintreffenden BE. Ist die Kapazität des Sortierers erreicht, werden die 16 höchst-priorisierten BE an eine Parallelstation umgelagert.
Soweit funktioniert alles.
Aber: nun möchte ich, dass die verbleibenden BE im Sorter (Anzahl: 14) eine Prioritätenerhöhung bekommen, damit sie nicht ewig im Sortierer verbleiben, sondern irgendwann die höchste Priorität (1) erhalten und ausgelagert werden. Mit anderen Worten, es muss jedes verbleibende BE im Sorter angesprochen werden und sein freies Attribut "Priorität" (z.B. 5) um eines vermindert werden (von 5 auf 4).
Und damit vielleicht etwas ersichtlicher wird wie meine Methode aussieht, hier die Methode:
Code:
is
SortiererKapazität : integer;
ParallelstationKapazität : integer;
Sortiererinhalt : integer;
i : integer;
ii : integer;
rest : integer;
do
SortiererKapazität := .Modelle.Netzwerk.Sortierer.Kapazität; -- 30
ParallelstationKapazität := .Modelle.Netzwerk.Parallelstation.Kapazität; -- 16
Sortiererinhalt := .Modelle.Netzwerk.Sortierer.anzahlBEs;
If Sortiererinhalt < SortiererKapazität then
Sortierer.Ausganggesperrt := true;
else
Sortierer.Ausganggesperrt := false;
for i := 1 to ParallelstationKapazität loop
Sortierer.inhalt.umlagern(Parallelstation);
next;
rest := SortiererKapazität - ParallelstationKapazität;
for ii := 1 to rest loop
-- an dieser Stelle muss nun der Zugriff auf das BE-Attribut "Priorität" erfolgen und eine Subtraktion "Priorität -1" geschehen
Sortierer.inhaltsliste(Inhalt_Sortierer);
end;
end;
Ich hoffe, Ihr könnt mir einen Tip geben.
Vielen Dank im Voraus.
Mattes
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP