Extracción de datos de cuadros de esquema a través de un bucle en el diarioHola a todos,
Estoy intentando crear un script que imprima datos para mí. Tengo un diario, donde quiero imprimir datos para cada uno de los cuadros de esquema (consulte journal data.jrn).
Soy consciente de que me falta bastante para llegar a la tabla de datos que deseo, pero me he topado con el primer obstáculo y es que solo imprime para un cuadro de contorno y no para todos. Vea mi script a continuación:
// JMP version 16<BR />sd = currentdatatable();<BR />rpt = Current Journal();
// Get the number of outline boxes
numOutlineBoxes = nitems(rpt);
int = rep = sumfit = sumfitLL = sumfitUL = {};
sum = 0;
// Loop through each outline box
for (i = 1, i <= numOutlineBoxes, i++,
outlineBox = rpt[i];
sumfit = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 1 )] << Get as Matrix;
sumfitLL = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 3 )] << Get as Matrix;
sumfitUL = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 4 )] << Get as Matrix;
sumfit_rep = Round( sumfit[2] , 3 );
sumfit_int = Round( sumfit[3] , 3 );
lowerCL_rep = Round( sumfitLL[2] , 3 );
upperCL_rep = Round( sumfitUL[2] , 3 );
lowerCL_int = Round( sumfitLL[3] , 3 );
upperCL_int = Round( sumfitUL[3] , 3 );
Insert Into( rep, Char( sumfit_rep ) || " [" || Char( lowerCL_rep ) || " ; " || Char( upperCL_rep ) || "]" );
Insert Into( int, Char ( sumfit_int ) || " [" || Char( lowerCL_int ) || " ; " || Char( upperCL_int ) || "]" );
// Get By Group column
//whereCol = Word( 2, ((rep << parent)[Text Box( 1 )]) << get text, ":=)" );
term = outlineBox[Outline Box( numOutlineBoxes )][String Col Box( 1 )] << Get();
sum = sum + 1
);
// Create the table
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[1] ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Paramenter", testvalue ),
//String Col Box( whereCol, repeat(ByGroups, sum) ),
String Col Box( "Repeatability, " || term[1], rep ),
String Col Box( "Intermediate precision, " || term[2], int ),
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );La impresión se ve así:

En la etapa final, me gustaría que la pinta se viera así:

En resumen, tengo los siguientes pasos que deben solucionarse:
1. Haga que el bucle funcione de modo que se tengan en cuenta todos los cuadros de esquema
2. Haz que incluya parámetros y lotes.
3. Conseguir que se divida la repetibilidad de impresión y se intercambie con el laboratorio AA/BB
Espero puedas ayudarme con esto.
Atentamente,
Julia
Automatización y scriptingAnálisis y modelado de datos básicosAcceso a datosRe: Extracción de datos de cuadros de esquema a través de un bucle en el diario¿Existe algún motivo específico para utilizar el diario en lugar de acceder al informe antes de que se convierta en diario? ¿Ha intentado crear el informe a partir de las tablas que puede obtener utilizando Crear tabla de datos combinados?


Re: Extracción de datos de cuadros de esquema a través de un bucle en el diarioY luego, si tienes suficiente paciencia (yo no la tengo con Tabulate...) es posible que puedas crear un informe bastante bueno usando Tabulate.



Esto requiere JMP17 o JMP18 (embalaje)

Re: Extracción de datos de cuadros de esquema a través de un bucle en el diarioDado que su diario está referenciado como
rpt = Current Journal();
y estas usando
// Get the number of outline boxes
numOutlineBoxes = nitems(rpt);
para obtener la cantidad de OutlineBoxes, siempre devolverá 1. Debería usar Xpath() para devolver una lista de todos los OutlineBoxes.
numOutlineBoxes = nitems(rpt << xpath( "//OutlineBox" )) ;
Sin embargo, encontrará 60 cuadros de contorno. Para limitarlo, puede obtener una lista de los encabezados principales con
majorrptList= rpt << xpath( "//OutlineBox[contains(text(),'Variability Gauge')]" )
Esto le proporcionará indicadores de cada una de las salidas de sus grupos.
Re: Extracción de datos de cuadros de esquema a través de un bucle en el diarioHola Jthi,
Gracias por tu respuesta. El motivo por el que se utiliza el diario en lugar del informe es porque no puedo guardar el informe cuando todavía contiene el cuadro de esquema de desviación estándar. Por lo tanto, tuve que guardarlo en un diario.
Intentaré analizar esta opción para convertirla en una tabla combinada.
Atentamente,
Julia
Re: Extracción de datos de cuadros de esquema a través de un bucle en el diarioHola Jim,
Gracias por tu respuesta. Probé esto, donde agregué numOutlineBoxes modificado a:
majorrptList = rpt << xpath( "//OutlineBox[contains(text(),'Standard Deviations')]" );
The script saves information to sumfit_rep and sumfit_int, but it does not save to lowerCL_rep , upperCL_rep , lowerCL_int or upperCL_int during the part below:
sumfit = outlineBox[Outline Box( majorrptList )][Number Col Box( 1 )] << Get as Matrix;
sumfitLL = outlineBox[Outline Box( majorrptList )][Number Col Box( 3 )] << Get as Matrix;
sumfitUL = outlineBox[Outline Box( majorrptList )][Number Col Box( 4 )] << Get as Matrix;
sumfit_rep = Round( sumfit[2] , 3 );
sumfit_int = Round( sumfit[3] , 3 );
lowerCL_rep = Round( sumfitLL[2] , 3 );
upperCL_rep = Round( sumfitUL[2] , 3 );
lowerCL_int = Round( sumfitLL[3] , 3 );
upperCL_int = Round( sumfitUL[3] , 3 );
Insert Into( rep, Char( sumfit_rep ) || " [" || Char( lowerCL_rep ) || " ; " || Char( upperCL_rep ) || "]" );
Insert Into( int, Char ( sumfit_int ) || " [" || Char( lowerCL_int ) || " ; " || Char( upperCL_int ) || "]" );
Como no estoy seguro de cómo proceder desde aquí para obtener la tabla que quiero con información sobre la muestra/lote y el parámetro, he intentado crear una tabla combinada y luego extraerla de allí, pero hace algo loco y estoy muy confundido. He adjuntado la tabla combinada (tabla de datos combinados para el script de prueba int rep) y el script (script de prueba int rep con tabla combinada). Espero que le eches un vistazo y veas si puedes encontrar la razón del caos.:)