Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Ich denke, wir brauchen mehr Kontext darüber, was Sie genau tun. Müssen wir den Kontext sehen, in dem If () verwendet wird? Befindet es sich in einem neuen Fenster () oder in einer JMP-App ()?
Können Sie ein vollständigeres Skript veröffentlichen, das das Problem veranschaulicht?
Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Ja, du hast recht. Hier ist eine vereinfachte Version des Skripts, an dem ich arbeite und das sich nur auf das Erstellen der Schaltflächen konzentriert. Die Schaltflächen befinden sich in den Zeilen 37-45. Mit der If-Anweisung wird ein Dashboard ohne Schaltflächen erstellt.
Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Hallo Kelly, ich warne davor, den Inhalt im Allocate () -Block für ein Dashboard zu bearbeiten, es sei denn, Sie ändern nur den Wert einer Zeichenfolge. Das Ändern der Struktur kann definitiv dazu führen, dass ein Dashboard (oder eine Anwendung) nicht ordnungsgemäß ausgeführt wird. Wenn ich Ihr Skript mit aktivierten If () -Blöcken ausführe, werden im Protokoll folgende Fehlermeldungen angezeigt:
erwartet: variable = object (); 2 mal in Zugriff oder Bewertung von "Plan" [...]
Ich bin mir nicht sicher, was Sie mit den bedingten Boxen machen wollen, aber Application Builder funktioniert am besten, wenn Sie zusätzliche Logik in die Application- und Module-Skripte einfügen. Diese Skripte werden als reine JSL ausgeführt (oder zu 99%). so), während der andere Code in einer JMPApp () eine sehr spezifische Syntax hat.
Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Sie können den Ausdruck, der ausgewertet wird, wenn auf die Schaltfläche geklickt wird, bevor die Schaltfläche erstellt wird, durch Aufrufen von Button Box () bedingt bestimmen.
bb expr = If( 1, Expr( ... ), 2, Expr( ... ) );
Button Box( "name", bb expr )
Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Die Fehlermeldung wurde möglicherweise aufgrund unterschiedlicher Versionen nicht im Protokoll angezeigt. Ich benutze übrigens JMP 14.1.0.
Möglicherweise fehlt etwas, aber ich bin mir nicht sicher, warum Sie die Verwendung des Anwendungsskripts und des Moduls anstelle des Dashboards vorschlagen, da sie mit Ausnahme der folgenden Codezeile identisch sind:
Dashboard-Modus (1),
Ich habe eine Lösung gefunden, indem ich die Bedingungsanweisung in die Funktion Initialize () der Funktion JMP App () gestellt habe. Ich muss eine Schaltfläche erstellen, kann aber später festlegen, ob sie im Dashboard angezeigt werden soll oder nicht.
Button1 << Visibility (If (1, "Visible", "Hidden"));
Vielen Dank!
Betreff: Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Um meinen Kommentar zu den Anwendungs- und Modulskripten zu verdeutlichen, macht Application Builder Skripten verfügbar, die mit der Anwendung der obersten Ebene und jedem Modul verknüpft sind. Auf diese wird über die Registerkarte "Skripte" zugegriffen, wenn Sie den Dashboard-Modus deaktivieren (der Text lautet weiterhin "Dashboard", da das Dokument im Dashboard-Modus gestartet wurde):

Dieses Skript wird wörtlich gespeichert und behält alle Änderungen bei, die Sie vornehmen. In Ihrem Beispiel für die Bearbeitung des Skripts Initialize () werden Sie feststellen, dass die Schaltflächensichtbarkeit beim ersten Ausführen des Skripts möglicherweise korrekt angezeigt wird. Wenn Sie das Skript erneut im Builder für Dashboard speichern, ändert sich die Zeile in:
Button1 << Visibility("Visible");
Dies wird wahrscheinlich Ihr beabsichtigtes Verhalten verlieren, wenn Sie komplexere Ausdrücke als If (1) verwenden möchten. Der gesamte Inhalt in den Abschnitten Allocate (), Organize () und Initialize () wird bei jedem Speichern des Skripts von Grund auf neu generiert und behält keine Anpassungen bei, wenn Sie das Skript über die Builder-Oberfläche ändern und anschließend speichern.
Wie kann ich eine if-Anweisung in der Allocate-Funktion des Dashboard Creator-Skripts verwenden?Mein Dashboard erstellt Schaltflächen mithilfe des Schaltflächenfelds (). Aber wenn ich eine if-Anweisung verwende, funktioniert sie nicht mehr. Hier ist die If-Anweisung:
If (1, Button1 = Button Box ()); If (1, Button2 = Button Box ());
Alles wird gut kompiliert und mein Dashboard wird angezeigt, aber diese Schaltflächen fehlen.
Danke für die Hilfe