Was hat Sie zu dieser Wunschlistenanfrage inspiriert?
Ich muss häufig Beschriftungsspalten in Abhängigkeit von den Zeilenwerten in einer Spalte erstellen. Zum Beispiel könnte ich die Spalte ERROR_DESCRIPTION haben und wenn sie einen Wert hat, bedeutet dies, dass ein Fehler aufgetreten ist, sonst war der Test in Ordnung. Also hätte ich gerne eine Formel für FAILURE-Etiketten: ERRORDESCRIPTION != "" -> "1" sonst "0".Und ich möchte dies mit New Formula Colum und als Transformationsspalten von Filter Col Selectors auf verschiedenen Plattformen tun können.
Welche Verbesserung wünschen Sie sich?
Ich würde gerne die Möglichkeit sehen, eine neue Formelspalte (und Transformationsspalte) zu erstellen, um solche Beschriftungen basierend auf Zeilenwerten zu erstellen.
Dieses Beispiel kombiniert zwei Typen zu einem, aber die Idee wäre, dass je nach Datentyp der Spalte unterschiedliche Auswahlmöglichkeiten verfügbar sein sollten. Die Benutzeroberfläche kann ziemlich einfach benutzerfreundlicher gemacht werden (und sollte es auch sein), zum Beispiel durch Deaktivieren der Auswahl, bis der Zeilenwert ausgewählt wurde. Und wenn der Spaltenmodellierungstyp fortlaufend ist, könnte das Kombinationsfeld möglicherweise ein Schiebereglerfeld sein

und in diesem Fall würden erstellte Spalten ungefähr so aussehen:
dt << New Column("Compare[age]", Character, Nominal, Formula(
If(:age >= 14, 1,
0
)
));
dt << New Column("Compare[name]", Character, Nominal, Formula(
If(:name == "ALFRED", "1",
:name == "CAROL", "2",
"0"
)
));
Demo-UI-Skript:
Mehr sehen...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, col_options_num = By(:age));
Insert Into(col_options_num, "<SELECT>", 1);
numeric_options = {"==", ">=", ">", "<=", "<"};
Summarize(dt, col_options_char = By(:name));
Insert Into(col_options_char, "</SELECT><SELECT>", 1);
character_options = {"==", "!="};
lub_expr_numeric = Expr(Lineup Box(N Col(3),
Combo Box(col_options_num, << Set Function(function({this},
If(this << get selected != "</SELECT><SELECT>",
((this << parent) << parent) << Append(lub_expr_numeric);
);
))),
Combo Box(numeric_options),
Number Edit Box(.)
));
lub_expr_character = Expr(Lineup Box(N Col(3),
Combo Box(col_options_char, << Set Function(function({this},
If(this << get selected != "</SELECT><SELECT>",
((this << parent) << parent) << Append(lub_expr_character);
);
))),
Combo Box(character_options),
Text Edit Box("")
));
// could also be built with Table Box
nw = New Window("Demo", << modal,
H List Box(
Panel Box("Numeric - age",
Lineup Ruler Box(
Widths({100,70,50}),
Lineup Box(N Col(3),
Text Box("Row Value"),
Text Box("Compare"),
Text Box("Value")
),
V List Box(
lub_expr_numeric,
),
Text Box("..."),
Lineup Box(N Col(3),
Text Box("Else"),
Combo Box({""}, << Enabled(0)),
Number Edit Box(.)
)
)
),
Spacer Box(Size(50,0)),
Panel Box("Character - name",
Lineup Ruler Box(
Widths({100,70,50}),
Lineup Box(N Col(3),
Text Box("Row Value"),
Text Box("Compare"),
Text Box("Value")
),
V List Box(
lub_expr_character,
),
Text Box("..."),
Lineup Box(N Col(3),
Text Box("Else"),
Combo Box({""}, << Enabled(0)),
Text Edit Box("")
)
)
),
Panel Box("Actions",
Button Box("OK",
num_vals = .
),
Button Box("Cancel")
)
)
);
</SELECT>
Warum ist diese Idee wichtig?
Würde es viel schneller machen, Transformationsbeschriftungsspalten zu erstellen, die nicht von Auswahlen, sondern von Zeilenwerten in der Spalte abhängig sind.