Floorplan anpassen für das Webfront

…offensichtlich gibt es keine Lösung einen bestimmten Graphen per Skript aufzurufen?

Gibt es denn eine Möglichkeit eine bestimmte IPS-Kategorie per Skript in einem kleinen Fenster einzublenden?

Z.B. Klick auf Solltemperatur, eine bestimmte Kategorie wird angezeigt, die eine neue Einstellung bzw. Veränderung ermöglicht…

Joachim

Hi Joachim

Als Fenster nicht das ich wüßte.

Was du machen kannst oberhalb des WF eine Kategorie Ein/Ausblenden. evtl auch deinen Graph in die Kategorie legen.
Damit müßte wenn sie eingeblendet ist der Floorplan nach unten rutschen und ein ähnlicher wie von dir gewünschter Effekt entstehen.

gruß
bb

Hallo Bernhard,

vielen Dank für Deine Antwort!

Ist vielleicht noch nicht das, was ich mir vorstelle. Raketenschnecke hat in seinem DB Analyzer so einen Dialog. Leider verstehe ich die Programmierung nicht…

Ich stelle mir vor, dass eine Art Dialogfenster geöffnet wird in dem nur die definierte Kategorie enthalten ist, einen „benutzerdefinierten Dialog“…

Joachim

Servus

Das Fenster im RS Analyser ist komplett selbstgebautes HTML.
Sowas kannst natürlich schon machen. Händisch kann man sich das alles hinbasteln.
Der Aufwand dafür ist aber beträchtlich und setzt entsprechende Kenntnisse voraus.

  • ähm… wennst die hättest würdest hier nicht fragen.

Darum dachte ich du willst Teile des IPS Webfront einblenden. Das geht nicht.

Hmm, naja, vieleicht könnte man ein zweites Mini-Webfront erstellen und dieses per IFrame einblenden. Aber unabhängig davon ob es technisch geht wäre das eine mehr als unsaubere Lösung und du würdest es schon wegen der Ladezeiten nicht wollen.

gruß
bb

Hallo Leute,

mit dem Graphen habe ich zwar noch keine zufriedenstellende Lösung gefunden, derzeit beschäftigt mich aber eine andere Fragestellung.
Der Floorplan ist ja m.E. das ganz besondere Highlight des IPS-Webfront. Nun habe ich es für eine gewisse Bildschirmauflösung konfiguriert, dieses führt aber bei kleinerer Auflösung dazu, das der Grundplan nicht vollständig abgebildet ist und auch leider keine vertikale Scrollbalken erscheinen.

Ist es irgendwie möglich die aktuelle Breite der verfügbaren HTML-Box zu ermitteln damit der Floorplan entsprechend skaliert werden kann?
Wie wäre das dann, wenn das Webfront gleichzeitig von verschiedenen Endgeräten mit unterschiedlicher Auflösung aufgerufen wird??

Joachim

…wenn ich statt:

$ausgabe.='<p><img src='.$ImgFloorplan.' width="1200" height="500" border="0"></p> </div>';

dieses verwende:

$ausgabe.='<p><img src='.$ImgFloorplan.' width="100%"; height=100%"; border="0"></p> </div>';

ändert sich die Größe des Grundplans sogar automatisch mit dem Browserfenster!

Aber wie bekomme ich es dann hin, dass die positionierten Elemente ihre relative Position behalten?
Um die neue bzw. angepasste Position der Elemente zu berechnen brauche ich dann eigentlich die aktuelle Gesamtbreite…
Kommt man da irgendwie ran??

Joachim

Nachtrag: Kann man auch so etwasin IPS verwenden?
Damit wäre es dann ja vielleicht möglich, aufgrund der Fenstergröße bzw. Änderung die Element-Positionen anzupassen.


Mit dieser Software erreicht man schnell optisch gute Ergebnisse für Floorplan Grundrisse.
Ist kostenlos !
http://www.sweethome3d.com/de/
SWEETHOMECondoExample.jpg
Gruß Achim

Hallo Achim,

vielen Dank für Deine Antwort.

Mit der grafischen Darstellung selbst bin ich ja ganz zufrieden, mir geht es eher um eine automatische Größenanpassung auf verschiedenen Displaygrößen…

Joachim

…ich mache bei meinem Experimenten (und meinem Monolog zum Thema) mal weiter…

Ich habe versucht das Skript aus obrigen Link zur Probe mal so in IPS zu integrieren:

