Hola a todos
Ahora necesito crear las pestañas que se basan en mi tabla de datos (nombré como dt2). Los nombres de las pestañas se basan en el dt2, que se indica aquí: si dt2 tiene 10 nombres de productos, en mi interfaz también necesito tener 10 pestañas que se basan en los nombres de los productos en dt2.
Uno de mis requisitos es que no puedo codificar la codificación, porque en el futuro, tal vez deba agregar el nombre de los productos en dt2, por lo que las pestañas tendrán automáticamente el mismo número de nombre de producto en dt2.
Entonces, ¿cómo extraer los datos de dt2 y convertirlos en pestañas?
En realidad, no sé cómo escribir el código para la tarea que necesito completar, lo he intentado muchas veces, pero su mantenimiento se queda sin errores.
Gracias.
dt2

dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);Es obvio que todavía estás luchando con las partes muy básicas de JSL. Un par de punteros, basados en el código que está mostrando.
1. No inventes el código. Cuando no funciona, es simplemente confuso. Al adivinar el código funciona, no sabes por qué, y no has aprendido nada.
2. Utilice el registro. En las muchas discusiones que enumeró, no he visto resultados del registro. Estos mensajes brindan gran detalle e información sobre lo que está mal con su JSL.
3. Utilizar Ayuda ==> Índice de secuencias de comandos. Proporciona la sintaxis correcta y ejemplos sobre cómo funcionan los elementos. El índice de scripting es la documentación más completa sobre JSL.
Déjame criticar tu código
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
La descripción de la Plataforma de resumen se encuentra en:
Ayuda == Índice de secuencias de comandos ==> Tabla de datos ==> Resumen

Aquí hay un ejemplo casi idéntico a lo que se necesita.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ), Mean( :Height ) );
Pero lo que parece faltar es cómo crear un puntero a la tabla de resumen que será generado por la Plataforma de resumen. Sin embargo, parece que no entiende cómo hacer referencia a tablas de datos. En el ejemplo, la variable "dt" apunta a la tabla de datos abierta. Por lo tanto, como se puede ver, se utiliza cuando la Plataforma de resumen lo hace referencia. Sin embargo, también puede usar una función de tabla de datos () para señalar el nombre físico de una tabla de datos. Que es algo de lo que creo que estás tratando de hacer, con la Tabla de datos ("Tabla de datos ............."). Cualquiera de los dos funcionará ....... si conoce el nombre de la tabla de datos. Pero como se muestra en el código provisto, asegúrese de especificar una variable para apuntar a la tabla de datos que va a crear desde la Plataforma de resumen, de modo que pueda usarla en su próximo paso (es decir, dt 
Aparece la siguiente sección de código que estaba adivinando sobre la sintaxis.
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);
Lo que intenta hacer es generar una nueva pestaña para cada Valor de FD a partir de la tabla de datos de resumen.
Una búsqueda en el índice de secuencias de comandos muestra que no existe nada con el nombre de nTabs u obtener nombres de fila (). Supongo que estaba pensando que nTabs le daría el número de tablas que desea. Lo cual no se puede, ya que en este punto del programa, no se han producido tablas, y solo porque se ha producido una tabla de resumen, habría tenido la idea de que el número de filas en la tabla de datos es el número de pestañas que desea producto. Sin embargo, puede buscar en el índice de secuencias de comandos y ver qué funciones le dirán la cantidad de filas que hay en la tabla de datos "N Rows ()" y simplemente cambiar el código creado para N Rows () y tendrá su solución.
El siguiente código supone que su tabla de datos original tiene una variable de puntero llamada "dt" que apunta a ella.
dt2 = dt << Summary( Group( :F D ), Freq( "None" ), Weight( "None" ), invisible );
//Create Tabs based on the F D
VariabilityWindow = New Window( "Variability Chart", tb = Tab Box() );
For( i = 1, i <= nrows( dt2 ), i++,
tb << Insert(
dt2:F D[i] || Char( i ),
V List Box( Button Box( "Variability Chart #" || Char( i ) ), )
)
);
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);