Cancel
Showing results for 
Search instead for 
Did you mean: 

retreiveData

Creator
Creator

Hi all.

 

ein anderes, zweites Programm schickt PS eine Tabelle die ich in PS einlesen kann und deren Daten ich verwenden will um Objekte zu erstellen. die Tabelle ist wie folgt aufgebaut:

 

name | xposition | yposition

 

 

wie schaffe ich es, dass wenn die x und y position geändert wird das neue objekt auf der x und y position erstellt und das alte gelöscht wird?

 

also als Beispiel:

ich habe eine quelle in meinem modell. hat die x und y posi. (10,10)

das andere programm sagt

quelle ist aber auf (50,50).

PS soll die alte quelle löschen und die neue quelle einfügen

aber nur die quelle alle anderen objekte sollen gleich bleiben.

 

ich denke if schleife aber bekomme es nicht so richtig hin

(wenn das objekt in der tabelle in meinem Model schon exisitiert, dann altes löschen und neues mit informationen aus der tabelle erstellen)

 

code bis jetzt: 

 

if obj.name.exists then

obj.deleteObject;
positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk, positX, positY);

end;

4 REPLIES

Re: retreiveData

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

sie brauchen zwei Schritte:

1. Sie erzeugen das Objekt

2. Sie verschieben das Objekt an die Position, die Sie benötigen

 

positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk);
obj.xPos:=positX;
obj.yPos:=positY;
Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: retreiveData

Creator
Creator

Hi steffen,

das verstehe ich und habe ich auch hinbekommen mit folgendem code

 

positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk, positX, positY);

 

 

 

nun ist die frage, wie ich es schaffe, dass meine methode die Tabelle mit dem netzwerk vergleicht und das modell angepasst wird.

 

also als Beispiel.

 

Meine Tabelle hat folgende NEUE werte:

Quelle 10 10

 

 

 

meine ALTE:

quelle 5 5

 

wenn die NEUE quelle andere daten hat als die ALTE quelle, soll die ALTE gelöscht werden und eine NEUE mit den neuen daten erstellt.

 

Re: retreiveData

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor
und warum verschieben Sie nicht einfach die Quelle?

der Ablauf könnte folgender sein: prüfen Sie, ob das Objekt existiert --> wenn nicht erzeugen Sie es; wenn ja aktualisieren Sie die Position (wenn die Position gleich geblieben ist, passiert dann nichts)

- für den Test, ob ein solches Objekt schon exisiert, können Sie die methode isNameUnique verwenden

Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: retreiveData

Creator
Creator

ich verschiebe die quelle nicht einfach, weil ich ein automatisiertes programm erstellen möchte. die clicks und aktionen in PS sollen sich auf ein minimum reduzieren, da der Kunde PS weder versteht noch benutzt, aber die simulation benötigt.

 

 

mit folgendem code erstellt er einfach nur immer neue quellen, da in der tabelle ja nur eine quelle exisitert und er es nicht mit meinem modell vergleicht.

 

 

if Tabelle.isNameUnique("Quelle") then

positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk, positX, positY);

else

Quelle.deleteObject;

positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk, positX, positY);

end;

 

 

 

 

edit: 

habe es so versucht. er erzeugt eine quelle weil er sie in der tabelle findet, aber ich kann die zeile in der tabelle noch nicht ansprechen 

[*,2] funktioniert nicht

und 

delet.object akzeptiert er in der methode nicht und spuckt einen fehler aus

 

 

Tabelle.setzeZeiger(1,1);
if Tabelle.finden({1,*},"Quelle") then

positX := Tabelle[2,2];
positY := Tabelle[2,3];
obj := .Modelle.Netzwerk.Quelle.createObject(.Modelle.Netzwerk, positX, positY);


end