大家好,
我正在更新一個我一直在研究的腳本,在分析完成後,我想保存報告窗口的圖片,然後將腳本保存到數據表中,如果用戶願意,該腳本將打開圖像那。 每次分析都會生成一個新的報告圖像,我需要將腳本保存到更新文件名的數據表引用中(全部都在同一目錄中)。
旁注:我必須將報告保存為圖像,因為我有一些在創建報告時引用的臨時數據表,並且我不想保存這些數據表 - 儘管將它們保存到數據表腳本中如果有人有解決方案,那也很酷。
不管怎樣,我遇到的困難是當新腳本保存到數據表時,它在我的主腳本中寫入變量,而不是我想要的字符。 我嘗試過 Eval Insert() 和 Eval(Substitute(Expr())) 作為嘗試獲得該結果的方法,但沒有任何效果。
以下是分析的一個此類輸出的示例:

分析實際上是創建了另一個數據表,以便構建右下角的GB圖像,這個數據表:

但是,當分析結束時,或者用戶對另一列執行分析時,該數據表將被刪除,並且我不再引用它 - 我嘗試使用 <<將所有對象的腳本保存到數據Table 命令,但這需要引用上面的數據表,然後生成圖形生成器,但數據表現在已經消失了。
相反,我必須將窗口另存為 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))
)
));
順便說一句,您是否考慮過使用 JMP 項目來實現此目的?
我贊同 Jarmo 的建議,即查看 JMP 項目來尋找解決方案。
你好@jthi和@tx尼爾森,
感謝您的快速反饋和想法。 我很欣賞將腳本保存到數據表的不同選項。 我最終選擇了圖像,因為保存臨時數據表,然後必須使用新腳本調用該腳本,結果很複雜。
我已經考慮過使用項目來實現此目的,但我認為用戶與之交互的方式在項目格式中不會那麼有幫助。 我想我可能是我的組織中唯一使用項目的人。 如果情況發生變化,我肯定會考慮更新代碼。
再次感謝大家的幫助!,
DS