So ändern Sie eine vorhandene DisplayBox mit JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, eine Schaltfläche zu erstellen, die die Ausgabe des Dialogfelds "Modell anpassen ()" ändert, um ein vorhergesagtes R2 in die Tabelle "Summary of Fit" aufzunehmen.Ich hole das aktuelle Fenster und dann muss ich die PRESS-Statistik aktivieren.Danach ist es ganz einfach und es funktioniert meistens, wenn ich die PRESS-Statistik bereits über das Wettbewerbsmenü aktiviert habe.Es funktioniert auch, wenn ich den Fit-Model-Dialog selbst codiere und in Zeile zwei die PRESS-Statistik aktiviere und dann an den Report schicke.Das Problem, auf das ich stoße, ist, dass das Ergreifen des aktuellen Fensters () eine DisplayBox erfasst, ohne dass die Plattform angewiesen wird, Dinge zu tun.Ich habe überlegt, einfach das Skript zu nehmen, um das Fenster zu erstellen, das Original zu schließen und ein neues auszuführen (ein schnelles Flackern des Bildschirms ist nicht so schlimm), aber das << Get Script gibt die Baumstruktur zurück, nicht das Fit Model() Skript.Gibt es etwas Einfaches, das ich vermisse?Ich schreibe dies in JMP 9, falls das hilft.Ich hoffe, es ist JMP 8-kompatibel, aber das ist nicht wichtig.Danke!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Betreff: So ändern Sie eine vorhandene DisplayBox mit JSLMS - das Get Scriptable Object löst das Problem perfekt!Ich sehe, wo es Probleme geben könnte, eine „Gruppe“ zu haben, aber ich glaube nicht, dass das ein echtes Problem sein wird, wenn man die Art von Arbeit betrachtet, die wir hier machen.Vielen Dank, dass Sie mich zur Lösung geführt haben!
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Betreff: So ändern Sie eine vorhandene DisplayBox mit JSLOK, ich verstehe. Der Grund, warum <
Ich habe eine Weile gebraucht, um es herauszufinden, aber der folgende Ansatz mit <
dt = Offen ( "$ENGLISH_SAMPLE_DATA/Große Klasse.jmp" ) ;
Modell anpassen (
Y ( : Gewicht ) ,
Auswirkungen ( : Höhe ) ,
Persönlichkeit ( Standard-Kleinste-Quadrate ) ,
Schwerpunkt ( Minimaler Bericht ) , Laufen
) ;
fit = Fenster ( "Große Klasse: Fit Least Squares" )[ Gliederungsbox ( 1 )] << erhalten Sie ein skriptfähiges Objekt ;
fit << Drücken Sie ( 1 ) ;
drucken ( fit << Skript bekommen ) //Get Script funktioniert wie erwartet!
So ändern Sie eine vorhandene DisplayBox mit JSLMS - danke für deine schnelle Antwort!Das Problem ist, dass der folgende Teil nicht enthalten sein kann, damit dies so bereitgestellt wird, wie ich es möchte.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
Ich möchte in der Lage sein, dies als Add-in bereitzustellen, damit Endbenutzer einfach in ihrer Symbolleiste drücken können, nachdem sie ein Modell mithilfe der typischen JMP-Oberfläche angepasst und die wichtigen Informationen angehängt haben.
Was mich verwirrt, ist, dass ich über JSL nicht auf das Kontextmenü des Fensters zugreifen kann, wenn JMP es erstellt hat, anstatt es von JSL zu erstellen.Ich kann über JSL problemlos auf die Menüs der obersten Ebene zugreifen, nicht jedoch auf das Kontextmenü.Außerdem verstehe ich nicht, warum die Nachricht << Get Script die Baumstruktur des Fensters und nicht ein JSL-Skript zurückgibt, um es so zu erstellen, wie es das Kontextmenü bietet.Ich weiß, dass JMP die Dinge tun kann, die ich will, ich scheine nur von JSL ausgeschlossen zu sein.
So ändern Sie eine vorhandene DisplayBox mit JSLIch bin mir nicht sicher, was Sie genau versuchen, aber ich denke, Sie müssen die Press(1)-Nachricht an ein Fit Model-Objekt und nicht an ein Window-Objekt senden. Wie im Beispiel unten (Ausführen und dann auf „PRESSEN“ klicken). Funktioniert in JMP9 (Mac).
dt = Offen ( "$English_Sample_Data/Tiretread.jmp" ) ;
fit = Modell anpassen (
Y ( : ABRIEB ) ,
Auswirkungen ( : Kieselsäure , : SILAN ) ,
Persönlichkeit ( Standard-Kleinste-Quadrate ) ,
Schwerpunkt ( Minimaler Bericht ) ,
Laufen (
: ABRIEB << { Darstellung von Ist nach Vorhergesagt ( 0 ) , Plot-Regression ( 0 ) , Residuum nach Vorhergesagt darstellen ( 0 ) ,
Plot-Effekt-Hebelwirkung ( 0 )}
)
) ;
dg = Bericht ( fit ) ;
dg << voranstellen (
Button-Box ( "DRÜCKEN SIE" ,
fit << Drücken Sie ( 1 ) ;
Drücken Sie = dg [ Nummer Col Box ( "RMSE drücken" )] << Holen Sie sich als Matrix ;
Drücken Sie = Drücken Sie [ 1 ] ;
ss = dg [ Nummer Col Box ( "Quadratsumme" )] << Holen Sie sich als Matrix ;
letzte Reihe = N-Reihe ( ss ) ;
Edelstahl = ss [ letzte Reihe ] ;
vorR = 1 - Drücken Sie / Edelstahl ;
Werte = dg [ Nummer Col Box ( 1 )] << Holen Sie sich als Matrix ;
neue Werte = J ( 1 , 6 ) ;
neue Werte [ 1 :: 2 ] = Werte [ 1 :: 2 ] ;
neue Werte [ 6 ] = vorR ;
neue Werte [ 3 :: 5 ] = Werte [ 3 :: 5 ] ;
dg [ String-Col-Box ( 1 )] << Element hinzufügen ( "RSquare Pred" ) ; // Werte hinzufügen funktioniert nicht, daher die Neuordnung
dg [ Nummer Col Box ( 1 )] << Werte einstellen ( neue Werte ) ;
)
) ;
So ändern Sie eine vorhandene DisplayBox mit JSLNur um klar zu sein, die erste Zeile, dg = Current Window(); gibt DisplayBox[] im Protokoll zurück.Ich suche nach einer Möglichkeit, über JSL auf Kontextmenüs im Fenster zuzugreifen, um Dinge zur Baumstruktur hinzuzufügen, damit ich sie später abrufen kann, insbesondere, wie man PRESS(1) markiert.Danke!