Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Tabelle nach mehreren Werten gleichzeitig durchsuchen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Tabelle nach mehreren Werten gleichzeitig durchsuchen (1449 mal gelesen)
Maddin1b
Mitglied
Student

Sehen Sie sich das Profil von Maddin1b an!   Senden Sie eine Private Message an Maddin1b  Schreiben Sie einen Gästebucheintrag für Maddin1b

Beiträge: 3
Registriert: 26.11.2018

erstellt am: 26. Nov. 2018 15:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Tabelle_Gewichtung_AP.JPG

 
Hallo,

ich möchte im Rahmen meiner Masterarbeit die Matrix-Produktion simulieren.
Mit Hilfe mehrerer Tabellen möchte ich hierbei den aktuellen Produktbestand und den jeweiligen Arbeitsfortschritt auswerten.

Beim erzeugen der Produkte in der Quelle werden die Produkte alle in die Tabelle Gewichtung_AP geschrieben.
Dabei sollen die einzelnen Einträge quasi gleichzeitig nach Arbeitsfortschritt und Variante gruppiert werden.

Ich habe es schonmal hinbekommen, dass er die Einträge nach dem Attribut @.name zählt.
Nun soll er jedoch nur die Einträge mit einem Namen zählen, die den gleichen Arbeitsfortschritt (nächstes_AP) besitzen.


Folgende Methode habe ich dafür in die Ausgangssteuerung der Arbeitszellen hinterlegt.

-- Neuen Auftragsstatus einfügen
-- variablen einführen
var b: string :=@.name
var c: integer :=@.nächstes_AP

--suchen ob Eintrag bereits vorhanden
gewichtung_AP.setzezeiger(0,0)
repeat gewichtung_AP.finden({0,1}..{0,*},b)
until gewichtung_AP.zeigery=gewichtung_AP.ydim or gewichtung_AP["nächstes_AP",gewichtung_AP.zeigery]=c

-- wenn Eintrag vorhanden mit gleicher Variante und Arbeitsfortschritt vorhanden, dann Anzahl erhöhen
if gewichtung_AP.finden({0,1}..{0,*},b)=true and gewichtung_AP["nächstes_AP",gewichtung_AP.zeigery]=c
gewichtung_AP["Anzahl",gewichtung_ap.zeigery]:=gewichtung_AP["Anzahl",gewichtung_ap.zeigery]+1

--ansonsten neuer Eintrag
else
var d: integer :=gewichtung_AP.ydim
gewichtung_AP["Variante",d+1]:=@.name
gewichtung_AP["Anzahl",d+1]:=1
gewichtung_AP["Nächstes_AP",d+1]:=@.nächstes_AP
end


-- Anzahl des Eintrags mit vorherigem Arbeitsfortschritt um eins verringern
-- suchen des alten Eintrags
gewichtung_AP.setzezeiger(0,0)
repeat gewichtung_AP.finden({0,1}..{0,*},b)
until gewichtung_AP.finden({0,1}..{0,*},b)=true and gewichtung_AP["nächstes_AP",gewichtung_Ap.zeigery]=c-1
-- Eintrag um eins verringern
gewichtung_AP["Anzahl",gewichtung_AP.zeigery]:=gewichtung_AP["Anzahl",gewichtung_AP.zeigery]-1


Sobald die Methode ausgeführt wird bekomme ich eine Fehlermeldung die sich auf den folgenden Befehl bezieht:

until gewichtung_AP.zeigery=gewichtung_AP.ydim or gewichtung_AP["nächstes_AP",gewichtung_AP.zeigery]=c

Das Programm verweist darauf, dass die Operanden nicht kompatibel sind.

Wie könnte ich dieses Problem lösen?


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 26. Nov. 2018 20:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Maddin1b 10 Unities + Antwort hilfreich

Hallo Maddin1b,

eine weitere Zelle mit dem Inhalt: "Name_Arbeitsfortschritt" anlegen.

Für die großen Spielerei mit Auftragssteuerungen usw. am besten mal DIES durchblättern.

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Maddin1b
Mitglied
Student

Sehen Sie sich das Profil von Maddin1b an!   Senden Sie eine Private Message an Maddin1b  Schreiben Sie einen Gästebucheintrag für Maddin1b

Beiträge: 3
Registriert: 26.11.2018

erstellt am: 27. Nov. 2018 08:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für die schnelle Antwort.
Der Arbeitsfortschritt wird quasi über das nächste Arbeitspaket abgebildet.

Mit der SQ-Lite Variante habe ich mich noch nicht beschäftigt.
Gibt es in Plant Simulation keine andere Möglichkeit in Tabellen nach mehreren Kriterien gleichzeitig zu suchen?


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 27. Nov. 2018 12:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Maddin1b 10 Unities + Antwort hilfreich

die Funktion sucht in einem vorgegebenen Bereich nach einem! Wert. Damit ist dein Code-Ansatz gut.

Code:

--suchen ob Eintrag bereits vorhanden
var _kon1: boolean := false
gewichtung_AP.setzeZeiger(0,0)
while gewichtung_AP.finden({0,1}..{0,*},b) loop
if gewichtung_AP["nächstes_AP",gewichtung_AP.zeigery]=c
_kon1:= true
exitloop
end
end

-- wenn Eintrag vorhanden mit gleicher Variante und Arbeitsfortschritt vorhanden, dann Anzahl erhöhen
if _kon1
gewichtung_AP["Anzahl",gewichtung_ap.zeigery]:=gewichtung_AP["Anzahl",gewichtung_ap.zeigery]+1
else
//TODO
debug
end
...


INFO: Jedes mal, wenn du "finden"-aufrufst, sucht die Methode aufs NEUe!!!


vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Maddin1b
Mitglied
Student

Sehen Sie sich das Profil von Maddin1b an!   Senden Sie eine Private Message an Maddin1b  Schreiben Sie einen Gästebucheintrag für Maddin1b

Beiträge: 3
Registriert: 26.11.2018

erstellt am: 29. Nov. 2018 10:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

vielen Dank für den Tipp.
Habe es jetzt erstmal über Subtabellen lösen können. Auf deine Lösung werde ich aber mit Sicherheit nochmal zurückgreifen.


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz