Autor
|
Thema: Lieferliste mit Excel erstellen (4015 mal gelesen)
|
NecDrop Mitglied Student
Beiträge: 43 Registriert: 22.08.2012 Plant Simulation 10.1
|
erstellt am: 11. Okt. 2012 17:53 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte Daten aus einer Excel-Datei in eine Lieferliste schreiben. Die Spalten der Excel-Tabelle sind gemäß der Lieferliste nach Lieferzeit, BE, Anzahl, Name und Attribut formatiert (siehe Anhang). Wenn ich nun mit der init-Methode: is do Lieferliste.leseExcelDatei("Test.xlsx","Lieferliste") end; die Lieferliste in Plant ausfüllen möchte, bleiben die Zeilen in der Spalte "BE" unausgefüllt. Anscheinend erkennt Plant aus der Excel-Datei nicht, dass es sich beim Inhalt der BE-Spalte in der Excel-Tabelle um objects handelt.
Nun kann man es wie folgt lösen, indem man vor dem Auslösen von "init" zunächst in Plant in der Lieferliste das Format "object" manuell auf "string" ändert, dann die init-Methode ausführt (die Excel-Daten werden nun vollständig in Plant eingelesen) und dann den "string" wieder zurück in "object" formatiert. Aber gibt es noch einen anderen Weg ohne jedes Mal das Format manuell umstellen zu müssen? Muss ich in Excel in der Spalte BE das Zahlenformat (Standart, Text, ...) ändern? Wenn ja, wie muss es formatiert sein? Schöne Grüße NecDrop [Diese Nachricht wurde von NecDrop am 11. Okt. 2012 editiert.] [Diese Nachricht wurde von NecDrop am 11. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 12. Okt. 2012 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für NecDrop
Ich würde nicht direkt in die Lieferliste importieren, sondern in eine "Zwischentabelle". Von der können Sie dann die Werte einzeln im richtigen Format (str_to_... Methoden) in die Lieferliste eintragen. Das Format object bekommen Sie auf keinen Fall direkt von Excel nach Plant Simulation. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NecDrop Mitglied Student
Beiträge: 43 Registriert: 22.08.2012 Plant Simulation 10.1
|
erstellt am: 12. Okt. 2012 13:22 <-- editieren / zitieren --> Unities abgeben:
Wie lautet denn der Befehl, mit dem ich den Inhalt einer ganzen Spalte in die gleiche Spalte einer anderen Tabelle übertragen kann. Habs bisher wie in der Plant Simulation Beschreibung mit {1,1}..{1,0} -- bezeichnet die gesamte erste Spalte versucht. Also wie folgt: is do Lieferliste({1,1}..{1,0}):=Zwischentabelle({1,1}..{1,0}); end Aber er sagt mir, dass ich einen Syntaxfehler bei <"{1,1}..{1,0}"> habe. Mit:
is do Lieferliste[1,*]:=Zwischentabelle[1,*]; end; erhalte ich ebenfalls eine Synthaxfehlermeldung bei <*>. Und wie kann ich dann noch das str_to_object einarbeiten? Geht es wie folgt?
is do Lieferliste(str_to_object{1,1}..{1,0}):=Zwischentabelle({1,1}..{1,0}); end [Diese Nachricht wurde von NecDrop am 12. Okt. 2012 editiert.] [Diese Nachricht wurde von NecDrop am 12. Okt. 2012 editiert.] [Diese Nachricht wurde von NecDrop am 12. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 12. Okt. 2012 22:56 <-- editieren / zitieren --> Unities abgeben: Nur für NecDrop
|
NecDrop Mitglied Student
Beiträge: 43 Registriert: 22.08.2012 Plant Simulation 10.1
|
erstellt am: 13. Okt. 2012 11:54 <-- editieren / zitieren --> Unities abgeben:
Super! Vielen Dank schonmal Mit dem Befehl kann ich jetzt alle Zeilen der jeweiligen Spalten auslesen. Aber das "str_to_object" konnte ich bisher noch nicht verarbeiten.Habs schon in den diversen Varianten versucht einzubauen: str_to_object.Zwischentabelle.kopiereBereichNach({3,*}, Lieferliste, 3,0); Zwischentabelle.str_to_object.kopiereBereichNach({3,*}, Lieferliste, 3,0); Zwischentabelle.kopiereBereichNach(str_to_object.{3,*}, Lieferliste, 3,0); Zwischentabelle.kopiereBereichNach({3,*}, str_to_object.Lieferliste, 3,0); ... Wie lautet denn die korrekte SimTalk dazu? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 13. Okt. 2012 13:34 <-- editieren / zitieren --> Unities abgeben: Nur für NecDrop
die korrekte Syntax ist obj:=str_to_obj(<string> ) Sie müssen jeden Wert einzeln umwandeln. Versuchen Sie ed doch einfach mit: Zwischentabelle.kopiereBereichNach({3,1}..{3,*}, Lieferliste,3,1); Plant Simulation wandelt dann die Werte von selbst um. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NecDrop Mitglied Student
Beiträge: 43 Registriert: 22.08.2012 Plant Simulation 10.1
|
erstellt am: 13. Okt. 2012 14:01 <-- editieren / zitieren --> Unities abgeben:
Hatte es nach ihrem Eintrag auch mit: Zwischentabelle.kopiereBereichNach({3,1}..{3,*}, Lieferliste,3,1); Hat aber nicht funktioniert. Ich hab aber den Fehler gefunden. Hatte in der reset-Methode noch "Zwischentabelle.loeschen;" drin. Das hat mir alles kaputt gemacht. Wieso ist mir allerdings schleierhaft, da reset ja vor init ausgeführt wird?! Naja, jetzt funktioiert es jedenfalls. Danke Bon Simul!!! [Diese Nachricht wurde von NecDrop am 13. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|