Skript zur ButtonBox im JMP-Bericht hinzufügen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Liebe Gemeinde
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 Antwort mit mehreren Faktoren zu erstellen:
MeinProfiler = Profiler (
Y ( : Antwort )
) ;
MeinProfiler << Simulator (
Faktoren (
Faktor 1 << Zufällig ( Normal ()) ,
Faktor 2 << Zufällig ( Normal ())
) ;
Ich möchte der Schaltfläche „Tabelle erstellen“ unter dem Gliederungsfeld „In Tabelle simulieren“ im Berichtsfenster einige Funktionen hinzufügen. Ich mache das, indem ich ein Skript hinzufüge. Ich möchte die Tabelle benennen, die sich aus der Schaltfläche "Tabelle erstellen" ergibt, und eine Reihe von Operationen an dieser Tabelle ausführen:
Bericht ( MeinProfiler )[ ButtonBox ( 2 )] << Skript festlegen (
MySimTable = Aktuelle Datentabelle () ;
//Aktionen auf MySimTable ausführen
) ;
Das Problem ist, dass die ' Aktuelle Datentabelle' Befehl ausgeführt wird Vor alle anderen Aktionen beim Drücken der Taste. Das bedeutet, dass die aktuelle Tabelle nicht die Tabelle ist, die durch Drücken der Schaltfläche „Tabelle erstellen“ erstellt wurde. Hier ist also meine Frage: Gibt es eine Möglichkeit, die Schaltflächenfunktion „Einbauen“ auszuführen, bevor die „ Aktuelle Datentabelle ' Befehl? Alle Lösungen, die mir automatisch einen Verweis auf die generierte Tabelle geben, werden sehr geschätzt.
Vielen Dank
Betreff: Skript zur ButtonBox im JMP-Bericht hinzufügenHallo,
Ich habe mit dem JMP-Entwicklungsteam bestätigt, dass es beabsichtigt ist, dass 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 (ausgeblendete) 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, um die alte Schaltfläche auszublenden und anzuklicken 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 zur ButtonBox im JMP-Bericht hinzufügenHallo Jan
Danke für deine Antwort. Ich habe diese Diskussion an das Support-Team gesendet, nur um zu sehen, was sie zu sagen haben.
Betreff: Skript zur ButtonBox im JMP-Bericht hinzufügenHallo Jerry
Ich hatte eine ähnliche Idee für einen Workaround. Danke, dass Sie mir gezeigt haben, wie man diese Lösung implementiert. Es funktioniert perfekt
Betreff: Skript zur ButtonBox im JMP-Bericht hinzufügenIch stimme Jan zu. Als Problemumgehung, bis Sie eine bessere Option erhalten, könnten Sie jedoch in Betracht ziehen, eine neue Schaltfläche hinzuzufügen, die die Funktion „Tabelle erstellen“ entführt:
Bericht ( MeinProfiler )[ "Auf Tisch simulieren" ] << voranstellen (
neueSchaltfläche = Button-Box ( "Tabelle machen Plus" ,
Bericht ( MeinProfiler )[ 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 zur ButtonBox im JMP-Bericht hinzufügenIch denke, das folgende Skript bestätigt nur das Verhalten, das Sie gefunden haben. Es sieht in solchen Fällen so aus, als ob 'setScript' fügt hinzu zum vordefinierten Skript (was vernünftig erscheint), aber es scheint eher vorangestellt als angehängt zu werden:
NamesDefaultToHere ( 1 ) ;
// Tabelle testen
dt = Neue Tabelle ( "Simulieren" ,
Zeilen hinzufügen ( 5 ) ,
Neue Spalte ( "x" ,
Numerisch ,
"kontinuierlich" ,
Format ( "Am besten" , 12 ) ,
Werte einstellen ( [ 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" ) ,
Hervorhebung ( "Effekthebel" ) ,
Laufen (
Profiler (
1 ,
Vertrauensintervalle ( 1 ) ,
Laufzeitwert ( 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 ) , Darstellung von Ist nach Vorhergesagt ( 1 ) , Residuum nach Vorhergesagt darstellen ( 1 ) , Plot-Effekt-Hebelwirkung ( 1 )}
)
) ;
// Beispielskript definieren
etwas tun =
Ausdruck (
Signalton () ;
Zum ( ich = 1 , ich <= NTabelle () , ich ++, Drucken ( ich , Datentabelle ( ich ) << getName )) ;
) ;
// Weisen Sie der Schaltfläche das Beispielskript zu (JMP scheint dem bereits vorhandenen Skript vorangestellt zu werden?)
Bericht ( FM )[ ButtonBox ( 5 )] << setScript ( etwas tun ) ;
Vielleicht schickst du diesen Thread an support@jmp.com um eine endgültige Antwort zu bekommen?