Buttons im Moduldesigner

  • Guten Tag,


    Wo finde ich im GUI Moduldesigner Buttons?
    Und wie spreche diese im development an?
    Ich möchte gerne ein Button haben der dann eine Funktion auslöst.
    Nur irgendwie finde ich keine Buttons. Im Modul Firmenlogo gibt ja auch buttons zum aktivieren deaktivieren.
    ich finde Sie nur nicht.
    Vielen Dank!



    Lg Bonkersdeluxe

  • Das gibt es im Moduldesigner nicht. Sorry...
    Wir haben das relativ aufwendig mit Frontend-JavaScript, Frontend-injiziertem Markup und XmlRPC-Backend-Kommunikation umgesetzt.

  • Hi fwolf,


    Respekt. Alles klar. Dann muss ich mir was anderes überlegen.
    Irgendwie so, permanent / oder übern Timer ne Checkbox abfragen und die dann So als Button Zweckentfremden
    Vorrausgesetzt ich kann ne Checkbox per Development wieder deaktivieren.
    probiere ich mal aus.
    Für sonstige Lösungsvorschläge bin ich natürlich offen ;)
    Vielen Dank!


    Lg Bonkersdeluxe

  • Hallo Bonkers


    Hier: http://module.nucom.ch/modulef…ons/SetFieldbyGUIName.rar


    Da drin ist ein Pre-Compiled Bausten, sowie der Source-Code.


    Um ihn zu Installieren, einfach im Tab "Resources" hochladen ==> Apply.
    Danach Findest du ihn im Development ==> Public ==> [Dein Modulname] (Expert Mode Haken muss aktiviert sein!)


    Das ist eine Modulfunktion, die einen GUI_NAMEN , sowie den dafür zu setzenden Wert annimmt.
    Damit könntest du deine Checkbox Kontrollieren.
    Einfach im Baustein GUI_NAME_DER_CHECKBOX, true/false (True Angehakt, False Nicht Angehakt)
    Zu beachten gibt es, während jemand die Modulkonfiguration Offen hat, hat der Baustein keinen Einfluss.
    (Dieser Baustein Funktioniert nicht für TextList und KeyValueMap)


    MfG


    Fabian

  • Hallo Fabian,


    ich habe gerade Deine Klasse implementiert, nur leider setzt sie die Checkbox nicht.
    Gibt es vielleicht "Probleme" mit der aktuellen Starface-Version oder sollte es dennoch funktionieren?
    Ich habe vorher den gesamten Modulbereich verlassen damit es deswegen keine Probleme gibt...


    Vielen Dank und Grüsse,
    Fabian W.

    Einmal editiert, zuletzt von fabiantw ()

  • Hallo Fabian


    Bei mir funktioniert der Baustein noch ohne Probleme.
    Wichtig ist einfach, dass du nicht in der GUI bist, während es die Werte ändern soll.


    Also musst du das Modul Speichern und nicht Übernehmen, oder es mit einem Timer-Task machen.


    MFG


    Fabian

  • Hallo Fabian,


    Ich habe es hinbekommen. Der Trick ist, dass der GUI-Name der Checkbox in das Textfeld geschrieben und nicht per Dropdown in der Liste ausgewählt wird. Steht es im Textfeld, funktioniert es bei mir :)


    Vielen Dank & Grüsse,
    Fabian W.

  • Hi Fabian,


    ich hab die Funktion "SetFieldbyGUIName" in einem Modul eingebaut. Funktioniert auch soweit, allerdings wird nach Neustart der Starface dieses Feld wieder mit dem Wert gefüllt, welcher als letztes manuell dort eingetragen wurde. Kannst du das nachstellen?

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

  • Hallo Andreas


    Habe das Problem gefunden, und gleich ein weiteres Problem mit der Lösung entdeckt.
    Entweder war das schon immer so, und es ist mir nie aufgefallen, oder das hat sich seit der 7.X geändert.


    Meine Bausteine "Speichern" das Modul nicht mit der gleichen Methode, wie der "Speichern" Button aus der GUI.
    Anscheinend, werden aber die Änderungen dann zu keinem Zeitpunkt mehr auf die HDD geschrieben.


    Die Lösung, die gleichzeitig ein Problem darstellt, ist dass ich nach dem SetFieldGUIName das modul abspeichere.


    Wenn ich es so korrigiere, dass der Bausteine die Variablen nach dem setzen sofort Speichert könnte es aber zu einem Unendlichen Loop kommen.


    Beispiel:


    Einstiegspunkt Instance Changed
    CurrentDateTime -> _DateTime
    SetFieldByGUIName(GUI_Datum, _DateTime)


    In der alten Variante würde dies so abglaufen:
    Instance_Changed ==> CurrentDateTime ==> SetFieldbyGUIName ==> Ende
    Der Datumswert steht in der GUI. Ist aber nach dem Systemneustart weg, wenn man das Modul nicht von Hand speichert.


    In der neuen Variante würde das Ergebnis so aussehen:
    Instance_Changed ==> CurrentDateTime ==> SetFieldbyGUIName + Speichern ==> Ende
    ___________________________________________________________________!!
    ___________________________________________________________________V
    ___________________________________________________________________Instance_Changed ==> CurrentDateTime ==> SetFieldbyGUIName + Speichern ==> Ende
    ______________________________________________________________________________________________________________________________________!!
    ______________________________________________________________________________________________________________________________________V
    ______________________________________________________________________________________________________________________________________Instance_Changed ==> CurrentDateTime ==> SetFieldbyGUIName + Speichern ==> Ende


    Unendliche Schleifen, wenn man nicht aufpasst.


    Und natürlich würde er das Modul einmal pro Feld abspeichern, was natürlich unsinn ist.
    Ich habe mich also entschieden diese Funktion nicht im Baustein zu verbauen, sondern mache einen Baustein, der heisst einfach nur "SaveInstance".
    Dieser Speichert das Modul dann ab. Dieser wird ebenfalls das Instance_Changed feuern.


    Man muss einfach Sicherstellen, dass dieser niemals bei einer Instance_Config angesprochen werden kann.


    Mfg


    Fabian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!