$ausgabe= '<head>';
$ausgabe.= '<title>Größenänderung überwachen</title>';
$ausgabe.= '<script type="text/javascript">';
$ausgabe.= 'function Fensterweite () {';
$ausgabe.= '  if (window.innerWidth) {';
$ausgabe.= '    return window.innerWidth;';
$ausgabe.= '  } else if (document.body && document.body.offsetWidth) {';
$ausgabe.= '    return document.body.offsetWidth;';
$ausgabe.= '  } else {';
$ausgabe.= '    return 0;';
$ausgabe.= '  }';
$ausgabe.= '}';

$ausgabe.= 'function Fensterhoehe () {';
$ausgabe.= '  if (window.innerHeight) {';
$ausgabe.= '    return window.innerHeight;';
$ausgabe.= '  } else if (document.body && document.body.offsetHeight) {';
$ausgabe.= '    return document.body.offsetHeight;';
$ausgabe.= '  } else {';
$ausgabe.= '    return 0;';
$ausgabe.= '  }';
$ausgabe.= '}';

$ausgabe.= 'function neuAufbau () {';
$ausgabe.= '  if (Weite != Fensterweite() || Hoehe != Fensterhoehe())';
$ausgabe.= '    location.href = location.href;';
$ausgabe.= '}';

$ausgabe.= '/* Überwachung von Netscape initialisieren */';
$ausgabe.= 'if (!window.Weite && window.innerWidth) {';
$ausgabe.= '  window.onresize = neuAufbau;';
$ausgabe.= '  Weite = Fensterweite();';
$ausgabe.= '  Hoehe = Fensterhoehe();';
$ausgabe.= '}';
$ausgabe.= '</script>';
$ausgabe.= '</head>';
$ausgabe.= '<body>';
$ausgabe.= '<script type="text/javascript">';
$ausgabe.= '/* Überwachung von Internet Explorer initialisieren */';
$ausgabe.= 'if (!window.Weite && document.body && document.body.offsetWidth) {';
$ausgabe.= '  window.onresize = neuAufbau;';
$ausgabe.= '  Weite = Fensterweite();';
$ausgabe.= '  Hoehe = Fensterhoehe();';
$ausgabe.= '}';
$ausgabe.= '</script>';
$ausgabe.= '<div id="Beispiel" style="position:absolute; top:100px; left:100px; border:solid 1px #000000;">';
$ausgabe.= 'Text';
$ausgabe.= '</div>';
$ausgabe.= '<script type="text/javascript">';
$ausgabe.= 'document.write("Weite: " + Weite + " Höhe: " + Hoehe);';
$ausgabe.= '</script>';

$ausgabe.= '</body>';
Echo $ausgabe;
SetValuestring(34077  /*[Server\Testobjekte\HTML-Test\HTML-Test]*/, $ausgabe);

Die Variable ist eine String-Variable vom TYp „HTMLBox“, leider wird im Webfront nichts angezeigt.
Was müsste angepasst werden bzw. ist der Ansatz überhaupt umsetzbar??

Joachim

Servus

warum dein letzter Versuch keine Ausgabe bringt kann ich adhoc leider nicht sagen.
Sofern du nicht viele verschiedene Auflösungen zu untertstützen hast würde ich dir raten eher für die Zielgeräte hardcoden.
Ich kann mir nämlich vorstellend eine gezielte Berechnung der Position für alle Objekte sehr aufwändig werden wird.
Wenn man mal ein Muster gemacht hat so ist die Umsetzung auf eine andere Auflösung manuell recht einfach. 2-3 Stunnden lang mit den Koordinaten rumspielen und fertig.

viel Erfolg
bb

Hallo bb,

nun, wenn das Prinzip erst einmal steht, dass ist der Rest eigentlich nur noch ein wenig Mathematik…

Als Grundlage der Berechnung benötigen ich aber die aktuelle Fensterbreite, im Prinzip müsste das Ereignis dann das IPS-Skript zum Neuaufbau des Grundplans triggern. Den Fall das sich das Fenster während der Anzeige ändert, halte ich aber bei meiner Nutzung eher für seltener, wahrscheinlicher ist, dass das Webfront auf verschiedenen Endgeräten mit unterschiedlicher Auflösung angezeigt wird…

Joachim

Nachtrag: Kann ich das was im HTML-Skript in der Zeile

$ausgabe.= 'document.write("Weite: " + Weite + " Höhe: " + Hoehe);';

als Höhe und Breite ermittelt wird in eine IPS-Variable schreiben?