|
Autor
|
Thema: Lieferliste mit Excel erstellen (4676 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 |

| | (Fach-)Planer TGA / Elektro- und Fernmeldetechnik (m/w/d) | | Wir sind eins der deutschlandweit führenden Bauunternehmen im Hoch- und Tiefbau. Was uns als Familienunternehmen ausmacht, ist unser hoher Leistungsanspruch. Bei uns geben über 2.000 Mitarbeitende täglich ihr Bestes, um uns, unsere Kunden und die Branche nach vorn zu bringen. Wenn du gemeinsam mit uns wachsen, zu den Besten deiner Branche gehören und die Zukunft des Bauens möglich machen willst, dann kannst du Köster ? und im Gegenzug eine ganze Menge von uns erwarten.... | | Anzeige ansehen | Projektmanagement |
|
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 >>)
 |