Colonna collegata con suffisso ID che confonde l'uso del nome della colonnaMi sento come se stessi diventando un po' pazzo. Ho un nome di colonna che inserisco in una variabile tramite una casella di selezione di colonna. Poi in seguito la manipolo, ma sfortunatamente la colonna è una colonna collegata, quindi arriva con un "[ID]" allegato. Va tutto bene finché non provo Char() e all'improvviso appaiono i caratteri di escape: "{\!"Solvent[ID]\!"}". Poiché questi caratteri sono speciali, incasinano le virgolette e sembra molto complicato il modo in cui gestisce il terzo punto interrogativo che dovrebbe risolverlo. Forse sto inserendo le virgolette extra nel posto sbagliato, ma sono abbastanza sicuro di non basarmi sulla documentazione. Ho provato regex, munger, replace, Eval Expr e nulla sembra essere in grado di ottenere il tipo corretto di cui ho bisogno, che è semplicemente una stringa da inserire in cose come la funzione di colonna di by() per riepilogare . A questo punto ho la sensazione di fraintendere qualcosa, perché non può essere così difficile.
Grazie!
Automazione e scriptingfinestreRi: Colonna collegata con suffisso ID che confonde l'uso del nome della colonnaPerché è necessario utilizzare Char sul nome di quella colonna? In generale non dovrebbe mai essercene bisogno (a meno che non ti serva solo il nome e molto probabilmente lo possiedi già).
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));Ri: Colonna collegata con suffisso ID che confonde l'uso del nome della colonna@jthi Grazie per la risposta! Quindi il motivo per cui non ho semplicemente eseguito una semplice uguaglianza è perché ogni volta che provo ad accedere all'elenco dei nomi delle colonne di un singolo membro, ottengo sempre qualcosa sulla falsariga di questo errore (è simile con altri comandi):
Send Expects Scriptable Object at row 1 in access or evaluation of 'Send' , clb << /*###*/Get( 1 ) /*###*/
Ho provato ad accedervi nel modo da te suggerito, con un comando get items, ma l'errore continuava a comparire. Il codice seguente mostra dove vengono visualizzate per prime le variabili (si tratta di majorVar e minorVar). Non ho mai usato la sintassi window:xxx prima, quindi forse c'è un modo in cui gestisce le variabili che non capisco?
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>Ri: Colonna collegata con suffisso ID che confonde l'uso del nome della colonnaEsiste un motivo specifico per utilizzare la casella di riepilogo anziché il selettore di colonne di filtro o la casella di riepilogo di colonne? Poiché sembra che tu abbia già un validatore per gli input e deve esserci esattamente un valore scelto da entrambi gli elenchi, puoi semplicemente prendere il primo indice da entrambi (<< Get Selected restituisce un elenco di stringhe)

majorVar = majorVar[1];
minorVar = minorVar[1];
Re: Colonna collegata con suffisso ID che confonde l'uso del nome della colonnaHa funzionato! Grazie!