스크립트 파일에 대한 루프친애하는 jsl 스크립터 여러분,
포함 명령을 사용하여 "보고"(JMP 차트를 파워포인트 파일에 삽입)를 위한 첨자를 호출하는 스크립트가 있습니다.
dt = Current Data Table();
Include( strRootPathScript || str_report_Product1) );
1제품만 사용하면 잘 됩니다. 내 소원은 제품 [제품1;제품2;...] 목록을 반복하는 것입니다.
포함 명령으로 제품 이름을 대체합니다.
EVAL/EXPR/SUBSTITUTE 지침에 대한 몇 가지 이국적인 시도 후에 도움을 구합니다!
감사 해요!!!
제롬
스크립팅Re: 스크립트 파일에 대한 루프안녕하세요 @J_Bonnouvrier1 ,
어떤 상황에서도 작동하도록 이것을 일반화하는 것은 약간 어렵지만, 내가 상상하는 대로 코드/파일 구조가 주어지면 반복할 수 있습니다.
대체 Product1, Product2 등을 미리 알고 있다고 가정하면 JSL 코드에서 다음과 같은 작업을 수행하는 경우:
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개의 제품 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 스크립트입니다."
Product_List={"Product1.jsl", "Product2.jsl",...}과 같이 제품 목록의 일부로 ".jsl"이 있는 경우에도 작동합니다. 그런 다음 For 루프에서 ||".jsl" 연결을 제거합니다. 어느 쪽이든, 당신은 위와 같은 출력을 얻습니다. Product_List 목록을 정의하는 방법에 따라 다릅니다.
도움이 되었기를 바랍니다!,
DS