Editar el título de distribución haciendo coincidir WaferID con By StatementHola,
Me gustaría editar el título de mis gráficos de distribución para que sea un poco más descriptivo y más fácil de comparar con otro gráfico que creé. Me gustaría que el título de cada gráfico fuera "Oblea = XYZ..., BatchID = ABC..."

El código que creé a continuación me permite editar el título; sin embargo, como era de esperar, enumera todos los lotes que se enumeraron en la matriz asociativa que hice anteriormente. (Esta matriz simplemente enumera todos los ID de lote en una columna de una tabla que tengo). Lo que me gustaría hacer es hacer coincidir la oblea con el ID de lote y mostrarlo en el título de cada gráfico con una declaración Por. ¿Hay alguna forma de hacer esto? ¡Gracias!
//DISTRIBUTION PLOT
batchids = Associative Array( BatchIDs:BatchID );
RawData << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :col1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :FailDie ), Where( :FailDie == 0 ) ) ),
By( :Wafer ),
SendToReport(
Dispatch(
{},
"Distributions Wafer=XYZ",
OutlineBox,
{Set Title(
"Distributions Wafer=XYZ, Batch ID = " || Char( batchids << Get Keys )
)}
)
)
);La personalización en masaRe: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónaparentemente, su versión de JMP está devolviendo un escalador cuando solo se devuelve un valor.Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónEstoy ejecutando JMP 14.
Por extraño que parezca, el script se ejecuta correctamente cuando elimino el [1] de esta línea de código. Dejando todo lo demás igual.
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
Cambiado para ser:
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))];
¡De nuevo, gracias por tu ayuda!
Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónMi error en mi script de muestra.Vea a continuación para usar la tabla de datos de muestra que estaba usando.
¿Qué versión de JMP estás ejecutando?
En mi programa de ejemplo que proporcioné, cambie la línea
dt = current data table();
a
dt = open("$sample_data/semiconductor capability.jmp");
y luego ejecute el script.Debería funcionar sin errores.
Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónEn resumen no. No puedo hacer que funcione con la tabla que necesito. Por lo que puedo decir, tiene sentido y debería funcionar. El error que envié en mi último mensaje (lo siento, no vi que respondieras) es lo que sigue apareciendo. Lo único que no le he dado mucho sentido es el [1] al final de esta línea:
theLot = AllTheBatchIDs:BatchID[(AllTheBatchIDs << get rows where( :Wafer == theWafer ))[1]];
¿Qué hace? ¿Alguna sugerencia?
Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónsubíndice no válido (debe ser un número o una lista de números){1} en el acceso o la evaluación de....
mensaje de error para "theLot"Re: Edición del título de distribución haciendo coincidir WaferID con Por declaración¿Te funciona el ejemplo que proporcioné en mi última respuesta? Ese debe ser el punto de partida.Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónHola txnelson! Gracias nuevamente por una respuesta rápida y una solución increíble.
Todavía tengo problemas con mi tabla de consulta. Parece que "theWafer" se está encontrando correctamente, sin embargo, cuando lo ejecuto en el depurador, "theLot" no se llena. ¿Has tenido algún problema con esto? Adjunto mi código exacto. Mis encabezados se ven como "Distribuciones Wafer = ABC123, BatchID =".
BatchIDs = tabla de búsqueda para referencia
| ID del lote | Oblea |
| QQQ1234 | ABC-123 |
| AAA1234 | QWE-456 |
For( i = 1, i <= N Items( VthNew ), i++,
theWafer = char(word(-1,Report( VthNew[i] )[Outline Box( 1 )] << get title,"="));
theLot = BatchIDs:BatchID[(BatchIDs << get rows where(:Wafer == theWafer))[1]];
Report( VthNew[i] )[Outline Box( 1 )] <<
Set title(
Report( VthNew[i] )[Outline Box( 1 )] << get title || " BatchID =" || Char(theLot)
)
);
¡Gracias por la ayuda!
Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónEs una cuestión simple eliminar el valor de la oblea del cuadro de esquema () para la distribución, y luego hacer una búsqueda en la tabla de datos de búsqueda y obtener el BatchID, o en el caso de mi ejemplo, para obtener el Lot_id, y luego agregarlo al título del cuadro de esquema().

Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
dtlookup =New Table( "Lookup",
Add Rows( 24 ),
New Column(
["en" => "wafer", "ja" => "ウエハー", "x-id" => "S_wafer_Col", "zh-CN" => "晶片"],
Numeric( 1 ),
"Nominal",
Set Values(
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24]
),
Lock( 1 )
),
New Column( "lot_id",
Character,
"Nominal",
Set Values(
{"lot01", "lot02", "lot03", "lot04", "lot05", "lot06", "lot07", "lot08",
"lot09", "lot10", "lot11", "lot12", "lot13", "lot01", "lot02", "lot03",
"lot04", "lot05", "lot06", "lot07", "lot08", "lot09", "lot10", "lot11"}
)
)
);
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
theWafer = num(word(-1,Report( dis[i] )[Outline Box( 1 )] << get title,"="));
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lot="
|| Char(thelot)
)
);Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónHola txnelson,
Gracias de nuevo por una respuesta rápida. Esto se está acercando a lo que quiero, excepto que para cada oblea, solo se debe mostrar 1 ID de lote, no todos. Quizás mirar una tabla de ejemplo tenga más sentido.
Quiero que los títulos de mis gráficos de distribución sean "Oblea de distribución = A, ID de lote = X" y "Oblea de distribución = B, ID de lote = X", etc. hacer coincidir la oblea con el BatchID correcto. (o cómo combinarlos en absoluto para el caso)
Nota: Tengo una tabla que hace coincidir cada Wafer con su BatchID ya disponible.
| ID del lote | Oblea |
| X | A |
| X | B |
| X | C |
| Y | D |
Y | mi |
| Y | F |
| Z | GRAMO |
| Z | H |
| Z | I |
Otra pregunta secundaria que tuve fue: para el código que acaba de enviar, parece que actualiza todos los títulos de mis gráficos excepto el primero en la instrucción Por. ¿Conoces las razones comunes por las que esto podría ocurrir? He visto esto en más de una ocasión.
Re: Edición del título de distribución haciendo coincidir WaferID con Por declaraciónTomaría el reinicio del título fuera del código inicial para generar las distribuciones y cambiaría los títulos después de generar el informe de distribución.

Aquí hay un ejemplo basado en su secuencia de comandos, pero modificado a los datos de muestra
Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lots="
|| Char( batchids << get keys )
)
);
Nota: Cerré manualmente las secciones de capacidad de proceso de la salida para obtener una mejor imagen