列式内で新しいウィンドウダイアログスクリプトを実行する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
私は1列( "BIN")にさまざまな文字値があり、データセットの各行はテストされた固有の単位を参照しています。データセットを変換/要約する必要なく、「BIN」列内のすべての一意の値のセットを含むListBoxダイアログをユーザーに表示する列式を作成します。ListBoxで目的の値を選択した後、"BIN"列内に値を持つユニットは、生成された列( "BIN_DISPOSITION")に1セットの値を持ち、"BIN"を含まないユニットは列を持ちます。msgstr "" "リストボックスの選択に一致する値は生成された列に設定された値0を持ちます(" BIN_DISPOSITION ")。
例:
ユーザーが式列を実行して「BIN2」と「BIN3」を選択した場合、次のような出力が必要です。
単位#
| BIN | BIN_DISPOSITION(列式によって生成される) |
|---|
ユニット1 | BIN1 | 0 |
| ユニット2 | BIN2 | 1 |
| ユニット3 | BIN2 | 1 |
| ユニット4 | BIN1 | 0 |
| 5号機 | BIN3 | 1 |
スクリプト:
bin_values_all = {} ;
bin_values_all_sorted = {} ;
bin_values_selected = {} ;
もし ( 行 () == 1 、
各行について ( もし ( !含む ( bin_values_all 、: BIN [ 行 ()]) 、
に挿入 ( bin_values_all 、 : BIN [ 行 ()])
) ;
bin_values_all_sorted = ソート昇順 ( bin_values_all ) ;
新しい窓 ( 「BIN値の選択」 モーダル、
アウトラインボックス ( 「BIN値の選択」 、
ポンド = リストボックス (
bin_values_all_sorted
) 、
ボタンボックス ( "OK" 、
bin_values_selected = ポンド << GetSelected
) ;
もし ( 含む ( bin_values_selected 、 : BIN ) 、
1 、
0
) ;
ダイアログとリストの生成が複数回実行されないように、条件付きIf(Row()== 1 ...)を追加する必要がありましたが、これより上の変数宣言は毎回再初期化されるようです。欲しいものじゃない。
これを行うための組み込みの方法があるかどうかはよくわかりませんでした。
誰かが何かアイデアがあるかどうか疑問に思う。
ありがとう、
JP
再:列式の中で新しいウィンドウダイアログスクリプトを実行する私はこれを機能させる方法を考え出しました。
最初の条件文の前にリストを初期化する代わりに、それらをRow()== 1の場合に入れ、接頭辞 '::'を使用してそれらをグローバル変数に変換しました。
もし ( 行 () == 1 、
:: bin_values_all = {} ;
:: bin_values_all_sorted = {} ;
:: bin_values_selected = {} ;
各行について ( もし ( !含む ( bin_values_all 、 : BIN [ 行 ()]) 、
に挿入 ( bin_values_all 、 : BIN [ 行 ()])
) ;
bin_values_all_sorted = ソート昇順 ( bin_values_all ) ;
新しい窓 ( 「BIN値の選択」 モーダル、
アウトラインボックス ( 「BIN値の選択」 、
ポンド = リストボックス (
bin_values_all_sorted
) 、
ボタンボックス ( "OK" 、
bin_values_selected = ポンド << GetSelected
) ;
もし ( 含む ( bin_values_selected 、 : BIN ) 、
1 、
0
) ;