Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Tabelle, abfrage

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, abfrage (7770 mal gelesen)
SnopyPlant
Mitglied



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

Beiträge: 21
Registriert: 03.11.2011

Plant Simulation Student Version 10.0.2

erstellt am: 21. Dez. 2011 21: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


Tabelle_abfrage.png

 
Hallo Planterteam,

in meinem Lagermodell wird in konstanten Zeitabstände eine zufällige Anzahl von BEs entnommen. Jeder Auslagerungsvorgang soll in einer Tabelle (Zeitpunkt,Menge,Auslagerungsbestätigung (Ja bzw. Nein) dokumentiert werden:

Code:
Tab_LagerAusgang.schreibeZeile(1,Tab_LagerAusgang.yDim+1,Ereignisverwalter.Zeit,Ausgelagertes_Los,"Ja");
bzw.
Code:
Tab_LagerAusgang.schreibeZeile(1,Tab_LagerAusgang.yDim+1,Ereignisverwalter.Zeit,Ausgelagertes_Los,"Nein");

Das "Ja" entspricht einer erfolgreichen Auslagerung und das "Nein" steht für den Fall, wenn nicht genügend BEs im Lager vorhanden sind um die zufällig erzeugte Anzahl von BEs auszulagern. Vor jeder Auslagerung soll in der Tabelle nachgeschaut werden, ob noch nicht ausgelagerte Lose vorhanden sind (Nein´s):

Code:
Tab_LagerAusgang.ZeigerY:=Tab_LagerAusgang.findeAttr("Nachfragebestätigung","Nein");

Falls diese so ist, soll natürlich erst dieses Los ausgelagert werden, bevor ein weiteres zufälliges Los erzeugt wird:

Code:
altes_Los:=Tab_Lagerausgang.setzeDatenTyp({2,Tab_LagerAusgang.ZeigerY});

Nachdem das "wartende" Los ausgelagert wurde, sollte dies auch am besten dokumentiert werden. Um hierbei die Übersicht nicht zu verlieren habe ich an eine Art "Auftragnummer" gedacht, welche fortlaufend vor der Spalte des Auslagerungszeitpunktes mitgeschrieben wird.           
                Nr  Zeitpkt    Menge  Bestätigung
(z.B. Zeile 10:  15    10:10      10        Nein
                11:  15    11:12      10          Ja

Die Idee mit der Auftragsnummer ist mir eben erst gekommen und ist deshalb noch nicht im Screenshot (Anhang) zu sehen. Ist es sinnvoll oder wie kann ich die Tabellen-Abfrage und Dokumentation am besten realisieren? Für jegliche Anregungen und Tipps bin ich wie so oft sehr dankbar!

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 22. Dez. 2011 11:41    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 SnopyPlant 10 Unities + Antwort hilfreich

Das Suchen in der Tabelle funktioniert so nicht.
Mit findeAttr können Sie benutzerdefinierte Attribute suchen.

Wenn Sie in der Tabelle den Wert "Nein" suchen wollen, müssen Sie zuerst den Zeiger auf die Anfangsposition setzen (setzeZeiger) und dann den Wert suchen (Methode finden).
Das würde dann wie folgt aussehen:

Code:

Tab_LagerAusgang.setzeZeiger(3,1);
gefunden:=Tab_LagerAusgang.finden({3,1}..{3,*},"Nein");
if gefunden then
  --etwas gefunden
  altes_Los:=Tab_Lagerausgang.setzeDatenTyp({2,Tab_LagerAusgang.ZeigerY});
end;


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

SnopyPlant
Mitglied



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

Beiträge: 21
Registriert: 03.11.2011

Plant Simulation Student Version 10.0.2

erstellt am: 22. Dez. 2011 14: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

Das Durchsuchen durch die Tabelle funktioniert schon mal. Nur der Code:

Code:
altes_Los:=Tab_Lagerausgang.setzeDatenTyp({2,Tab_LagerAusgang.ZeigerY});

funkioniert noch nicht so ganz. So wie der Code steht erwartet er bei der Simulation noch einen weiteren Parameter (den Datentyp, den ich zuweisen möchte, siehe Hilfe). Wenn der Zeile beispielsweise ein "integer" zuweise und altes_Los ebenfalls ein integer ist, bekomme ich wiederum eine Fehlermeldung "linke und rechte Seite sind nicht kompatibel". Ist "setzeDatenTyp" in meinem Fall überhaupt die richtige Funktion? (Wert(2,Tab_LagerAusgang.ZeigerY) aus einer Tabelle lesen und einer anderen Variable (altes_Los) übergeben)

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 22. Dez. 2011 18:37    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 SnopyPlant 10 Unities + Antwort hilfreich

So kompliziert ist das nicht, Sie können Tab_LagerAusgang.ZeigerY als Zeilenindex verwenden. Zugriff auf Daten einer Tabellenzelle erhalten Sie mit [x,y].

Müsste dann so aussehen:

Code:

altes_Los:=Tab_Lagerausgang[2,Tab_LagerAusgang.ZeigerY];

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

SnopyPlant
Mitglied



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

Beiträge: 21
Registriert: 03.11.2011

Plant Simulation Student Version 10.0.2

erstellt am: 23. Dez. 2011 10:17    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,abfrage2.png

 
Es funktioniert!
Gibt es die Möglichkeit, dass der Zeiger immer auf dem letzt gefunden "Nein" seine Suche nach unbedienten Losen fortsetzt? (Probleme siehe Screenshot) Ansonsten müsste ich die "Nein"´s mit einem "Ja" überschreiben (finde ich nicht so schön).

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 28. Dez. 2011 21:47    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 SnopyPlant 10 Unities + Antwort hilfreich

Der Zeiger bleibt nach einem Suchvorgang an der "Trefferposition" stehen, Sie können danach einfach noch einmal die Methode finden aufrufen, bis nichts mehr gefunden wurde (Rückgabewert false).

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

SnopyPlant
Mitglied



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

Beiträge: 21
Registriert: 03.11.2011

Plant Simulation Student Version 10.0.2

erstellt am: 29. Dez. 2011 13:47    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

Habe es nun doch anders gelöst und zwar indem ich mir immer den letzten Datensatz in der Tabelle angucke und das entsprechende Ereignis ausgeführt wird. Diese Idee ist zwar wohl etwas Rechenaufwändig und nicht so elegant, aber sie funktioniert.

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

SnopyPlant
Mitglied



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

Beiträge: 21
Registriert: 03.11.2011

Plant Simulation Student Version 10.0.2

erstellt am: 02. Jan. 2012 15:11    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

neuen Thread eröffnet...("negative Variable")

[Diese Nachricht wurde von SnopyPlant am 03. Jan. 2012 editiert.]

[Diese Nachricht wurde von SnopyPlant am 03. Jan. 2012 editiert.]

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