Fügen Sie im JMP-Bericht ein Skript zur ButtonBox hinzu<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Liebe Community
Ich denke, mein Problem ist einfach, aber trotzdem könnte ich etwas Hilfe gebrauchen. Ich verwende die Profiler-Plattform mit dem hinzugefügten Simulator, um eine Monte-Carlo-Simulation einer Reaktion mit mehreren Faktoren zu erstellen:
MyProfiler = Profiler (
Y ( : Antwort )
) ;
MyProfiler << Simulator (
Faktoren (
Faktor 1 << Zufällig ( Normal ()) ,
Faktor 2 << Zufällig ( Normal ())
) ;
Ich möchte der Schaltfläche „Tabelle erstellen“ unter dem Umrissfeld „Zur Tabelle simulieren“ im Berichtsfenster einige Funktionen hinzufügen. Ich mache das, indem ich ein Skript hinzufüge. Ich möchte der Tabelle, die sich aus der Schaltfläche „Tabelle erstellen“ ergibt, einen Namen geben und eine Reihe von Vorgängen für diese Tabelle ausführen:
Bericht ( MyProfiler )[ ButtonBox ( 2 )] << Skript festlegen (
MySimTable = Aktuelle Datentabelle () ;
//Aktionen für MySimTable ausführen
) ;
Das Problem ist, dass die ' Aktuelle Datentabelle' Befehl wird ausgeführt Vor alle anderen Aktionen beim Drücken der Taste. Dies bedeutet, dass die aktuelle Tabelle nicht die Tabelle ist, die durch Klicken auf die Schaltfläche „Tabelle erstellen“ erstellt wurde. Hier ist meine Frage: Gibt es eine Möglichkeit, die Schaltflächenfunktion „Einbauen“ auszuführen, bevor die „Einbau“-Schaltfläche ausgeführt wird? Aktuelle Datentabelle ' Befehl? Alle Lösungen, die mir automatisch einen Verweis auf die generierte Tabelle geben, werden sehr geschätzt.
Danke
Betreff: Skript zu ButtonBox im JMP-Bericht hinzufügenHallo,
Ich habe mit dem JMP-Entwicklungsteam bestätigt, dass es sich um ein beabsichtigtes Verhalten handelt, bei dem das Skript ausgeführt wird, bevor die integrierte Funktionalität ausgeführt wird.
Nachfolgend finden Sie ein vereinfachtes Beispiel, das zeigt, wie Sie die ursprüngliche Schaltfläche ausblenden, ein Skript ausführen, auf die ursprüngliche (versteckte) Schaltfläche klicken und dann ein weiteres Skript ausführen können.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );dt << New Column( "heightplusweight", Formula( :height + :weight ) );
// replace the button in Simulate To Tablex = Profiler( y( :heightplusweight ) );x << Simulator( Factors( Factor1 << Random( Normal() ), Factor2 << Random( Normal() ) ));bb2 = Report( x )["Simulate to Table"][Button Box( 1 )];bb2 << Visibility( "Hidden" ); // new for JMP 12bb2 << Sib Prepend( Button Box( "NewButton", setfunction( Function( {this}, // this==replacement button New Window( "Before", < H List Box( Button Box( "OK" ), Button Box( "Cancel" ) ) ); (this << Sib) << Click; // sib==original button because of < New Window( "After", < H List Box( Button Box( "OK" ), Button Box( "Cancel" ) ) ); ) ) ));
Wenn Sie dies als Modell verwenden, können Sie das Konzept anwenden, die alte Schaltfläche auszublenden, darauf zu klicken und dann den Namen der neuen Tabelle festzulegen:
bb2 << Sib Prepend( Button Box( "NewButton", setfunction( Function( {this}, // this==replacement button (this << Sib) << Click; // sib==original button because of < Data Table(1) << Set Name( "New Table Name" ); ) ) ));
Ich hoffe das hilft.
Wendy
Betreff: Skript zu ButtonBox im JMP-Bericht hinzufügenHallo Ian
Danke für deine Antwort. Ich habe diese Diskussion an das Support-Team gesendet, um zu sehen, was sie möglicherweise zu sagen haben.
Betreff: Skript zu ButtonBox im JMP-Bericht hinzufügenHallo Jerry
Ich hatte eine ähnliche Idee für einen Workaround. Vielen Dank, dass Sie mir gezeigt haben, wie ich diese Lösung implementieren kann. Es funktioniert perfekt
Betreff: Skript zu ButtonBox im JMP-Bericht hinzufügenIch stimme Ian zu. Als Workaround, bis Sie eine bessere Option erhalten, könnten Sie jedoch in Betracht ziehen, eine neue Schaltfläche hinzuzufügen, die die Funktion „Tabelle erstellen“ kapert:
Bericht ( MyProfiler )[ „Zur Tabelle simulieren“ ] << Voranstellen (
Neuer Knopf = Button-Box ( „Make Table Plus“ ,
Bericht ( MyProfiler )[ ButtonBox ( 3 )] << Klicken () ;
MySimTable = Aktuelle Datentabelle () ;
)
) ;
Beachten Sie, dass durch das Einfügen der neuen Schaltfläche der Verweis auf die ursprüngliche Schaltfläche „Tabelle erstellen“ von 2 auf 3 geändert wird.
Betreff: Skript zu ButtonBox im JMP-Bericht hinzufügenIch denke, das folgende Skript bestätigt lediglich das von Ihnen festgestellte Verhalten. In solchen Fällen sieht es so aus: „setScript“ fügt hinzu zum vordefinierten Skript (was vernünftig erscheint), aber es scheint eher vorangestellt als angehängt zu werden:
NamesDefaultToHere ( 1 ) ;
// Testtabelle
dt = Neuer Tisch ( "Simulieren" ,
Zeilen hinzufügen ( 5 ) ,
Neue Spalte ( "X" ,
Numerisch ,
„Kontinuierlich“ ,
Format ( "Am besten" , 12 ) ,
Werte festlegen ( [ 1 , 2 , 3 , 4 , 5 ] )
) ,
Neue Spalte ( „y“ ,
Numerisch ,
„Kontinuierlich“ ,
Format ( "Am besten" , 12 ) ,
Formel ( : X + Zufällig normal ( 0 , 0,1 ) )
)
) ;
// Modell anpassen
fm = dt << Modell anpassen (
Y ( : j ) ,
Auswirkungen ( : X ) ,
Persönlichkeit ( „Standard kleinste Quadrate“ ) ,
Schwerpunkt ( „Wirkungshebel“ ) ,
Laufen (
Profiler (
1 ,
Vertrauensintervalle ( 1 ) ,
Begriffswert ( X ( 3 , Sperren ( 0 ) , Zeigen ( 1 ) ) ) ,
Simulator (
1 ,
Faktoren ( X << Zufällig ( Normal ( 3 , 0,8 ) ) ) ,
Antworten ( j << Kein Geräusch )
)
) ,
: j << { Passt nicht ( 0 ) , Tatsächliche Darstellung durch vorhergesagte Darstellung ( 1 ) , Plot-Residuum nach Vorhersage ( 1 ) , Hebelwirkung des Handlungseffekts ( 1 )}
)
) ;
// Definieren Sie ein Beispielskript
etwas tun =
Ausdruck (
Piep () ;
Für ( ich = 1 , ich <= NTable () , ich ++, Drucken ( ich , Datentabelle ( ich ) << getName )) ;
) ;
// Weisen Sie der Schaltfläche das Beispielskript zu (JMP scheint dem bereits vorhandenen Skript vorangestellt zu sein?)
Bericht ( fm )[ ButtonBox ( 5 )] << setScript ( etwas tun ) ;
Schicken Sie diesen Thread vielleicht an support@jmp.com um eine definitive Antwort zu bekommen?