Mehrere SpaltenumschalterGibt es eine Möglichkeit zu verhindern, dass dieselbe Spalte ausgewählt wird, wenn mehrere Spaltenumschalter ausgeführt werden?
dt = open("$SAMPLE_DATA/Candy Bars.jmp");
biv = dt << Bivariate(
Y( :Saturated fat g ),
X( :Sugars g ),
SendToReport( Dispatch( {}, "Bivar Plot", FrameBox, {Frame Size( 593, 564 )} ) )
);
cs1 = biv << Column Switcher(
:Saturated fat g,
{:Name( "Serving/pkg" ), :Calories, :Total fat g, :Saturated fat g,
:Cholesterol g, :Sodium mg, :Carbohydrate g, :Dietary fiber g, :Sugars g,
:Protein g, :Vitamin A %RDI, :Vitamin C %RDI, :Calcium %RDI, :Iron %RDI}
);
cs2 = biv << Column Switcher(
:Sugars g,
{:Name( "Oz/pkg" ), :Calories, :Total fat g, :Saturated fat g,
:Cholesterol g, :Sodium mg, :Carbohydrate g, :Dietary fiber g, :Sugars g,
:Protein g, :Vitamin A %RDI, :Iron %RDI}
);
cs1 << Run;
cs2 << Run;
Wenn Sie dies lange genug laufen lassen, holt cs2 irgendwann cs1 ein und gibt einen Fehler aus.Da die Spalten jetzt gleich sind, verlieren cs1 und cs2 ihre X/Y-Abhängigkeiten und ändern nun beide Parameter.Somit ist X=Y jetzt immer wahr.
Kennt jemand eine Lösung?
Betreff: Mehrere SpaltenumschalterHier sind die Knöpfe.Dies verwendet Schedule() zum Ausführen der Animation und setIcon() zum Abrufen der Grafik.Die Write()-Anweisungen sollten durch die Logik zum Ändern der Variablen ersetzt werden.OnClose richtet das sichtbare Fenster so ein, dass das Zeitplanerfenster geschlossen wird, wenn das sichtbare Fenster geschlossen wird.

stop = 0; // animating state
loopFun = Function( {},
If( !stop,
Write( "go again\!n" ); // logic for animation
Schedule( .5, loopFun() ); // continue the animation 1/2 second later
)
);
New Window( "buttons",
<<ONCLOSE></ONCLOSE>
Betreff: Mehrere SpaltenumschalterEigentlich habe ich die Formatierung mit der Col List Box-Funktion zum Laufen gebracht.Wenn jedoch jemand etwas Zeit damit verbringen würde, die benutzerdefinierte Wiedergabe- und Stopp-Schaltfläche zu erstellen, wäre IHNEN VIELEN DANK!
Hier ist der Code, den ich schnell für die benutzerdefinierten Umschalter erstellt habe, wobei xcolumns und ycolumns die Liste der Spalten sind, die zum Umschalten benötigt werden, und dt die Datentabelle ist.
xnlines = If(nitems(xcolumns) > 15, 15, nitems(xcolumns));
ynlines = If(nitems(ycolumns) > 15, 15, nitems(ycolumns));
vlb << Append(hlb = Hlistbox(VlistBox(
Text Box("Column X"),
columnswitcherX = Col List Box(width(250), maxSelected(1), nlines(xnlines)),
Text Box("Column Y"),
columnswitcherY = Col List Box(width(250), maxSelected(1), nlines(ynlines)))));
columnswitcherX << Append(xcolumns);
columnswitcherY << Append(ycolumns);
columnswitcherX << Set Selected(1);
columnswitcherX << Set Script(
bivcolx = columnswitcherX << get selected;
bivcoly = columnswitcherY << get selected;
try(interactivebiv << Delete Box);
hlb << Append(interactivebiv = dt << Bivariate( X( Column(dtinteractive, bivcolx) ), Y( Column(dtinteractive, bivcoly) ), Fit Line( {Line Color( {213, 72, 87} )} )) )
);
columnswitcherY << Set Script(
bivcolx = columnswitcherX << get selected;
bivcoly = columnswitcherY << get selected;
try(interactivebiv << Delete Box);
hlb << Append(interactivebiv = dt << Bivariate( X( Column(dtinteractive, bivcolx) ), Y( Column(dtinteractive, bivcoly) ), Fit Line( {Line Color( {213, 72, 87} )} )) )
);
columnswitcherY << Set Selected(1);
Betreff: Mehrere Spaltenumschalter<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Also habe ich das getan, aber da die Spaltennamen ziemlich lang sind, kann ich sie in meinem Listenfeld nicht richtig formatieren.Wissen Sie, wie Sie sie so anzeigen lassen, wie sie im Spaltenumschalter angezeigt werden?(Erster Teil....letzter Teil)?
Betreff: Mehrere SpaltenumschalterDies ist eine irritierende Einschränkung der Spaltenumschalter.Die Problemumgehung besteht darin, keine Spaltenumschalter zu verwenden, sondern die Funktionalität mithilfe von Listenfeldern (oder Kombinationsfeldern) selbst zu implementieren.Fügen Sie diesen Listenfeldern ein Skript hinzu, das das bivariate Diagramm löscht und basierend auf der Auswahl im Listenfeld ein neues hinzufügt.