ユーザーがフィルター処理する最初のデータセットを選択するまで、コードを実行する方法はありますか。ユーザーが選択したいモデル番号に基づいてフィルタリングするようにユーザーに促すウィンドウがあります。問題は、このウィンドウが上書きされてしまい、それがすべてのプロセスで実行されるとエラーが発生することです最初に停止してウィンドウを表示し、ユーザーが選択を入力するのを待ちます。これがウィンドウスクリプトです。
//*** Create a window to prompt user to filter for Model numbers they would like to use
prods = Associative Array( Column( dt2, "Product CFN" ) << getValues ) << getKeys;
nw1 = New Window( "2014 Product Filter", lb1 = List Box( prods ), Button Box( "OK", OKscript2014 ) );
OKscript2014 = Expr(
SelectedProds = lb1 << getSelected;
selectedRows = [];
For( p = 1, p <= N Items( SelectedProds ), p++,
selectedRows = V Concat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p] ) )
);
dt5 = dt2 << Subset( Rows( selectedRows ), LinkToOriginalDataTable( 0 ) );
Wait( 0 );
dt5 << Save( dir || "\PrimaryRFR_ProductFiltered_2014.jmp" );
);
再:どのように私はユーザーがフィルタ処理するデータの最初のセットを選択するまで、コードの実行を妨害するのですか?ウィンドウをモーダルにする - ウィンドウが閉じるまですべてのコードの実行を停止します。また、ウィンドウ内のボタン内のスクリプトの定義をウィンドウ自体の上に移動する必要があります。例:
prods = Associative Array( Column( dt2, "Product CFN" ) << getValues ) << getKeys;
OKscript2014 = Expr(
SelectedProds = lb1 << getSelected;
selectedRows = [];
For( p = 1, p <= N Items( SelectedProds ), p++,
selectedRows = V Concat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p] ) )
);
dt5 = dt2 << Subset( Rows( selectedRows ), LinkToOriginalDataTable( 0 ) );
Wait( 0 );
dt5 << Save( dir || "\PrimaryRFR_ProductFiltered_2014.jmp" );
);
nw1 = New Window( "2014 Product Filter", <<MODAL></MODAL>
再:どのように私はユーザーがフィルタ処理するデータの最初のセットを選択するまで、コードの実行を妨害するのですか?ありがとうございました!このウィンドウを前面に配置してユーザーの中心に配置する方法もありますか?それで、それが他のデータテーブルによって過剰に表示されないようにするために?
敬具、
ザック再:どのように私はユーザーがフィルタ処理するデータの最初のセットを選択するまで、コードの実行を妨害するのですか?モーダルウィンドウは常に一番上になるようにします。モーダルウィンドウの上に他のウィンドウが表示されている場合は、テクニカルサポートに連絡することをお勧めします。非モーダルウィンドウは常に最前面に表示されるわけではありません。モーダルではないウィンドウに<<ウィンドウを前面に表示するメッセージを送ることができます。