JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteHallo,
Ich hoffe, es geht dir gut.
Ich habe eine Frage zu den Skripten der Kontrollkästchen in JMP.
Ich habe einen Datensatz mit einer „Stärke“-Variable und möchte einen Teilsatz erstellen, wenn der Datensatz gemäß einem Kontrollkästchen alle Stärken im Datensatz anzeigt. Ziel ist es, dass der Benutzer im Kontrollkästchen die interessierenden Stärken ankreuzt und dass die Zeilen im Datensatz entsprechend den im Kontrollkästchen aktivierten Stärken ausgewählt werden. Da die Stärken je nach Datensatz nicht unbedingt gleich sein müssen, habe ich mich gefragt, ob es möglich ist, die eindeutigen Werte der Stärken aus der Spalte zu „extrahieren“ und sie dann im Kontrollkästchen anzuzeigen, um sie im Kontrollkästchen auszuwählen Stärken des Interesses. Ich möchte, dass das Skript so allgemein wie möglich ist, um alle Datensätze mit allen möglichen Stärken zu analysieren.
Vielen Dank und einen schönen Tag noch,
Jean
Automatisierung und SkripterstellungBetreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteHallo wieder,
Ich habe noch eine letzte Frage: Wie kann ich den Code ändern, um jede Teilmenge nach den Stärken zu benennen, die im Kontrollkästchen aktiviert wurden?
Vielen Dank und einen schönen Tag noch,
Jean
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteAlles gut !
Vielen Dank !
Habe einen sehr schönen Tag,
Jean
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer Spalte
Ist die Teilmenge, die in der dt2-Variablen gespeichert ist
Nur wenn Sie eine dt2-Variable definieren 
Du kannst das:
dt2 = dt << subset(
selected rows(1),
selected columns only(0)
);
Gibt es einen Befehl zum Schließen oder Ausblenden der Teilmenge des Datensatzes?
Da wir es gerade erst erstellt haben, gehe ich davon aus, dass wir es nicht schließen möchten. Wenn Sie jedoch nicht möchten, dass der Benutzer es sieht, können Sie es unsichtbar machen:
dt2 = dt << subset( invisible,
selected rows(1),
selected columns only(0)
);
Wenn ich bereits einen Datensatz in Jmp geöffnet habe, wie kann ich ihn in a definieren? dt Variable
Sie können die dt-Variable entweder der aktuell geöffneten Tabelle zuordnen,
dt = current data table();
oder wenn mehrere Tabellen geöffnet sind, indem Sie auf die Tabelle verweisen:
dt = data table("strength data");
Zum Schluss noch eine Frage, die Sie nicht gestellt haben, sich aber vielleicht fragen.Sobald der Benutzer auf die Schaltfläche zum Erstellen der Teilmenge geklickt hat, können Sie am Ende des Fensters die folgenden Zeilen hinzufügen, wenn Sie das Fenster mit den Kontrollkästchen schließen möchten doSubset Funktion:
cr = current report();
cr << close window;
Viel Glück.
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteVielen Dank ! Wird die Teilmenge in der dt2-Variablen gespeichert?
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteVielen Dank !
Zwei letzte Fragen:
- Gibt es einen Befehl zum Schließen oder Ausblenden der Teilmenge des Datensatzes?
- Wenn ich bereits einen Datensatz in Jmp geöffnet habe, wie kann ich ihn in a definieren? dt Variable?
Vielen Dank und einen schönen Tag noch,
Jean
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer Spalte„for every“ ist neu in Version 16. Wenn Sie eine ältere Version haben, können Sie eine traditionellere for-Schleife verwenden:
for (i=1,i<=nitems(selected),i++,
rows = dt << select where(:Strength==selected[i],
current selection("extend")
);
);Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteHallo David, vielen Dank für deine Hilfe!
Wenn der Code jedoch ausgeführt wird, erhalte ich den folgenden Fehler:

Wie kann ich es reparieren?
Vielen Dank und einen schönen Tag noch,
Jean
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteEin alternatives Beispiel:
Names Default to Here( 1 );
// mock up data set with Strength
dt = New Table( "Strength",
New Column( "Strength", "Character", "Nominal",
Values( {"Intelligent", "Innovative", "Initiative", "Introvert", "Intelligent",
"Innovative", "Initiative", "Introvert", "Intelligent", "Innovative",
"Initiative", "Introvert"} )
)
);
// get unique values from the strength column
summarize(dt,levels=by(:strength));
// construct a window containing checkboxes
NewWindow("Selection",
BorderBox(top(20),bottom(20),left(20),right(20),
VListBox(
TextBox("Select values:"),
here:cb = CheckBox(levels),
SpacerBox(size(0,20)),
ButtonBox("Create Subset",doSubset())
)
)
);
// define function to perform when button is cliccked
doSubset = function({},{default local},
dt = current data table();
dt << clear select;
// get user selections
selected = here:cb << get selected;
// iterate over each of the selected values
// and select the associated rows
for each( {selection},selected,
rows = dt << select where(:Strength==selection,
current selection("extend")
);
);
// create a subset table
dt << subset(
selected rows(1),
selected columns only(0)
);
dt << clear select;
);
Betreff: JSL: Verwenden Sie ein Kontrollkästchen mit den Ebenen einer SpalteDieses Beispiel veranschaulicht einen Ansatz, der funktionieren könnte.
Names Default to Here( 1 );
// mock up data set with Strength
dt = New Table( "Strength",
New Column( "Strength", "Character", "Nominal",
Values( {"Intelligent", "Innovative", "Initiative", "Introvert", "Intelligent",
"Innovative", "Initiative", "Introvert", "Intelligent", "Innovative",
"Initiative", "Introvert"} )
)
);
// present user with choices
choice = Associative Array( :Strength ) << Get Keys;
New Window( "Choose Strengths",
Outline Box( "Pick Your Strengths from the Choices Below",
Panel Box( "Strengths",
Check Box( choice,
<< Set Function(
Function( { me, index }, { Default Local },
selection = me << Get Selected;
n = N Items( selection );
dt << Clear Select;
If(
n == 1,
Eval(
Substitute(
Expr( dt << Select Where( :Strength == sss ) ),
Expr( sss ), Name Expr( selection[1] )
)
),
n > 0,
sel expr = Expr( Or() );
For( i = 1, i <= n, i++,
equality = Substitute(
Expr( :Strength == ccc ),
Expr( ccc ), selection[i]
);
Insert Into( sel expr, Name Expr( equality ) );
);
Eval(
Substitute(
Expr( dt << Select Where( eee ) ),
Expr( eee ), Name Expr( sel expr )
)
);
);
);
)
)
)
)
);