Hallo,
eine Frage zu den Methoden der Tabelle.
Zum Modellaufbau:
Jedes BE trägt eine Tabelle mit sich in welcher der „Fahrplan“ des BEs eingetragen ist.
Jede Station setzt einen Integer Wert und einen Timestamp.
z.B.
Station1 1 1:00:00
Station2 0
1 bedeutet, daß der Prozeß erfolgreich erledigt wurde.
0: noch nicht erledigt
-1 fehlerhaft
Bei -1 geht das BE an eine Nacharbeitstation welche einen zweiten Timestamp setzt und das BE zur gleichen Station zurückschickt. Dort wird erneut ein (dritter) Timestamp eingefügt.
Die Fahrplan Tabelle liegt als Baustein vor.
Die Methode zum übergeben des Fahrplans sieht wie folgt aus:
@.ProcessSequence := ProcessSequenceTbl.copy
Sprich, die Spaltenanzahl ist nur so groß wie ProcessSequenceTbl mit Werten gefüllt ist.
Das Einfügen von Nullen in ProcessSequenceTbl soll vermieden werden, da dadurch unnötiger Datenmüll entsteht.
Zum Problem:
Folgender Methodenauszug soll eine neue Spalte in die Tabelle des BEs einfügen und dort einen Timestamp setzen.
Aus dem Handbuch:
The method insertColumn adds an empty column to the right of the column designated by the argument <any> to the table. eM-Plant shifts all columns with an index equal to or greater than <any> one position to the right.
i := @.ProcessSequence.xDim;
@.ProcessSequence.insertColumn(i);
@.ProcessSequence.setDataType(i,"time");
Die Ursprüngliche Spalte i wird dadurch gelöscht…da die Tabelle @.ProcessSequence nur i Spalten hatte…Toll…
Gibt es eine Möglichkeit eine neue Spalte rechts von i zu erzeugen, ohne daß i verschoben wird.
Momentan helfe ich mir so weiter:
Anstelle von
@.ProcessSequence := ProcessSequenceTbl.copy
nutze ich
@.ProcessSequence := ProcessSequenceTbl.copy(`[1,*]..`[10,*]);
Dadurch sind ausreichend leere Spalten vorhanden welche nicht mit Nullen gefüllt werden müssen.
Danke!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP