<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私が必要としているのは、積み重ねる列を動的に(よく、並べ替えて)選択してテーブルを積み重ねることです。
積み重ねる列の名前が値として格納されている設定テーブルで解決した後、「値を取得」して
結果を文字列に割り当てます。最後にこの文字列をstackコマンドに渡します。
うまくいきますが…
私のログでは毎回それは言う
エラーが見つかりました。'columns'へのアクセスまたは評価中、不正な引数(Eval(d))
列(Eval(d))」
evalなしでは実行されません。evalを使用すると完全に実行されますが、ログが汚染されます。誰もがその理由を知っていますか?
ここにコードがあります:
conf3 = open( "\ここが設定テーブルです");
//ロード設定、最終レポートに必要な「クラス」を選択するためにユーザーが編集するExcelファイルです。
//これらのクラスセットは非常に安定しており、ほとんどの場合前回の実行時から変更されていませんが、クラスを追加または変更しなければならない場合があります
// column1:black white red column2:赤白など
d = Column(conf3、i)<<値を取得します。
// iはインデックス
//サイクルで実行します。それぞれ異なるテーブルに対してスタックを実行し、異なるスタックセットに対して異なる列を読み取ります。
//ここで設定のi番目の列から値を取得し、それを文字列dに代入します - >それはいいですか?
snowhite = Open( "\ jmp_tables \ snowhite.jmp"、非表示);
//スタックするテーブルをロードします
スノーホワイト<< Stack(
列(eval(d))、
ソースラベル列( "クラス")、スタックデータ列( "密度")、名前( "非スタック列")(保持(:分割、:ロットID、:デバイスID))、出力テーブル) ;
ええ、私は何らかの価値があることに気づいたときにそれが問題になる可能性があると思いました。
残念ながら、リストがExcelファイルの列から来ているように、すべての列を同じ高さにするために最後に空のセルを自動的に挿入するので、値は避けられません。
私はあなたの解決策を試みます、ありがとう!
そうです、私は私の説明では正しくありませんでした:dは文字列ではなく文字列のリストです。スタックコマンドは文字列ではなくリストを必要とするからです。
私はそれを推測日ここでは文字列ではありませんが、<< get valuesとしての文字列のリストはリスト(または連続変数の行列)になります。conf3のクラスセットのアイテム数が異なる場合、テーブルは最大セットと同じ行数になります。それからいくつかの選択のために日空の文字列項目、つまり ""が含まれます。これが報告されたエラーの原因である可能性があります(列には ""以外の名前を付ける必要があります)。
以下のコードで、""のインスタンスをすべて削除できます。日積み重ねる前に。リストを整理するほうが簡単な方法かもしれませんが、これでうまくいくはずです。
しながら ( 含む ( 日 、 「」 ) > 0 、から削除 ( 日 、含む ( 日 、 「」 ) ) ) ;