Fehler in JMP 13.1 für die Funktion zum Ändern der TabellenfeldzeileHallo JMP-Nutzer,
Ich habe einen Fehler mit der Zeilenänderungsfunktion für eine Tabellenbox festgestellt. Ich versuche, den Fokus auf eine andere Registerkarte in der Funktion zu ändern, die aber ignoriert wird. Ich habe mich an den technischen Support von JMP gewandt, der sagte, er würde entweder in JMP 13.2 oder 14 behoben. Dies ist ein Show-Stopper für mich. Ich habe mich gefragt, ob jemand anderes dieses Verhalten bemerkt hat und einen Workaround finden konnte?
Vielen Dank,
Peter
Hier ist das Programm, das den Fehler demonstriert:
nw = new window("test",
tabx = tab box(
"First Tab",
tb = table box(
scb1 = string col box("One", {"AAA", "BBB", "CCC"}),
scb2 = string col box("Two", {"XXX", "YYY", "ZZZ"}),
scb3 = string col box("Three", {"Giant", "Awesome", "Stupendous"}),
ncb = number col box("Four", {44, 33, 22}),
),
"Second Tab",
txb = text box("Nothing selected"),
),
);
tb << Set Selectable Rows(1);
tb << set row change function(
function({this},
rlist = this << get selected rows;
if (nrows(rlist) > 0,
print(rlist[1]);
txb << set text(char(rlist[1]));
tabx << set selected(2);
);
);
);Re: Fehler in JMP 13.1 für die Funktion zum Ändern der TabellenfeldzeileDanke Dan Es ist eine Art Goldberg-artige Lösung, aber es funktioniert!
Re: Fehler in JMP 13.1 für die Funktion zum Ändern der TabellenfeldzeileHallo Peter,
Dieses Problem wurde durch das Hinzufügen des Fokus für das Registerkartenfeld in JMP 13 verursacht. Wenn Sie auf eine Registerkarten-Seite klicken, wird der Fokus übernommen, wenn er noch nicht aktiv ist. Das Timing ist in diesem Fall ein entscheidender Faktor, da der Zeilenwechsel-Callback den Fokus auf die zweite Registerkarte setzt und die Registerkarte, auf die Sie geklickt haben, ihn sofort stiehlt.
Um das Problem zu umgehen, benötigen wir eine Möglichkeit, die Registerkarte festzulegen, nachdem die Klickverarbeitung abgeschlossen ist. Hier ist ein Beispiel, bei dem ich eine Variable für die Registerkarte einstelle, zu der ich wechseln möchte, und dann in einem Frame Box-Grafikskript die Registerkarte zurückgesetzt wird. Dies geschieht bei der nächsten Ziehung, die unmittelbar nach dem Klick ausgeführt wird.
Ich hoffe das hilft!
-Dan
tabOverride = 0;
nw = New Window( "test",
V List Box(
tabx = Tab Box(
"First Tab",
tb = Table Box(
scb1 = String Col Box( "One", {"AAA", "BBB", "CCC"} ),
scb2 = String Col Box( "Two", {"XXX", "YYY", "ZZZ"} ),
scb3 = String Col Box( "Three", {"Giant", "Awesome", "Stupendous"} ),
ncb = Number Col Box( "Four", {44, 33, 22} ),
),
"Second Tab",
txb = Text Box( "Nothing selected" ),
),
gb = Graph Box( Frame Size( 1, 1 ), XName( "" ), YName( "" ) )
)
);
Try(gb[AxisBox( 1 )] << Delete Box);
Try(gb[AxisBox( 1 )] << Delete Box);
Try(gb[Text Edit Box( 1 )] << Delete Box);
Try(gb[Border Box(1)] << Top(0) << Bottom(0) << Left(0) << Right(0));
gb[FrameBox( 1 )] << Add Graphics Script(
If( tabOverride > 0,
tabx << Set Selected( tabOverride );
tabOverride = 0;
)
);
tb << Set Selectable Rows( 1 );
tb << set row change function(
Function( {this},
rlist = this << get selected rows;
If( N Rows( rlist ) > 0,
Print( rlist[1] );
txb << set text( Char( rlist[1] ) );
tabOverride = 2;
tabx << set selected( 2 );
);
)
);
Re: Fehler in JMP 13.1 für die Funktion zum Ändern der TabellenfeldzeilePete,
Ich habe ähnliche Probleme mit den Registerkarten. Ich habe die Probleme mehrmals gelöst, indem ich die betreffende Einfügung gelöscht und sie mit den neuen Informationen neu erstellt habe. Optisch hat dies keine Auswirkungen auf den Benutzer. Wenn dies funktioniert, ist dies eine gute Lösung. Ich habe jedoch versucht, dasselbe mit Ihrem Beispielskript zu tun, und ich konnte Ihr "Auswahl" -Problem nicht lösen.