Verknüpfte Spalte mit ID-Suffix, die die Verwendung des Spaltennamens durcheinander bringtIch habe das Gefühl, ein bisschen verrückt zu werden. Ich habe einen Spaltennamen, den ich über ein Spaltenauswahlfeld in eine Variable eingebe. Später manipuliere ich es dann, aber leider ist die Spalte eine verknüpfte Spalte, sodass ihr eine „[ID]“ angehängt ist. Das ist alles schön und gut, bis ich Char() darauf ausprobiere und plötzlich Escape-Zeichen auftauchen: „{\!Solvent[ID]\!“}“. Da diese Zeichen etwas Besonderes sind, bringen sie die Anführungszeichen durcheinander, und es scheint sehr schwierig zu sein, wie mit dem dritten Fragezeichen umgegangen wird, das das Problem beheben soll. Vielleicht setze ich die zusätzlichen Anführungszeichen an der falschen Stelle, aber ich bin mir ziemlich sicher, dass ich mich nicht auf Dokumentation beziehe. Ich habe Regex, Munger, Substitute und Eval Expr ausprobiert, aber nichts scheint in der Lage zu sein, es in den richtigen Typ zu bringen, den ich brauche, bei dem es sich lediglich um eine Zeichenfolge handelt, die in Dinge wie die Spaltenfunktion von by() zum Zusammenfassen eingefügt werden kann . Ich habe das Gefühl, dass ich an dieser Stelle etwas falsch verstehe, weil das nicht so schwierig sein kann.
Danke!
Automatisierung und SkripterstellungWindowsBetreff: Verknüpfte Spalte mit ID-Suffix, die die Verwendung des Spaltennamens durcheinander bringtWarum müssen Sie Char für diesen Spaltennamen verwenden? Im Allgemeinen sollte „nie“ ein Bedarf dafür bestehen (es sei denn, Sie benötigen nur den Namen und haben ihn höchstwahrscheinlich bereits).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt << Select Where(:name == "ROBERT") << Delete Rows << Clear Select;
dt2 << Select Where(:name == "ROBERT") << Delete Rows << Clear Select;
dt:name << Set Property("Link ID", 1);
dt2:name << Set Property("Link Reference", Reference Table("Big Class.jmp"));
nw = New Window("",
H List Box(
Filter Col Selector(Datatable(dt2)),
clb = Col List Box(Datatable(dt2))
)
);
clb << Set Items(
{"age[name]", "sex[name]", "height[name]", "weight[name]"}
);
sel = clb << get items; // {"age[name]", "sex[name]", "height[name]", "weight[name]"}
show(sel);
show(Char(sel));
Write("\!N\!N");
Write(char(sel));Betreff: Verknüpfte Spalte mit ID-Suffix, die die Verwendung des Spaltennamens durcheinander bringt@jthi Danke für die Antwort! Der Grund, warum ich nicht einfach eine einfache Gleichheit durchgeführt habe, liegt darin, dass ich jedes Mal, wenn ich versuchte, auf die Namensliste der Einzelelementspalten zuzugreifen, immer etwas in der Art dieses Fehlers erhalte (ähnlich bei anderen Befehlen):
Send Expects Scriptable Object at row 1 in access or evaluation of 'Send' , clb << /*###*/Get( 1 ) /*###*/
Ich habe versucht, auf die von Ihnen vorgeschlagene Weise mit dem Befehl „Get Items“ darauf zuzugreifen, aber dieser Fehler trat immer wieder auf. Der folgende Code zeigt, wo die Variablen zuerst angezeigt werden (die Haupt- und die Nebenvariable). Ich habe noch nie zuvor die Syntax „window:xxx“ verwendet. Gibt es also vielleicht eine Möglichkeit, mit Variablen umzugehen, die ich nicht verstehe?
New Window("Select Variables", << Type("Modal Dialog"),
<<ON validate="">majorVar = window:lbMajor << Get Selected;
<FONT color="#339966">minorVar</FONT> = window:lbMinor << Get Selected;
If( N Items( <FONT color="#FF0000">majorVar</FONT> ) & N Items( <FONT color="#339966">minorVar</FONT> ) & <FONT color="#FF0000">majorVar</FONT> != <FONT color="#339966">minorVar</FONT>,
window:validated = 1
,
window:validated = 0
);
window:ok button << Enable( window:validated )
);
H List Box(
V List Box(
Text Box("Select Major Variable"),
window:lbMajor = List Box(combinedCols, <<SET max="" selected="">majorVar = window:lbMajor << Get Selected;
<FONT color="#339966">minorVar</FONT> = window:lbMinor << Get Selected;
If( N Items( <FONT color="#FF0000">majorVar</FONT> ) & N Items( <FONT color="#339966">minorVar</FONT> ) & <FONT color="#FF0000">majorVar</FONT> != <FONT color="#339966">minorVar</FONT>,
window:validated = 1
,
window:validated = 0
);
If( window:validated,
Print("Processing with major: " || Char(<FONT color="#FF0000">majorVar</FONT>) || ", minor: " || Char(<FONT color="#FF0000">minorVar</FONT>));
Window("Select Variables") << Close Window;
,
Beep(); // Optional: Add a beep sound for alert
Show("Invalid Selection");
{window:lbMajor, window:lbMinor} << Select; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << DeSelect; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << Select; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << DeSelect; window:lbMajor << Inval << Update Window;
)
,
<<ENABLE></ENABLE></SET></ON>Betreff: Verknüpfte Spalte mit ID-Suffix, die die Verwendung des Spaltennamens durcheinander bringtGibt es einen bestimmten Grund für die Verwendung von List Box anstelle von Filter Col Selector oder Col List Box? Da Sie anscheinend bereits über einen Validator für die Eingaben verfügen und aus beiden Listen genau ein Wert ausgewählt werden muss, können Sie einfach den ersten Index aus beiden übernehmen (<< Get Selected gibt eine Liste mit Zeichenfolgen zurück).

majorVar = majorVar[1];
minorVar = minorVar[1];
Betreff: Verknüpfte Spalte mit ID-Suffix verursacht Probleme mit der SpaltennamensverwendungDas hat funktioniert! Danke!