안녕 모두,
분석이 완료된 후 작업하고 있는 스크립트를 업데이트하고 있습니다. 보고서 창의 그림을 저장한 다음 사용자가 원하는 경우 이미지를 열 데이터 테이블에 스크립트를 저장하고 싶습니다. 저것. 각 분석은 새 보고서 이미지를 생성하며 파일 이름을 업데이트한 데이터 테이블 참조에 저장된 스크립트가 필요합니다(모두 동일한 디렉터리에 있음).
참고: 보고서를 만들 때 참조되는 임시 데이터 테이블이 있기 때문에 보고서를 이미지로 저장해야 합니다. 이러한 데이터 테이블을 데이터 테이블 스크립트에 저장하더라도 저장하고 싶지 않습니다. 누군가가 그것에 대한 해결책을 가지고 있다면 멋질 것입니다.
여하튼 제가 힘들어하는 것은 New Script가 데이터 테이블에 저장될 때 제가 원하는 문자가 아닌 제 메인 스크립트에 변수를 쓴다는 것입니다. Eval Insert() 및 Eval(Substitute(Expr())) 을 시도하고 얻는 방법으로 시도했지만 아무것도 작동하지 않습니다.
다음은 분석 결과 중 하나의 예입니다.

이 분석은 오른쪽 아래에 GB 이미지를 작성하기 위해 실제로 또 다른 데이터 테이블을 생성합니다. 이 데이터 테이블은 다음과 같습니다.

하지만 분석이 끝났거나 사용자가 다른 컬럼에 대한 분석을 수행하면 이 데이터 테이블이 삭제되고 더 이상 참조할 수 없습니다. <
대신 창을 png로 저장해야 합니다. 괜찮습니다. 위의 첫 번째 이미지처럼 보이지만 PNG로 저장해야 합니다. 이 작업을 수행하는 스크립트의 코드 반복은 다음과 같습니다.
Button Box( "Save Results to DT",
path = dt << Get Path; //gets the dt's path
l = Length( path ) - Length( dt << GetName ) - 4; // takes off dt name and .jmp extension
dir = Left( path, l ); //actual path where the PNG file is supposed to be saved
If( N Items( Icols ) == 0 & N Items( Xcols ) == 0,
pic_name = "Self_Corr_" || ycols[1] || ".png"; //name of the picture
nwin[Outline Box( 1 )] << Save Picture( dir || pic_name, "png" ); //saves the report window as a PNG to the directory<BR /> full_name=dir||pic_name;
dt << New Script( "Self Corr of " || ycols[1], Open( full_name ) ); // the new script is supposed to substitute the actual dir name and pic_name, not the variables.
);
)
다음과 같은 데이터 테이블에 대한 스크립트를 생성합니다.

그러나 스크립트는 다음과 같아야 합니다.

기본 스크립트에서 수행하려는 작업을 보여주기 위해 스크립트에 있어야 하는 내용을 복사/붙여넣기한 곳입니다. 이것은 가능해야 하지만 내가 시도한 모든 시도가 작동하지 않습니다.
앞에서 언급했듯이 보고서를 PNG로 저장해도 괜찮고 사용자는 보고서를 JMP에서 PNG로 열면 되지만 가능하면 임시 데이터 테이블을 New Script()에 저장하여 사용자가 스크립트를 클릭하면 전체 대화형 기능에 필요한 임시 데이터 테이블이 생성되지만 더 어려울 것 같습니다.
입력이나 제안에 감사드립니다!,
DS
원하는 경우 테이블 생성을 테이블 스크립트로 저장할 수 있지만 이는 상당히 커질 수 있고 많은 공간을 차지할 수 있습니다. 이미지를 테이블에 저장할 수도 있습니다. 다음은 세 가지 다른 옵션입니다. 표 내에서 스크립트가 어떻게 보이는지 확인하는 것을 잊지 마십시오.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Saving table creation
dt_script = dt << Get Script;
Eval(EvalExpr(
dt << New Script("Create Table", Expr(Name Expr(dt_script)));
));
// Saving image
img = Open("$SAMPLE_IMAGES/windmap.png", "png");
Eval(EvalExpr(
dt << New Script("Open Image",
New Window("Image",
Picture Box(Expr(img));
)
)
));
// Saving filepath which will open the image
file_path = "$SAMPLE_IMAGES/windmap.png";
Eval(EvalExpr(
dt << New Script("Open File from Path",
Open(Expr(file_path))
)
));
Btw, 이것을 위해 JMP 프로젝트를 사용하는 것을 고려해 보셨습니까?
솔루션을 위해 JMP 프로젝트를 살펴보자는 Jarmo의 제안이 두 번째입니다.
안녕 @jthi 그리고 @txnelson ,
빠른 피드백과 아이디어에 감사드립니다. 스크립트를 데이터 테이블에 저장하는 다양한 옵션에 감사드립니다. 임시 데이터 테이블을 저장한 다음 새 스크립트로 해당 스크립트를 호출해야 하는 작업이 복잡해졌기 때문에 결국 이미지로 진행했습니다.
이를 위해 프로젝트를 고려했지만 사용자가 이것과 상호 작용하는 방식은 프로젝트 형식일 때 도움이 되지 않을 것이라고 생각합니다. 내 조직에서 프로젝트를 사용하는 유일한 사람일 수도 있습니다. 그것이 변경되면 확실히 코드 업데이트를 고려할 것입니다.
모든 도움에 다시 한 번 감사드립니다!,
DS