<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao JMPsters,
Sto avendo un problema con il codice qui sotto. Ho una lista di argomenti in una lista e voglio cambiare ciò che è mostrato nelle schede a seconda di ciò che l'utente seleziona dalla lista. Prova a eseguire il codice e vedrai come funziona.
La scheda del grafico viene aggiornata correttamente, indipendentemente dall'argomento su cui fai clic.
Il problema è con la prima scheda, che contiene una tabella. La prima volta che fai clic su un argomento viene visualizzata la tabella.

Tuttavia, se fai clic sull'argomento successivo e poi sull'argomento originale, ottieni una scheda vuota.

Grazie in anticipo se qualcuno può capirlo.
topic_dt = Nuova tabella ( "Argomenti di esempio" , Aggiungi righe ( 5 ) ,
Nuova colonna ( "Periodo" , Numerico , Continuo , Formato ( "Migliore" , 12 ) ,
Imposta valori ( [ 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nuova colonna ( "AAAAA" , Numerico , Continuo , Formato ( "Migliore" , 12 ) ,
Imposta valori ( [ 1 , 2 , 3 , 4 , 5 ] ) ) ,
Nuova colonna ( "BBBBB" , Numerico , Continuo , Formato ( "Migliore" , 12 ) ,
Imposta valori ( [ 5 , 4 , 3 , 2 , 1 ] ) ) ,
Nuova colonna ( "CCCCC" , Numerico , Continuo , Formato ( "Migliore" , 12 ) ,
Imposta valori ( [ 2 , 3 , 2 , 3 , 2 ] ) ) ,
Nuova colonna ( "DDDDD" , Numerico , Continuo , Formato ( "Migliore" , 12 ) ,
Imposta valori ( [ 3 , 4 , 2 , 1 , 5 ] ) )
) ;
topic_list = { "AAAAA" , "BBBBB" , "CCCCC" , "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
per ( io = 1 , io <= nitems ( topic_list ) , io ++,
one_topic = topic_list [ io ] ;
plist = topic_dt : Periodo << ottenere valori ;
tlist = colonna ( topic_dt , one_topic ) << ottenere valori ;
tbl_expr [ io ] =
vlistbox (
casella di testo ( "Tabella per argomento" || one_topic ) ,
tablebox (
numero col box ( "Periodo" , plist ) ,
numero col box ( one_topic , tlist ) ,
) ,
) ;
gb_expr = evalinsert (
"\ [graph_expr [^ i ^] = expr (hlistbox (
gb = Graph Builder (
Mostra Pannello di controllo (0),
Variabili (X (: Periodo), Y (: Nome ("^ one_topic ^"))),
Elementi(
Punti (X, Y, Legenda (1), Jitter (1)),
Smoother (X, Y, Legend (2))
)
)
))] \" ) ;
eval ( analizzare ( gb_expr )) ;
) ; // end loop
topic_list_expr = espr (
topic_mtx = topic_lb << ottenere indici selezionati ;
itopic = topic_mtx [ 1 ] ;
trend_tab << sostituire ( 1 , "Tabulazione" ,
vlistbox (
tbl_expr [ itopic ] ,
)
) ;
trend_tab << sostituire ( 2 , "Grafico" ,
eval ( graph_expr [ itopic ]) ,
) ;
) ;
pvtrend_win = nuova finestra ( "Esempio" ,
hlistbox (
scatola del pannello ( "Temi" ,
topic_lb = listbox ( topic_list , larghezza ( 250 ) , nlines ( 5 ) , max selezionato ( 1 ) ,
topic_list_expr ) ,
) ,
trend_tab = casella di tabulazione (
"Tabulazione" ,
vlistbox (
tbl_expr [ 1 ] ,
) ,
"Grafico" ,
eval ( graph_expr [ 1 ]) ,
) ,
)
) ;
topic_lb << imposta selezionato ( 1 ) ;
Il problema sembra essere con le finestre di visualizzazione in tbl_expr non completamente valutato. Penso che questo codice funzioni come previsto:
topic_dt = nuovatabella ( "Argomenti di esempio" ,
Aggiungi righe ( 5 ) ,
newColumn ( "Periodo" , Numerico , Continuo , Formato ( "Migliore" , 12 ) , Imposta valori ( [ 1 , 2 , 3 , 4 , 5 ] ) ) ,
newColumn ( "AAAAA" , Numerico , Continuo , Formato ( "Migliore" , 12 ) , Imposta valori ( [ 1 , 2 , 3 , 4 , 5 ] ) ) ,
newColumn ( "BBBBB" , Numerico , Continuo , Formato ( "Migliore" , 12 ) , Imposta valori ( [ 5 , 4 , 3 , 2 , 1 ] ) ) ,
newColumn ( "CCCCC" , Numerico , Continuo , Formato ( "Migliore" , 12 ) , Imposta valori ( [ 2 , 3 , 2 , 3 , 2 ] ) ) ,
newColumn ( "DDDDD" , Numerico , Continuo , Formato ( "Migliore" , 12 ) , Imposta valori ( [ 3 , 4 , 2 , 1 , 5 ] ) )
) ;
topic_list = { "AAAAA" , "BBBBB" , "CCCCC" , "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
Per ( io = 1 , io <= NItems ( topic_list ) , io ++,
one_topic = topic_list [ io ] ;
plist = topic_dt : Periodo << ottenere valori ;
tlist = Colonna ( topic_dt , one_topic ) << ottenere valori ;
tbl_expr [ io ] = EvalExpr (
VListBox (
Casella di testo ( "Tabella per argomento" || expr ( one_topic ) ) ,
TableBox (
NumberColBox ( "Periodo" , expr ( plist ) ) ,
NumberColBox ( expr ( one_topic ) , expr ( tlist ) ) ,
)
)
) ;
graph_expr [ io ] = EvalExpr (
HListBox (
gb = Costruttore di grafici (
Mostra il pannello di controllo ( 0 ) ,
variabili ( X ( : Periodo ) , Y ( AsColumn ( expr ( one_topic ) ) ) ) ,
Elementi ( Punti ( X , Y , Leggenda ( 1 ) , jitter ( 1 ) ) , Smoother ( X , Y , Leggenda ( 2 ) ) )
)
)
) ;
) ; // end loop
topic_list_expr = expr (
topic_mtx = topic_lb << ottenere indici selezionati ;
itopic = topic_mtx [ 1 ] ;
trend_tab << sostituire ( 1 , "Tabulazione" , Eval ( tbl_expr [ itopic ]) ) ;
trend_tab << sostituire ( 2 , "Grafico" , Eval ( graph_expr [ itopic ] ) ) ;
) ;
pvtrend_win = Nuova finestra ( "Esempio" ,
HListBox (
PanelBox ( "Temi" ,
topic_lb = ListBox (
topic_list ,
larghezza ( 250 ) ,
nlines ( 5 ) ,
max selezionato ( 1 ) ,
Eval ( topic_list_expr )
) ,
) ,
trend_tab = TabBox ( "Tabulazione" , VListBox ( tbl_expr [ 1 ] , ) , "Grafico" , Eval ( graph_expr [ 1 ] ) ) ,
)
) ;
topic_lb << imposta selezionato ( 1 ) ;