スクリプト ファイルのループ親愛なるjslスクリプターの皆様へ
インクルード命令を使用して「レポート」用の添え字を呼び出すスクリプトがあります (JMP チャートをパワーポイント ファイルに挿入します)。
dt = Current Data Table();
Include( strRootPathScript || str_report_Product1) );
1つの製品を使用する限り、正常に機能します。 私の願いは、製品のリストをループすることです [Product1;Product2;...]
製品名をインクルード命令に置き換えます。
EVAL/EXPR/SUBSTITUTE 命令に関するいくつかのエキゾチックな試行の後、私はあなたの助けを求めています!
ありがとう!!!
ジェローム
スクリプティングRe: スクリプト ファイルのループやあ@J_Bonnouvrier1 、
その場合、ディレクトリ パスが正しく定義されていること (最後のバックスラッシュが含まれていること) を確認し、".jsl" 末尾を連結して、期待どおりに動作することを確認するだけです。
例として、3 つの Product JSL ファイルを作成しました。それぞれに次のコマンドが含まれていますが、数字を 1 から 2、3 に変更しただけです。
Names Default to Here (1);
Print("This is Product 1 JSL script");メインの JSL ファイルは次のとおりです。
Names Default to Here (1);
Product_List={"Product1", "Product2", "Product3"};
ScriptDir = "C:\temp\"; //Or whatever your path is.
Print("This is the main script");
For(i=1, i<=NItems(Product_List), i++,
Include(ScriptDir||Product_List[i]||".jsl");
);上記のメイン コードを実行した場合の出力は次のとおりです。
「これがメインスクリプトです」
「これは製品 1 の JSL スクリプトです」
「これは製品 2 の JSL スクリプトです」
「これは製品 3 の JSL スクリプトです」
次のように、製品リストの一部として「.jsl」がある場合にも機能します。次に、||".jsl" 連結を For ループから削除します。 どちらの方法でも、上記と同じ出力が得られます。 Product_List リストをどのように定義するかによって異なります。
お役に立てれば!、
DS
Re: スクリプト ファイルのループやあ@SDF1 、
実際、str_report_Product1 は各製品のファイル名を指定する変数であることを忘れていました。
str_report_Product1 = "C:\temp\report_Product1.jsl"
したがって、提案するソリューションはスクリプトによって認識されません。
よろしくお願いいたします。
ジェローム
Re: スクリプト ファイルのループやあ@J_Bonnouvrier1 、
これを一般化してどのような状況でも機能するようにするのは少し難しいですが、私が想像するコード/ファイル構造があれば、ループすることができます。
JSLコードでProduct1、Product2などの置換を事前に知っていると仮定すると、次のような場合:
dt = Current Data Table();
For(i=1, i<=NItems(Product_List), i++,
Include(strRootPathScript||"str_report_"||Product_List[i]);
);
この場合、変数 Product_List は製品のリストになります: Product_List={"Product1", "Product2", "Product3",...};. For ループで Product_List[i] を呼び出すと、Product_List の i 番目の要素が連結されます。 したがって、i = 3 の場合、次のことを行う必要があります。
Include(strRootPathScript||str_report_||Product_List[3]) 、ここで strRootPathScript は「C:\myfiles\JSL_code\」のようなルート パスであると想定しているため、Include 関数に入力する引数はこの場合は、「C:\myfiles\JSL_code\str_report_Product3」になります。
これはあなたが求めているものですか?
お役に立てれば!、
DS