JSL - Cómo obtener el tipo de análisis¿Hay una manera fácil de decir qué tipo de análisis estoy viendo desde una perspectiva JSL? Quiero saber si el cuadro de contorno es un Oneway, Bivariate, ect. Pensé que había una manera fácil de hacer esto, como el análisis << Nombre de la clase (pero eso no funcionó, solo devuelve OutlineBox).
Me gustaría ejecutar un código diferente según el tipo de análisis en cualquier ventana dada. Esto es asumiendo que no creo explícitamente el análisis y sé qué es. La única forma en que puedo pensar es con el siguiente código, pero me parece increíblemente vidrioso. ¿Es esta la única manera?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
for(i=1, i<=nitems(analysis), i++,
if(contains(Log Capture(print(analysis[i])), "Oneway"),
Print("It's a Oneway"),
Print("It's not Oneway")
);
);
@Craige_Hales , @Sra , @Jeff_Perkinson
Re: JSL - Cómo obtener el tipo de análisisGracias @pmroz Sí, a menudo utilizo la función char () similar a ti, de nuevo, no estoy seguro de por qué no lo pensé en el momento.
La función XPATH aparece super útil. La sintaxis no parece demasiado complicada y hay tutoriales en W3schools, por lo que es una ventaja. https://www.w3schools.com/xml/xpath_intro.asp
Usando XPATH solo puedo seleccionar los informes del tipo que quiero. Super util Voy a tener que profundizar un poco en esto.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
OnewayReports = Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Oneway Report')]/.");
oneway = OnewayReports[1];
oneway << Set Title("Test");Re: JSL - Cómo obtener el tipo de análisisLo siento, fui demasiado rápido para responder y realmente no entendí la pregunta.
En el bucle de tu ejemplo. Char (análisis [i]) daría el mismo resultado que
Captura de registro (Imprimir (análisis [i])).
También vale la pena explorar xpath () para escenarios más complejos. Por ejemplo, este ejemplo de código devuelve una lista de cadenas del informe actual.
Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Report')]/@helpKey");Re: JSL - Cómo obtener el tipo de análisisMe alegro de haber ayudado. He estado usando el carbonizarse() función para convertir cosas en texto para escribir en Oracle, para guardar un estado de cuadro de diálogo. En particular lo he usado para listas. Tenga en cuenta que hacer las cosas a la inversa requiere un análisis.
a = {"xyz", "Hello", "World"};
b = char(a);
"{\!"xyz\!", \!"Hello\!", \!"World\!"}"
c = parse(b);
{"xyz", "Hello", "World"}
Re: JSL - Cómo obtener el tipo de análisis¡Gracias! La solución obvia a veces puede escapar de ti, no estoy seguro de dónde estaba mi mente. Todavía deseo que el objeto de cuadro contenga un nombre o un parámetro de tipo.
Re: JSL - Cómo obtener el tipo de análisis¿Qué hay de convertir la lista de análisis a char y luego analizar el resultado?
ca = char(analysis);
analysis_list = words(ca, "{}[], ");
{"Bivariate", "Oneway"}Re: JSL - Cómo obtener el tipo de análisisEsto parece ser simplemente devolver el objeto de análisis:
scriptObjs = analysis << get scriptable object;
print(scriptObjs);
print(analysis);
print(scriptObjs == analysis); //returns true
Todavía me queda mi método log capture () para raspar los scriptsObjs.
Re: JSL - Cómo obtener el tipo de análisis
analysis << get scriptable object;
Devuelve una lista de los análisis.