スクリプトファイルをループする親愛なるjslスクリプター、
include命令を使用して、「レポート」(PowerPointファイルにJMPチャートを挿入する)の添え字を呼び出すスクリプトがあります。
dt = Current Data Table();
Include( strRootPathScript || str_report_Product1) );
1つの製品を使用している限り、問題なく動作します。 私の願いは、製品のリストをループすることです[Product1; Product2; ...]
製品名をinclude命令に置き換えます。
EVAL / EXPR / SUBSTITUTEの指示に関するいくつかのエキゾチックな試行の後、私はあなたの助けをお願いしています!
ありがとう!!!
ジェローム
スクリプティング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
Re:スクリプトファイルをループするこんにちは@ SDF1 、
実際、str_report_Product1は、各製品のファイル名を示す変数であることを忘れました。
str_report_Product1 = "C:\ temp \ report_Product1.jsl"
したがって、提案するソリューションはスクリプトによって認識されません。
ありがとう、よろしく、
ジェローム
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」がある場合にも機能します。Product_List= {"Product1.jsl"、 "Product2.jsl"、...};次に、Forループから|| ".jsl"連結を削除します。 どちらの方法でも、上記と同じ出力が得られます。 Product_Listリストをどのように定義するかによって異なります。
お役に立てれば!、
DS