列名を選択するダイアログポップアップ<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは。ユーザーがダイアログ ポップアップとスクリプトに列名を入力するスクリプトを考え出そうとしています。
1. 列名の下にデータを含む行をサブセット化し、
2. 入力された列名を使用して単純な数式を実行する新しい列を作成します。
やり方がわからないので、以下の列名をハードコーディングしました。 ダイアログポップアップでユーザーが何を入力しても機能するように、:XX01 を置き換えるにはどうすればよいですか。 XX01、XX02、XX03などの列があります...
ポップアップ = ダイアログ(
タイトル(「集計表」)、
「」、
" ソフトビン XX を入力してください:",
ラインナップ(6、
「ソフトビンID」、
Soft_Bin = 編集番号( 01 )
)、
ボタン(「OK」)、
ボタン(「キャンセル」)
);
masterdt << select where (Is Missing(:XX01));
masterdt << 行選択を反転;
sbdt = masterdt << Subset(( 選択された行 ), 出力テーブル名("選択されたソフトビン データ"));
sbdt << New Column( "Bin%", Numeric, Continuous, Format("Percent",12,2), Formula( :XX01 / :LOT_SORTED_DIES ) );
Re: 列名を選択するダイアログポップアップそうです、あなたはMSです。訂正ありがとうございます。
Re: 列名を選択するダイアログポップアップありがとうMS! 今では動作します 
Re: 列名を選択するダイアログポップアップ評価する前に解析すれば式は機能すると思います。
評価(解析する( 式_式 ) );
Re: 列名を選択するダイアログポップアップPMroz さん、ありがとう。このウィンドウは本当に便利です。 新しい列の部分を除いて、すべてがスムーズです。
何が間違っていたのかはわかりませんが、ログ内の式は問題ないようですが、eval 挿入文はまだ機能しません:\
masterdt = 新しいテーブル( "マスター DT", 行の追加( 5 ),
新しい列( "XX01"、数値、連続、形式( "Best"、12 )、
設定値( [1, 2, ., 3, 4] )
)、
新しい列( "XX02"、数値、連続、形式( "Best"、12 )、
値の設定( [., 1, 2, ., .] )
)、
新しい列( "XX03"、数値、連続、形式( "Best"、12 )、
値の設定( [., ., 1, 2, 3] )
)、
新しい列( "LOT_SORTED_DIES"、数値、連続、形式( "Best"、12 )、
設定値( [10, 10, 10, 20, 30] )
)
);
Popup = New Window( "概要テーブル", <
テキストボックス(「ソフトビン XX を入力してください:」)、
H リスト ボックス(
テキスト ボックス( "ソフトビン ID: " )、
Soft_Bin = 数値編集ボックス( 01 )、
)、
hリストボックス(
ボタンボックス(「OK」、
ok_flag = 1;
ncol = Soft_bin << get;
if (ncol < 9,
selected_col = "XX0" || char(ncol);
、
selected_col = "XX" || char(ncol);
)
)、
ボタンボックス(「キャンセル」、ok_flag = 0)、
)
);
If( ok_flag,
missing_rows = masterdt << get rows where( !Is Missing( as Column( masterdt, selected_col ) ) );
If( N 行 ( missing_rows ) > 0、
masterdt << select rows( missing_rows );
sbdt = masterdt << Subset( (選択された行), 出力テーブル名( "選択されたソフトビン データ" ) );
Formula_expr = Eval Insert(
"\[sbdt << New Column( "Bin%", Numeric, Continuous, Format( "Percent", 12, 2 ), Formula( :^selected_col^ / :LOT_SORTED_DIES ) )]\"
);
Parse( Eval( Formula_expr ) );
);
);
Re: 列名を選択するダイアログポップアップこれで希望通りのことが実現します。ダイアログの代わりに新しいウィンドウを使用するようにコードを変換しました。列の式に対して parse(eval()) を実行する必要がありました。
マスタード=新しいテーブル( 「マスターDT」 、行の追加( 5 ) 、
新しい列( 「XX01」 、数値、継続的、フォーマット( "最高" 、 12 ) 、
設定値( [ 1 、 2 、 。 、 3 、 4 】 )
) 、
新しい列( 「XX02」 、数値、継続的、フォーマット( "最高" 、 12 ) 、
設定値( [ 。 、 1 、 2 、 。 、 。 ] )
) 、
新しい列( 「XX03」 、数値、継続的、フォーマット( "最高" 、 12 ) 、
設定値( [ 。 、 。 、 1 、 2 、 3 】 )
)
) ;
ポップアップ=新しい窓( 「集計表」 、 <<モーダル() 、
テキストボックス( 「ソフトビン XX を入力してください:」 ) 、
H リストボックス(
テキストボックス( 「ソフトビンID:」 ) 、
ソフトビン=数値編集ボックス( 01 ) 、
) 、
リストボックス(
ボタンボックス( "わかりました" 、
OK_フラグ= 1 ;
ncol =ソフトビン<<得る;
もし( ncol < 9 、
選択された列= 「○○」 ||文字( ncol ) ;
、
選択された列= 「○○」 ||文字( ncol ) ;
)
) 、
ボタンボックス( "キャンセル" 、 OK_フラグ= 0 ) 、
)
) ;
もし( OK_フラグ、
missing_rows =マスタード<<行を取得します。 ( !不足している(列として(マスタード、選択された列) ) ) ;
もし( N 行( missing_rows ) > 0 、
マスタード<<行を選択する( missing_rows ) ;
sbdt =マスタード<<サブセット( (選択された行) 、出力テーブル名( 「選択されたソフトビンデータ」 ) ) ;
式_式=評価インサート(
"\[sbdt << New Column( "Bin%", Numeric, Continuous, Format( "Percent", 12, 2 ), Formula( :^selected_col^ / :LOT_SORTED_DIES ) )]\"
) ;
解析する(評価(式_式) ) ;
) ;
) ;