<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola JMPsters,
Estoy teniendo un problema con el código de abajo. Tengo una lista de temas en un cuadro de lista, y quiero cambiar lo que se muestra en las pestañas en función de lo que el usuario seleccione en el cuadro de lista. Intenta ejecutar el código y verás cómo funciona.
La pestaña del gráfico se actualiza muy bien, sin importar en qué tema haga clic.
El problema está en la primera pestaña, que contiene un cuadro de tabla. La primera vez que haga clic en un tema, aparecerá el cuadro de tabla.

Sin embargo, si hace clic en el siguiente tema y luego vuelve al tema original, obtendrá una pestaña en blanco.

Gracias de antemano si alguien puede resolverlo.
topic_dt = Nueva mesa ( "Temas de ejemplo" , Añadir filas ( 5 ) ,
Nueva Columna ( "Período" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( El 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nueva Columna ( "AAAAA" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( El 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nueva Columna ( "BBBBB" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( El 5 , 4 , 3 , 2 , 1 ] ) ) ,
Nueva Columna ( "CCCCC" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( El 2 , 3 , 2 , 3 , 2 ] ) ) ,
Nueva Columna ( "DDDDD" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( El 3 , 4 , 2 , 1 , 5 ] ) )
) ;
lista de temas = { "AAAAA" , "BBBBB" , "CCCCC" , "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
para ( yo = 1 , yo <= Nitems ( lista de temas ) , yo ++,
one_topic = lista de temas El yo ] ;
plist = topic_dt : Período << obtener valores ;
lista = columna ( topic_dt , one_topic ) << obtener valores ;
tbl_expr El yo ] =
vlistbox (
caja de texto ( "Tabla para el tema" || one_topic ) ,
cuadro de mesa (
caja col número ( "Período" , plist ) ,
caja col número ( one_topic , lista ) ,
) ,
) ;
gb_expr = evalinsert (
"\ [graph_expr [^ i ^] = expr (hlistbox (
gb = Graph Builder (
Mostrar panel de control (0),
Variables (X (: Periodo), Y (: Nombre ("^ one_topic ^"))),
Elementos(
Puntos (X, Y, Leyenda (1), Jitter (1)),
Más suave (X, Y, Leyenda (2))
)
)
))] \ " ) ;
evaluar ( analizar gramaticalmente ( gb_expr )) ;
) ; // fin del ciclo
topic_list_expr = expr (
topic_mtx = topic_lb << obtener índices seleccionados ;
itópico = topic_mtx El 1 ] ;
trend_tab << reemplazar ( 1 , "Tabulación" ,
vlistbox (
tbl_expr El itópico ] ,
)
) ;
trend_tab << reemplazar ( 2 , "Grafico" ,
evaluar ( graph_expr El itópico ]) ,
) ;
) ;
pvtrend_win = nueva ventana ( "Ejemplo" ,
hlistbox (
caja de panel ( "Temas" ,
topic_lb = cuadro de lista ( lista de temas , anchura ( 250 ) , nlines ( 5 ) , max seleccionado ( 1 ) ,
topic_list_expr ) ,
) ,
trend_tab = caja de pestañas (
"Tabulación" ,
vlistbox (
tbl_expr El 1 ] ,
) ,
"Grafico" ,
evaluar ( graph_expr El 1 ]) ,
) ,
)
) ;
topic_lb << conjunto seleccionado ( 1 ) ;
El problema parece ser que los cuadros de visualización en tbl_expr no se están evaluando completamente. Creo que este código funciona según lo previsto:
topic_dt = Tabla nueva ( "Temas de ejemplo" ,
Añadir filas ( 5 ) ,
Nueva Columna ( "Período" , Numérico , Continuo , Formato ( "Mejor" , 12 ) , Establecer valores ( El 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nueva Columna ( "AAAAA" , Numérico , Continuo , Formato ( "Mejor" , 12 ) , Establecer valores ( El 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nueva Columna ( "BBBBB" , Numérico , Continuo , Formato ( "Mejor" , 12 ) , Establecer valores ( El 5 , 4 , 3 , 2 , 1 ] ) ) ,
Nueva Columna ( "CCCCC" , Numérico , Continuo , Formato ( "Mejor" , 12 ) , Establecer valores ( El 2 , 3 , 2 , 3 , 2 ] ) ) ,
Nueva Columna ( "DDDDD" , Numérico , Continuo , Formato ( "Mejor" , 12 ) , Establecer valores ( El 3 , 4 , 2 , 1 , 5 ] ) )
) ;
lista de temas = { "AAAAA" , "BBBBB" , "CCCCC" , "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
por ( yo = 1 , yo <= Artículos ( lista de temas ) , yo ++,
one_topic = lista de temas El yo ] ;
plist = topic_dt : Período << obtener valores ;
lista = Columna ( topic_dt , one_topic ) << obtener valores ;
tbl_expr El yo ] = EvalExpr (
VListBox (
Caja de texto ( "Tabla para el tema" || Expr ( one_topic ) ) ,
TableBox (
NumberColBox ( "Período" , Expr ( plist ) ) ,
NumberColBox ( Expr ( one_topic ) , Expr ( lista ) ) ,
)
)
) ;
graph_expr El yo ] = EvalExpr (
HListBox (
gb = Generador de gráficos (
Mostrar panel de control ( 0 ) ,
Variables ( X ( : Período ) , Y ( As Columna ( Expr ( one_topic ) ) ) ) ,
Elementos ( Puntos ( X , Y , Leyenda ( 1 ) , Estar nervioso ( 1 ) ) , Mas suave ( X , Y , Leyenda ( 2 ) ) )
)
)
) ;
) ; // fin del ciclo
topic_list_expr = Expr (
topic_mtx = topic_lb << obtener índices seleccionados ;
itópico = topic_mtx El 1 ] ;
trend_tab << reemplazar ( 1 , "Tabulación" , Evaluar ( tbl_expr El itópico ]) ) ;
trend_tab << reemplazar ( 2 , "Grafico" , Evaluar ( graph_expr El itópico ] ) ) ;
) ;
pvtrend_win = Nueva ventana ( "Ejemplo" ,
HListBox (
PanelBox ( "Temas" ,
topic_lb = Cuadro de lista (
lista de temas ,
anchura ( 250 ) ,
nlines ( 5 ) ,
max seleccionado ( 1 ) ,
Evaluar ( topic_list_expr )
) ,
) ,
trend_tab = TabBox ( "Tabulación" , VListBox ( tbl_expr El 1 ] , ) , "Grafico" , Evaluar ( graph_expr El 1 ] ) ) ,
)
) ;
topic_lb << conjunto seleccionado ( 1 ) ;