Seleccione Donde() no funcionaIntento agregar un gráfico de variabilidad y una fila de datos seleccionada al diario. Pero tengo un problema al agregar la fila seleccionada al diario. ¿Alguien puede aconsejarme?
Además de esto, también recibí otro error de advertencia. ¿Cómo puedo solucionar el error?
No se puede encontrar el elemento "Concat" en el contexto del esquema {"Gráfico de variabilidad para" || valoresMatriz[i]}
for( i=1, i<=NItems(valuesMatrix), i++,
obj_chart = dt_wo_spec << Variability Chart(
Y( valuesMatrix[i] ),
X( :Product, :Lot, :Wafer Number ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for " || valuesMatrix[i]},
"Variability Chart",
FrameBox,
{Row Legend( Product, Color( 1 ), Color Theme( "JMP Default" ), Marker( 1 ) )}
)
)
);
lub << append ( Report (obj_chart ));
lub << append( dt_sum << Select Where( :PCM == valuesMatrix[i] ) ); // this part is not working
);Aquí está mi tabla de datos y mi script.
Exploración y visualización de datosIngeniería de Calidad y ProcesosRe: Seleccionar Donde() no funcionaHola,
Claro, feliz de haber ayudado.
Re: Seleccionar Donde() no funcionaHola Hadley,
¡Tienes razón! Después de comentar la línea, ¡puede funcionar ahora! Gracias por el aporte.
Re: Seleccionar Donde() no funcionaCreo que el problema está en la línea que sigue a esa.Debería leer:
ob_sum[Table Box( 1 )] << Set Scrollable( 0, 0 );
Re: Seleccionar Donde() no funcionaHola Hadley,
Después de modificar el script a continuación, me da un error. no me funciona.
ob_sum << Append( dt_sum << Get As Report );
subíndice no válido (debe ser un número o una lista de números) en el acceso o evaluación de 'dt_sum[Table Box(1)]', dt_sum[/*###*/Table Box( 1)]
Re: Seleccionar Donde() no funcionaHola,
Las líneas 25 a 29 deberían verse así:
dt_sum = Open( "DSA_ALL.jmp" );
dt_sum << Clear Column Selection();
dt_sum << Clear Select;
ob_sum << Append( dt_sum << Get As Report );
ob_sum[Table Box( 1 )] << Set Scrollable( 0, 0 );
Re: Seleccionar Donde() no funcionaAquí está mi script modificado. El script original ya está subido en mi publicación original con todas las tablas de datos relevantes para JSL.
Names Default To Here( 1 );
Clear Symbols();
Clear Log();
Close All( Data Tables, NoSave );
Close All( Journals, NoSave );
//dt_sum << clear select;
//Current Data Table( dt_sum );
//dt_sum = Current Data Table();
nw = New Window( "Reports",
<<JOURNAL>1.5
Zone2:Cpk<1.33 && DSA<1.5
Zone3:Cpk>1.33 && DSA>1.5
Zone4:Cpk>1.33 && DSA<1.5" ) );
tb1 << Set Font Size( 14 ) << Set Font Style( "Bold" ) << Justify Text( "left" );
tb1 << set width(700) << set wrap(700);
lub << Append( Page Break Box() );
//Open limit files to get the parameters into list
dt_limit = Open( "Limit.jmp" );
dt_wo_spec = Open( "JOIN.jmp" );
//Group1
lub << Append( Page Break Box() );
lub << Append( tb2 = Text Box( "Group 1 Parameters : Target process is MF process and test key is the same as MF version" ) );
tb2 << Set Font Size( 14 ) << Set Font Style( "Bold" ) << Justify Text( "Center" );
tb2 << set width(1000) << set wrap(1000);
lub << Append( Page Break Box() );
Current Data Table(dt_limit);
dt_limit << Select Where( :DSA Group == 1 );
//dt_limit << Select Where( as Column("DSA Group") == 1 );
Group1List = :new_name[dt_limit << get selected rows];
Show( Group1List);
for( i=1, i<=NItems(Group1List), i++,
obj_chart_g1 = dt_wo_spec << Variability Chart(
Y( Group1List[i] ),
X( :Product, :Lot, :Wafer Number ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{},
"Variability Chart for " || Group1List[i],
OutlineBox,
{Set Title( "Group 1 Variability Chart for " || Group1List[i])}
),
Dispatch(
{"Variability Chart for " || Group1List[i]},
"Variability Chart",
FrameBox,
//{Row Legend( Product, Color( 1 ), Color Theme( "JMP Default" ), Marker( 1 ), Marker Theme( "Standard" ), Continuous Scale( 0 ), Reverse Scale( 0 ), Excluded Rows( 0 ))}
{Row Legend( Product, Color( 1 ), Color Theme( "JMP Default" ), Marker( 1 ), Marker Theme( "Standard" ))}
)
)
);
lub << append ( Report (obj_chart_g1 ));
//lub << append( dt_sum << Select Where( :PCM == Group1List[i] ) ); // this part is not working
lub << append( dt_sum << Select Where( as column("PCM") == Group1List[i] ) <<GET as="" report=""></GET></JOURNAL>
Re: Seleccionar Donde() no funcionaHola,
Creo que dt_sum se está redefiniendo como DisplayBox.¿Puedes publicar tu código modificado completo?Veré si puedo detectar dónde está sucediendo esto.
Re: Seleccionar Donde() no funcionaHola Hadley,
Gracias por responder. Intenté modificar el código en consecuencia. Pero todavía me da error. 
El cuadro de visualización 'BorderBox' no reconoce el mensaje 'Seleccionar dónde'; quizás te refieres a uno de estos: <<<<<<<<<<<<< Obtener imagen <<<<<<<<<<<<<<<<<Re: Seleccionar Donde() no funcionaHola,
Creo que el problema con la línea es que, anteriormente en el código, reasignaste dt_sum para que sea un DisplayBox.Además, creo que debemos definir la fila como un informe si queremos adjuntarla a un diario.
Cambié el bucle for de la siguiente manera:
for( i=1, i<=NItems(valuesMatrix), i++,
obj_chart = dt_wo_spec << Variability Chart(
Y( valuesMatrix[i] ),
X( :Product, :Lot, :Wafer Number ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for " || valuesMatrix[i]},
"Variability Chart",
FrameBox,
{Row Legend( Product, Color( 1 ), Color Theme( "JMP Default" ), Marker( 1 ) )}
)
)
);
lub << append ( Report (obj_chart ));
lub << append( dt_sum << Select Where( :PCM == valuesMatrix[i])<<GET as="" report=""></GET>
También cambié la parte donde defines dt_sum de la siguiente manera:
dt_sum = Open( "DSA_ALL.jmp" );
dt_sum << Clear Column Selection();
dt_sum << Clear Select;
ob_sum << Append( dt_sum << Get As Report );
ob_sum[Table Box( 1 )] << Set Scrollable( 0, 0 );
Inténtelo y avíseme si funciona.