<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMPstersさん、こんにちは。
下記のコードに問題があります。 リストボックスにトピックのリストがあり、ユーザーがリストボックスから選択した内容に応じて、タブに表示される内容を変更したいと思います。 コードを実行してみて、それがどのように機能するかがわかります。
どのトピックをクリックしても、グラフタブはうまく更新されます。
問題は、テーブルボックスを含む最初のタブにあります。 トピックを初めてクリックしたときには、テーブルボックスが表示されます。

ただし、次のトピックをクリックしてから元のトピックに戻ると、空白のタブが表示されます。

誰かがそれを理解することができたら事前に感謝します。
topic_dt = 新しいテーブル ( 「トピック例」 、行を追加 ( 5 ) 、
新しいコラム ( "期間" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 1 、 2 、 3 、 4 、 5 ] ) ) 、
新しいコラム ( 「AAAAA」 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 1 、 2 、 3 、 4 、 5 ] ) ) 、
新しいコラム ( "BBBBB" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 5 、 4 、 3 、 2 、 1 ] ) ) 、
新しいコラム ( 「CCCCC」 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 2 、 3 、 2 、 3 、 2 ] ) ) 、
新しいコラム ( "DDDDD" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 3 、 4 、 2 、 1 、 5 ] ) )
) ;
topic_list = { 「AAAAA」 、 "BBBBB" 、 「CCCCC」 、 "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
にとって ( 私 = 1 、私 <= ナイテム ( topic_list ) 、私 ++、
one_topic = topic_list [ 私 ] ;
plist = topic_dt : 期間 << 値を取得 ;
tlist = カラム ( topic_dt 、 one_topic ) << 値を取得 ;
tbl_expr [ 私 ] =
vlistbox (
テキストボックス ( 「トピックの表」 || one_topic ) 、
テーブルボックス (
ナンバーコルボックス ( "期間" 、 plist ) 、
ナンバーコルボックス ( one_topic 、 tlist ) 、
) 、
) ;
gb_expr = evalinsert (
"\ [graph_expr [^ i ^] = expr(hlistbox(
gb =グラフビルダー(
コントロールパネルを表示(0)
変数(X(:ピリオド)、Y(:Name( "^ one_topic ^")))、
要素(
ポイント(X、Y、凡例(1)、ジッタ(1))、
スムーズ(X、Y、凡例(2))
)
)
))]」 ) ;
評価する ( 解析する ( gb_expr )) ;
) ; //ループ終了
topic_list_expr = expr (
topic_mtx = topic_lb << 選択したインデックスを取得 ;
イトピー = topic_mtx [ 1 ] ;
trend_tab << 取り替える ( 1 、 「集計」 、
vlistbox (
tbl_expr [ イトピー ] 、
)
) ;
trend_tab << 取り替える ( 2 、 "グラフ" 、
評価する ( graph_expr [ イトピー ]) 、
) ;
) ;
pvtrend_win = 新しい窓 ( 「例」 、
hlistbox (
パネルボックス ( "トピック" 、
topic_lb = リストボックス ( topic_list 、幅 ( 250 ) 、 nlines ( 5 ) 、最大選択 ( 1 ) 、
topic_list_expr ) 、
) 、
trend_tab = タブボックス (
「集計」 、
vlistbox (
tbl_expr [ 1 ] 、
) 、
"グラフ" 、
評価する ( graph_expr [ 1 ]) 、
) 、
)
) ;
topic_lb << 選択したセット ( 1 ) ;
Woo hooさん、トリックをしてくれたMSに感謝します。 ありがとう!!!!!
問題は、tbl_exprの表示ボックスが完全に評価されていないことにあります。このコードは意図したとおりに機能すると思います。
topic_dt = NewTable ( 「トピック例」 、
行を追加 ( 5 ) 、
NewColumn ( "期間" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 1 、 2 、 3 、 4 、 5 ] ) ) 、
NewColumn ( 「AAAAA」 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 1 、 2 、 3 、 4 、 5 ] ) ) 、
NewColumn ( "BBBBB" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 5 、 4 、 3 、 2 、 1 ] ) ) 、
NewColumn ( 「CCCCC」 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 2 、 3 、 2 、 3 、 2 ] ) ) 、
NewColumn ( "DDDDD" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 3 、 4 、 2 、 1 、 5 ] ) )
) ;
topic_list = { 「AAAAA」 、 "BBBBB" 、 「CCCCC」 、 "DDDDD" } ;
tbl_expr = {} ;
graph_expr = {} ;
にとって ( 私 = 1 、私 <= NItems ( topic_list ) 、私 ++、
one_topic = topic_list [ 私 ] ;
plist = topic_dt : 期間 << 値を取得 ;
tlist = カラム ( topic_dt 、 one_topic ) << 値を取得 ;
tbl_expr [ 私 ] = EvalExpr (
VListBox (
テキストボックス ( 「トピックの表」 || 経験値 ( one_topic ) ) 、
TableBox (
NumberColBox ( "期間" 、経験値 ( plist ) ) 、
NumberColBox ( 経験値 ( one_topic ) 、経験値 ( tlist ) ) 、
)
)
) ;
graph_expr [ 私 ] = EvalExpr (
HListBox (
GB = グラフビルダー (
コントロールパネルを表示 ( 0 ) 、
変数 ( バツ ( : 期間 ) 、 Y ( AsColumn ( 経験値 ( one_topic ) ) ) ) 、
要素 ( ポイント ( バツ 、 Y 、伝説 ( 1 ) 、ジッタ ( 1 ) ) 、スムーズ ( バツ 、 Y 、伝説 ( 2 ) ) )
)
)
) ;
) ; //ループ終了
topic_list_expr = 経験値 (
topic_mtx = topic_lb << 選択したインデックスを取得 ;
イトピー = topic_mtx [ 1 ] ;
trend_tab << 取り替える ( 1 、 「集計」 、評価 ( tbl_expr [ イトピー ]) ) ;
trend_tab << 取り替える ( 2 、 "グラフ" 、評価 ( graph_expr [ イトピー ] ) ) ;
) ;
pvtrend_win = 新しい窓 ( 「例」 、
HListBox (
PanelBox ( "トピック" 、
topic_lb = リストボックス (
topic_list 、
幅 ( 250 ) 、
nlines ( 5 ) 、
最大選択 ( 1 ) 、
評価 ( topic_list_expr )
) 、
) 、
trend_tab = TabBox ( 「集計」 、 VListBox ( tbl_expr [ 1 ] 、 ) 、 "グラフ" 、評価 ( graph_expr [ 1 ] ) ) 、
)
) ;
topic_lb << 選択したセット ( 1 ) ;