¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoProblema en mi aplicación que estaba solucionando problemas todo el día. Lo reduje a este comportamiento muy qeird. A menos que me esté perdiendo algo, esto no debería ser así.
Tengo dos mesas abiertas: "Béisbol" y "Baloncesto".
Tengo este guión:
Clear Log();
//dt_current=Data Table("Basketball");
/*Two tables opened: Baseball and Basketball. The table named "Basketball" is selected as current table*/
dt_working=Data Table("Baseball");
Show("This is the dt_working table:");
Show(dt_working<<GET name=""></GET>Obviamente, estoy tratando de crear un cuadro de lista de columnas con columnas de la tabla de béisbol.
Pero esto es lo que mi registro (y el resto de la aplicación) me muestra:
"This is the dt_working table:";
dt_working << Get Name() = "Baseball";
"Columns names:";
colNamesList = {Player, Batting};
"This is what dt_working still is:";
dt_working << Get Name() = "Baseball";
"But this is what I got in Col List Box:";
colListX << Get Items = {"School", "CSN", "Durham Sun", "Durham Herald", "Washington Post", "USA Today", "Sports Magazine", "In Sport", "UPI", "AP", "Sports Illustrated"};Por alguna razón, aunque especifiqué que dt_working era Béisbol y dije que el cuadro de lista de columnas se creó usando la tabla dt_working, llena el cuadro de lista de columnas con las columnas de la tabla de datos actual que elegí en la barra de herramientas en la parte superior.
Otra aplicación que generalmente tiene un código diferente, pero esa parte en particular es exactamente la misma, funciona de manera diferente y cómo pretendía que funcionara. ¿Alguien puede ayudarme a solucionarlo más? ¿Por qué debería rellenar el cuadro de lista de columnas no de la tabla que le dije que rellenara, sino de la tabla actual?
A la larga, estoy intentando mostrar las columnas de las tablas que selecciono en un cuadro de lista diferente. Una funcionalidad similar en otra aplicación funciona bien. Aquí, sin importar en qué tabla haga clic (y ejecute un código similar al que mencioné), siempre muestra las columnas de la tabla seleccionada en la parte superior.
Gracias,
METRO.
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extraño @MathStatChem escribió:
Además, al observar la sintaxis en la guía de scripting, parece que la sintaxis no permite el uso de una referencia de tabla de datos, tiene que usar la sintaxis:
y = Col Cuadro de lista (, ...)
La Tabla de datos () en los argumentos para el Cuadro de lista de Col () no es una función, es un argumento con nombre para que el Cuadro de Lista de Col () sepa que el argumento debe interpretarse como una tabla de datos. Como tal, toma una referencia de tabla de datos como un argumento. Aquí hay un ejemplo:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA\Solubility.jmp" );
New Window("Example", Col List Box( Data Table( dt ), all ) );
No hay necesidad del mensaje << Obtener nombre.
Veremos cómo intentar detectar automáticamente si el primer argumento es una referencia de tabla de datos.
Gracias a @Justin_Chilton por la explicacion
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extraño
@ gzmorgan0 escribió:
Sí, esa fue mi recomendación de usar ColListBox (Tabla de datos (dt_ref << getname), ...)
¡Y funciona! ¡Me salvaste dos veces hoy!
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoBueno, tal vez no sea un error, tendré que buscar correos electrónicos antiguos, pero encontré una referencia con ColListBox (dt, ...) en algún lugar y marcé JMP.
Sí, esa fue mi recomendación de usar ColListBox (Tabla de datos (dt_ref << getname), ...)
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoAdemás, al observar la sintaxis en la guía de secuencias de comandos, parece que la sintaxis no permite el uso de una referencia de tabla de datos, tiene que usar la sintaxis:
y = Col Cuadro de lista (, ...)
así que usa este código
y=Col List Box( Data Table(dt_working<<GET name=""></GET>
Te da el resultado deseado. No creo que sea un error, es solo una sintaxis torpe.
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoAh, ok, ya veo. Por lo tanto, el cuadro de lista de columnas está utilizando la tabla de datos actual, no la referencia de la tabla de datos. Una solución rápida, es insertar en el script, justo antes de la declaración colList, esta declaración:
Tabla de datos actuales (dt_working);
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoSí, tuve que abrir otro script, pero allí estaba funcionando como
destinado a. Intentaré una solución alternativa de Georgia y les haré saber si funciona. Tuve un
Sospecha fuerte que era un gran, no estaba claro para mí lo que estaba desencadenando
Desde exactamente el mismo código funcionó bien en otra aplicación.Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoEjecuté su código, usando la tabla Baseball.JMP de los datos de ejemplo, y no vi el comportamiento que está viendo. Aquí está mi salida de registro.
"This is the dt_working table:";
dt_working << Get Name() = "Baseball";
"Columns names:";
colNamesList = {Player, Batting};
"This is what dt_working still is:";
dt_working << Get Name() = "Baseball";
"But this is what I got in Col List Box:";
colListX << Get Items = {"Player", "Batting"};¿Tuviste otro script abierto donde creaste la referencia colListX, quizás con otra tabla?
Puede ser mejor usar el comando Nombres predeterminados a aquí (1) al principio de la secuencia de comandos. Si no hace eso, entonces todas sus variables son globales, y dos scripts diferentes pueden pasar por encima de las variables de cada uno.
Re: ¿Me estoy volviendo loco o cómo es posible? - Necesito ayuda para solucionar problemas de comportamiento extrañoYo llamaría a esto un error. Me atraparon por esto el año pasado. Sin embargo, hay una solución. El problema es que ColListBox no está evaluando o analizando la referencia de tabla dt_working. Mi recomendación es usar la sintaxis ColListBox (Tabla de datos (dt_working << obtener nombre), ... o para hacer que la tabla deseada sea la tabla de datos actual, cuando se crea colListX.
hmmm mi JSl está envolviendo. Guión adjunto.
open("$Sample_data/Basketball.jmp");<BR />open("$Sample_data/Baseball.jmp");<BR /><BR />Clear Log();<BR /> //dt_current=Data Table("Basketball");<BR /> /*Two tables opened: Baseball and Basketball. The table named "Basketball" is selected as current table*/<BR /> dt_working=Data Table("Baseball");<BR /> <BR /> Show("This is the dt_working table:");<BR /> Show(dt_working<<GET name=""></GET> colNamesList = dt_working << Get Column Names;<BR /> show("Columns names:");<BR /> show(colNamesList);<BR /> show(current data table()); //Baseball<BR /> <BR /> colListX = Col List Box (all, width(250), maxSelected(1));<BR /> show(colListX<<GET items=""></GET><BR /> //_______________________________________________________<BR /> <BR /> Write("\!N" ||Repeat("_",60)||"\!N");<BR /> <BR /> //make Basektball current <BR /> <BR /> current data table(Data Table("Basketball"));<BR /> <BR /> colListX = Col List Box (dt_working, all, width(250), maxSelected(1));<BR /> show(colListX<<GET items=""></GET><BR /> colListX = Col List Box (NameExpr(dt_working), all, width(250), maxSelected(1));<BR /> show(colListX<<GET items=""></GET><BR /> colListX = Col List Box (Data Table("Baseball"), all, width(250), maxSelected(1));<BR /> show(colListX<<GET items=""></GET> <BR /> <BR /> colListX = Col List Box (Data Table(dt_working<<GET name=""></GET> show(colListX<<GET items=""></GET><BR /><BR /> Eval( <BR /> Parse( EvalInsert("colListX = ColListBox( ^dt_working^, all, width(250), maxSelected(1));") )<BR /> );<BR /> wait(0);<BR /> show(colListX<<GET items=""></GET>