Columna vinculada con sufijo de ID que arruina el uso del nombre de la columnaSiento que me estoy volviendo un poco loco. Tengo un nombre de columna que puse en una variable mediante un cuadro de selección de columnas. Luego lo manipulo, pero desafortunadamente la columna es una columna vinculada, por lo que viene con un "[ID]" adjunto. Eso está muy bien hasta que pruebo Char() y de repente aparecen caracteres de escape: "{\!"Solvent[ID]\!"}". Debido a que estos caracteres son especiales, estropean las comillas y parece muy delicado cómo maneja el tercer signo de interrogación que se supone que lo soluciona. Tal vez estoy poniendo las comillas adicionales en el lugar equivocado, pero estoy bastante seguro de que no me baso en la documentación. Probé expresiones regulares, munger, sustituto, Eval Expr y nada parece poder lograr que llegue al tipo correcto que necesito, que es simplemente una cadena para colocar en cosas como la función de columna de by() para resumir. . Siento que estoy entendiendo mal algo en este momento, porque esto no puede ser tan difícil.
¡Gracias!
Automatización y secuencias de comandosventanasRe: Columna vinculada con sufijo de ID que arruina el uso del nombre de la columna¿Por qué necesitas usar Char en el nombre de esa columna? En general, "nunca" debería ser necesario (a menos que solo necesite el nombre y lo más probable es que ya lo tenga).
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));Re: Columna vinculada con sufijo de ID que arruina el uso del nombre de la columna@jthi ¡Gracias por la respuesta! Entonces, la razón por la que no hice una igualdad simple es porque cada vez que intento acceder a la lista de nombres de columnas de un solo miembro, siempre obtengo algo como este error (es similar con otros comandos):
Send Expects Scriptable Object at row 1 in access or evaluation of 'Send' , clb << /*###*/Get( 1 ) /*###*/
Intenté acceder a él de la manera que sugirió, con un comando para obtener elementos, pero ese error siguió apareciendo. El siguiente código muestra dónde aparecen primero las variables (es majorVar y minorVar). Nunca antes había usado la sintaxis window:xxx, así que tal vez haya alguna forma de manejar variables que no entiendo.
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>Re: Columna vinculada con sufijo de ID que arruina el uso del nombre de la columna¿Existe alguna razón específica para utilizar el cuadro de lista en lugar del selector de columnas de filtro o el cuadro de lista de columnas? Como parece que ya tiene un validador para las entradas y debe haber exactamente un valor elegido de ambas listas, puede simplemente tomar el primer índice de ambas (<< Obtener seleccionado devuelve una lista de cadenas)

majorVar = majorVar[1];
minorVar = minorVar[1];
Re: Columna vinculada con sufijo de ID que arruina el uso del nombre de la columna¡Funcionó! ¡Gracias!