Comparación en la declaración Select Where ()Hola a todos,
He buscado extensamente en este sitio web y creo que es una solución fácil, pero por alguna razón no puedo hacerlo funcionar y he estado atascado durante 2 días.
En el siguiente script, le pregunto al usuario qué parte de la columna específica le gustaría seleccionar. Por ejemplo, donde la columna tiene el valor 8 (la columna puede tener valores del 1 al 8). Que me gustaría seleccionar las filas con este valor en esta columna y crear un nuevo dt donde creo gráficos específicos solo con este subconjunto de la tabla de datos.
Crea la tabla de subconjunto con el nombre con el número que he completado en el cuadro de texto. Me muestra qué número he completado, es decir, XNo = "8"; Pero Seleccionar dónde (Columna == XNO) no funciona. No me da error, simplemente no selecciona las filas específicas ni hace la gráfica. Crea una nueva tabla de datos con el mismo nombre que la tabla de datos a la que me refiero.
Si completo Seleccionar dónde (columna == "8") o Seleccionar dónde (columna == 8), funciona. Solo quiero que ese 8 sea variable y que el operador pueda completarlo él mismo.
dt = tabla de datos actual();
col = columna(dt,"MILL_X");
col_name_list = dt << obtener nombres de columnas (cadena);
rdata = Nueva ventana( "¿Qué parte deseas verificar?",
<
<
X = Cuadro de edición de texto ("¿Qué parte?"),
cuadro de texto ("Haga clic en Aceptar para guardar"),
Cuadro de botón("Aceptar",
XNo = X << Obtener texto),
Cuadro de botones ("Cancelar");
);
Mostrar (XNo); //Me muestra la cadena que se me dio, es decir, si completo 8 me muestra --> XNo = "8";
//Seleccionaron las filas deseadas según los valores de la columna
dt << Selección de fila (
Seleccione dónde ( :MILL_X == XNo ), // <--- Esto no funciona, selecciona el dt completo en lugar del valor seleccionado de la columna. Si completo :MILL_X == 8 funciona. Pero sólo para el número 8.
Diálogo (Editar (Igual (Columna de origen (col))), Mantener el diálogo abierto (0))
);
Subconjunto( (Filas seleccionadas), Nombre de la tabla de salida( "X " || Char(ColletNo) || " inspección" ) );
// Crea el gráfico deseado usando las filas seleccionadas
Distribución(
Distribución continua (
Columna( :"Y (μm)"n ),
Capacidad de proceso (LSL (-15), objetivo (0), USL (15)
)
);
// Opcionalmente, puedes personalizar más el gráfico aquí
// Por ejemplo, agregar elementos adicionales u opciones de formato
dt << borrar selección;
dt << borrar selección de columna;
Automatización y secuencias de comandosAcceso a los datosIngeniería de Calidad y Procesos Re: Comparación en sentencia Select Where ()Intente convertir XNo a número (Num(XNo) O use el cuadro de edición de números. Es posible que también tenga que modificar un poco la referencia de su columna (agregue [] a la comparación). A continuación se muestra un ejemplo usando la tabla Big Class, use valores entre 12-17 y prueba
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Column(dt, "age");
col_name_list = dt << get column names(string);
rdata = New Window( "Which part do you want to check?",
<<MODAL> XNo = "8"; //Seleccionaron las filas deseadas según los valores de la columna dt << Select Where(col[] == Num(XNo)); dt_subset = dt << Subconjunto (filas seleccionadas); dt << borrar selección;</MODAL>
Si se permiten valores específicos, también puede modificar su selector para que sea algo que solo permita al usuario elegir valores específicos, PERO comenzar haciendo que esta versión funcione y luego considerar esas opciones.
Re: Comparación en sentencia Select Where ()Esta no es la solución específicamente, pero acabo de descubrir que la columna debe ser ordinal (o al menos no ser continua). Ahora sólo tengo que crearlo de tal manera que todavía obtenga todas mis otras columnas en lugar de solo la columna de edad. Actualizaré cuando tenga la solución correcta, pero gracias por esto. Sabía que era algo tonto que no estaba funcionando.
Re: Comparación en sentencia Select Where ()No tengo idea de por qué no funcionó antes, porque probé la declaración Num() antes y también la col[]. Quizás no los hice al mismo tiempo, no lo sé, probé muchas iteraciones pero ahora está funcionando. Incluso no es necesario cambiar la columna a continua. Lo único que no he probado antes y que está en su secuencia de comandos es "Nombres predeterminados aquí (1);" línea.