<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo JMPsters,
Ich habe ein Problem mit dem folgenden Code. Ich habe eine Liste mit Themen in einem Listenfeld. Ich möchte ändern, was in den Registerkarten angezeigt wird, je nachdem, was der Benutzer aus dem Listenfeld auswählt. Führen Sie den Code aus und Sie werden sehen, wie er funktioniert.
Die Diagramm-Registerkarte wird gut aktualisiert, unabhängig davon, auf welches Thema Sie klicken.
Das Problem liegt bei der ersten Registerkarte, die eine Tablebox enthält. Wenn Sie zum ersten Mal auf ein Thema klicken, wird die Tablebox angezeigt.

Wenn Sie jedoch auf das nächste Thema und dann wieder auf das ursprüngliche Thema klicken, wird eine leere Registerkarte angezeigt.

Vielen Dank im Voraus, wenn jemand es herausfinden kann.
topic_dt = Neue Tabelle ( Beispielthemen . Zeilen hinzufügen ( 5 ) .
Neue Spalte ( "Zeitraum" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) .
Werte setzen ( [ 1 . 2 . 3 . 4 . 5 ] ) ) .
Neue Spalte ( AAAAA . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) .
Werte setzen ( [ 1 . 2 . 3 . 4 . 5 ] ) ) .
Neue Spalte ( "BBBBB" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) .
Werte setzen ( [ 5 . 4 . 3 . 2 . 1 ] ) ) .
Neue Spalte ( "CCCCC" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) .
Werte setzen ( [ 2 . 3 . 2 . 3 . 2 ] ) ) .
Neue Spalte ( "DDDDD" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) .
Werte setzen ( [ 3 . 4 . 2 . 1 . 5 ] ) )
) ;
topic_list = { AAAAA . "BBBBB" . "CCCCC" . "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
zum ( ich = 1 . ich <= Nitems ( topic_list ) . ich ++
one_topic = topic_list [ ich ] ;
plist = topic_dt : Zeitraum << Werte erhalten ;
tlist = Säule ( topic_dt . one_topic ) << Werte erhalten ;
tbl_expr [ ich ] =
vlistbox (
Textfeld ( "Tabelle zum Thema" || one_topic ) .
Tischbox (
Anzahl Col-Box ( "Zeitraum" . plist ) .
nummer col box ( one_topic . tlist ) .
) .
) ;
gb_expr = evalinsert (
"\ [graph_expr [^ i ^] = expr (hlistbox (
gb = Graph Builder (
Systemsteuerung anzeigen (0),
Variablen (X (: Periode), Y (: Name ("^ one_topic ^"))),
Elemente (
Punkte (X, Y, Legende (1), Jitter (1)),
Glatter (X, Y, Legende (2))
)
)
))] " ) ;
eval ( analysieren ( gb_expr )) ;
) ; // Schleife beenden
topic_list_expr = Ausdruck (
topic_mtx = topic_lb << ausgewählte Indizes abrufen ;
itopisch = topic_mtx [ 1 ] ;
trend_tab << ersetzen ( 1 . "Tabellierung" .
vlistbox (
tbl_expr [ itopic ] .
)
) ;
trend_tab << ersetzen ( 2 . "Graph" .
eval ( graph_expr [ itopic ]) .
) ;
) ;
pvtrend_win = neues Fenster ( "Beispiel" .
hlistbox (
Panel-Box ( "Themen" .
topic_lb = Listbox ( topic_list . Breite ( 250 ) . nlines ( 5 ) . max ausgewählt ( 1 ) .
topic_list_expr ) .
) .
trend_tab = Tabulatorfeld (
Tabellierung .
vlistbox (
tbl_expr [ 1 ] .
) .
"Graph" .
eval ( graph_expr [ 1 ]) .
) .
)
) ;
topic_lb << Set ausgewählt ( 1 ) ;
Das Problem scheint zu sein, dass die Anzeigefelder in tbl_expr nicht vollständig ausgewertet werden. Ich denke, dieser Code funktioniert wie beabsichtigt:
topic_dt = NewTable ( Beispielthemen .
Zeilen hinzufügen ( 5 ) .
NewColumn ( "Zeitraum" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Werte setzen ( [ 1 . 2 . 3 . 4 . 5 ] ) ) .
NewColumn ( AAAAA . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Werte setzen ( [ 1 . 2 . 3 . 4 . 5 ] ) ) .
NewColumn ( "BBBBB" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Werte setzen ( [ 5 . 4 . 3 . 2 . 1 ] ) ) .
NewColumn ( "CCCCC" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Werte setzen ( [ 2 . 3 . 2 . 3 . 2 ] ) ) .
NewColumn ( "DDDDD" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Werte setzen ( [ 3 . 4 . 2 . 1 . 5 ] ) )
) ;
topic_list = { AAAAA . "BBBBB" . "CCCCC" . "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
Zum ( ich = 1 . ich <= NItems ( topic_list ) . ich ++
one_topic = topic_list [ ich ] ;
plist = topic_dt : Zeitraum << Werte erhalten ;
tlist = Säule ( topic_dt . one_topic ) << Werte erhalten ;
tbl_expr [ ich ] = EvalExpr (
VListBox (
Textfeld ( "Tabelle zum Thema" || Ausdruck ( one_topic ) ) .
TableBox (
NumberColBox ( "Zeitraum" . Ausdruck ( plist ) ) .
NumberColBox ( Ausdruck ( one_topic ) . Ausdruck ( tlist ) ) .
)
)
) ;
graph_expr [ ich ] = EvalExpr (
HListBox (
gb = Graph Builder (
Systemsteuerung anzeigen ( 0 ) .
Variablen ( X ( : Zeitraum ) . Y ( AsColumn ( Ausdruck ( one_topic ) ) ) ) .
Elemente ( Punkte ( X . Y . Legende ( 1 ) . Jitter ( 1 ) ) . Glatter ( X . Y . Legende ( 2 ) ) )
)
)
) ;
) ; // Schleife beenden
topic_list_expr = Ausdruck (
topic_mtx = topic_lb << ausgewählte Indizes abrufen ;
itopisch = topic_mtx [ 1 ] ;
trend_tab << ersetzen ( 1 . Tabellierung . Eval ( tbl_expr [ itopisch ]) ) ;
trend_tab << ersetzen ( 2 . "Graph" . Eval ( graph_expr [ itopisch ] ) ) ;
) ;
pvtrend_win = Neues Fenster ( "Beispiel" .
HListBox (
PanelBox ( "Themen" .
topic_lb = ListBox (
topic_list .
Breite ( 250 ) .
nlines ( 5 ) .
max ausgewählt ( 1 ) .
Eval ( topic_list_expr )
) .
) .
trend_tab = TabBox ( Tabellierung . VListBox ( tbl_expr [ 1 ] . ) . "Graph" . Eval ( graph_expr [ 1 ] ) ) .
)
) ;
topic_lb << Set ausgewählt ( 1 ) ;