Botimperator
Level-2
- Beiträge
- 635
- Reaktionspunkte
- 279
-> Hier kostenlos registrieren
Moin zusammen,
ich hab hier ein Problem, bei dem ich irgendwie auf dem Schlauch stehe...
TIA V20
MTP1500, Runtime-Version V20.0.0
Ich hab meine Bilder bisher wie in der Template-Suite aufgebaut:

(1) liegt auf dem Hauptbild und enthällt die jeweilig angewählte Hauptstruktur, in meinem Fall welcher Anlagenverbund angewählt ist.
(2) Hier im SubNav habe ich die einzelnen Anlagen-Baugruppen untergebracht.
(3) der ThirdNav enthält Untermenüs zu der jeweiligen Anlagen-Baugruppe (Einstellwerte und so Zeug).
Im "normalen" Durchklicken der Fenster klappt das auch wunderbar.
Jetzt habe ich allerdings folgende Situation, die ich nicht gelöst bekomme:
Offen habe ich beispielsweise folgende Bildfenster:
Jetzt möchte ich über eine Schaltfläche direkt in ein Untermenü einer anderen Baugruppe springen.
Dazu muss ich das Bildfenster "swSubNavContend" und gleichzeitig das INNERHALB von "swSubNavContend" liegende Bildfenster "swThirdNavContend" ändern.
"swSubNavContend" zu ändern ist kein Problem, aber an "swThirdNavContend" beiß ich mir grade die Zähne aus.
Mein erster Versuch hat erwartbarerweise nicht funktioniert.
Ich bekomme den Fehler, dass "swThirdNavContent" nicht existieren würde (was ja auch erst der Fall ist wenn "swSubNavContent" fertig geladen wurde).
Die beiden Befehle für sich funktionieren aber, also kein Problem mit dem Pfad oder sowas.
Das ganze mit asynchronem Script und "await" funktioniert ebenfalls nicht => ebenfalls "swThirdNavContent" existiert nicht.
Jetzt hatte ich noch die Idee das Ganze per Promise zu machen.
Für den ersten Trace bekomme ich
Also wurde der Inhalt des Bildfensters "swSubNavContent" korrekt geändert.
Für den zweiten Bildwechsel/Trace bekomme ich aber wieder einen "swThirdNavContent existiert nicht"-Fehler.
Also wird der fulfilled-Status doch nicht nach vollständigem Laden des Bildfensters gesetzt...
Und jetzt stehe ich so langsam auf dem Schlauch
Wie bekomme ich es hin die beiden Bildfenster mit einem Befehl nacheinander zu ändern?
Irgendjemand ne Idee?
edit:
Tippfehler korrigiert.
ich hab hier ein Problem, bei dem ich irgendwie auf dem Schlauch stehe...
TIA V20
MTP1500, Runtime-Version V20.0.0
Ich hab meine Bilder bisher wie in der Template-Suite aufgebaut:

(1) liegt auf dem Hauptbild und enthällt die jeweilig angewählte Hauptstruktur, in meinem Fall welcher Anlagenverbund angewählt ist.
(2) Hier im SubNav habe ich die einzelnen Anlagen-Baugruppen untergebracht.
(3) der ThirdNav enthält Untermenüs zu der jeweiligen Anlagen-Baugruppe (Einstellwerte und so Zeug).
Im "normalen" Durchklicken der Fenster klappt das auch wunderbar.
Jetzt habe ich allerdings folgende Situation, die ich nicht gelöst bekomme:
Offen habe ich beispielsweise folgende Bildfenster:
Code:
| MainNav | SubNav | ThirdNav |
|-------------|---------------------------------|--------------------------------------------|
| Application | 12111_Application_SubNav_1_Home | 12121_Application_ThirdNav_Home_1_Overview |
Jetzt möchte ich über eine Schaltfläche direkt in ein Untermenü einer anderen Baugruppe springen.
Code:
| MainNav | SubNav | ThirdNav |
|-------------|----------------------------------|--------------------------------------------|
| Application | 12112_Application_SubNav_2_FOCOS | 12222_Application_ThirdNav_FOCOS_2_Records |
Dazu muss ich das Bildfenster "swSubNavContend" und gleichzeitig das INNERHALB von "swSubNavContend" liegende Bildfenster "swThirdNavContend" ändern.
"swSubNavContend" zu ändern ist kein Problem, aber an "swThirdNavContend" beiß ich mir grade die Zähne aus.
Mein erster Versuch hat erwartbarerweise nicht funktioniert.
Javascript:
HMIRuntime.UI.SysFct.ChangeScreen("12112_Application_SubNav_2_FOCOS", "~/swContent/swSubNavContent");
HMIRuntime.UI.SysFct.ChangeScreen("12222_Application_ThirdNav_FOCOS_2_Records", "~/swContent/swSubNavContent/swThirdNavContent");
Die beiden Befehle für sich funktionieren aber, also kein Problem mit dem Pfad oder sowas.
Das ganze mit asynchronem Script und "await" funktioniert ebenfalls nicht => ebenfalls "swThirdNavContent" existiert nicht.
Javascript:
await HMIRuntime.UI.SysFct.ChangeScreenAsync("12112_Application_SubNav_2_FOCOS", "~/swContent/swSubNavContent");
await HMIRuntime.UI.SysFct.ChangeScreenAsync("12222_Application_ThirdNav_FOCOS_2_Records", "~/swContent/swSubNavContent/swThirdNavContent");
Jetzt hatte ich noch die Idee das Ganze per Promise zu machen.
Javascript:
HMIRuntime.UI.SysFct.ChangeScreenAsync("12112_Application_SubNav_2_FOCOS", "~/swContent/swSubNavContent")
.then(HMIRuntime.Trace("Aktueller SubNavContent: " + UI.FindItem("~/swContent/swSubNavContent").Screen, HMIRuntime.Trace.Enums.hmiSeverity.Info))
.then(HMIRuntime.UI.SysFct.ChangeScreenAsync("12222_Application_ThirdNav_FOCOS_2_Records", "~/swContent/swSubNavContent/swThirdNavContent")
.then(HMIRuntime.Trace("Aktueller ThirdNavContent: " + UI.FindItem("~/swContent/swSubNavContent/swThirdNavContent").Screen, HMIRuntime.Trace.Enums.hmiSeverity.Info))
);
Javascript:
Trace(): Aktueller SubNavContent: HMI_RT_2::12112_Application_SubNav_2_FOCOS
Für den zweiten Bildwechsel/Trace bekomme ich aber wieder einen "swThirdNavContent existiert nicht"-Fehler.
Also wird der fulfilled-Status doch nicht nach vollständigem Laden des Bildfensters gesetzt...
Und jetzt stehe ich so langsam auf dem Schlauch

Wie bekomme ich es hin die beiden Bildfenster mit einem Befehl nacheinander zu ändern?
Irgendjemand ne Idee?
edit:
Tippfehler korrigiert.
Zuletzt bearbeitet: