Du hinterlegst hinter den Ausgangsprodukten und Endprodukten Attribute.
Also benutzerdefinierte Attribute der Produkte öffnen und bspw. ein neues Attribut vom Typ string anlegen und jedem Ausgangsprodukt teilst du das Attribut a1, a2 ... an und b1,b2 ... bn usw. mit.
Das Endprodukt bekommt nur das Attribut mit gleichem Typ, aber der Wert bleibt leer.
Die Montagestation vergleicht dann die Attribute.
Code:
if Vorgänger1.Attribut = "a1" and Vorgänger2.Attribut = "b1" thenEndprodukt.Attribut := "ab11";
end;
if Vorgänger1.Attribut = "a2" and Vorgänger2.Attribut = "b2" thenEndprodukt.Attribut := "ab22";
end;
if Vorgänger1.Attribut = "a1" and Vorgänger2.Attribut = "b2" thenEndprodukt.Attribut := "ab12";
end;
...
Das ganze mit Tabelle:
In die erste Spalte Ausgangsprodukt A (Format = Typ der Attribute, bspw. string) hinterlegen und in der zweiten Spalte Ausgangsprodukt B zu ordnen. Damit hast du alle Kombinationen und gibst in der dritten Spalte nur noch den Wert an der entsprechend die Kombination beschreibt (bspw. vom Typ string "ab11, ab21, ab22").
Anstatt die Attribute nun in der Methode direkt zu vergleichen musst du dann nach den entsprechenden Attributen in der Tabelle suchen.
Die Kombination A,B wird gefunden und der Wert der Tabellenspalte 3 wird dann dem Attribut des Endproduktes übergeben.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP