我有一個充滿圖形生成器的BorderBox,我想另存為圖片。
我在FrameBox上有一個“添加圖形腳本”。 該腳本使用變量:
dt << Graph Builder(
Size( 600, 400 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Title Alignment( "Right" ),
Variables( X( :X ), Y( :Y ), Overlay( :Overlay ) ),
Elements(
Contour( X, Y, Legend( 5 ), Number of Levels( 18 ), Smoothness( -0.8899 ) ),
Points( X, Y, Legend( 4 ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 1 ), Add Graphics Script(
Transparency( 0.5 );
Fill Color( "Green" );
Pen Color( "Dark Green" );
Line(
{marginXmin, marginYmin},
{marginXmin, marginYmax},
{marginXmax, marginYmax},
{marginXmax, marginYmin}
{marginXmin, marginYmin}
);
)}
)
),如果我打開一個名為“ imageForReport”的BorderBox的新窗口,其中包含此GraphBuilder:
window = New Window( "My Report", imageForReport );
然後將報告保存在圖像中:
imageForReport << save picture( imgPath, "png" );
一切都很好,一切正常。
但是我只需要該窗口即可進行即時調試,最終產品是PNG圖像文件。
因此,對於運行數千個報告的生產版本,我節省了資源,並且不打開該窗口。
但是在這種情況下,圖形腳本不起作用,因為第一個變量(我想其餘的變量)都沒有解析。 我得到這個:
Name Unresolved: marginXmin in access or evaluation of 'marginXmin' , marginXmin/*###*/
在“日誌”窗口中。 如何解決此問題而又不必不必要地打開和關閉數千個窗口?
更新:
這是測試此行為的示例腳本:
Clear Log();
Clear Symbols();
Clear Globals();
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cutOutX = 20;
cutOutY = 3;
marginXmin = 70;
marginXmax = 160;
marginYmin = 55;
marginYmax = 65;
imageForReport = Border Box(
VLBox = V List Box(
//Zero row
headerTB = Text Box( "Test savingimage" ),
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 1 ), Add Graphics Script(
Transparency( 0.5 );
Fill Color( "Green" );
Pen Color( "Dark Green" );
Line(
{marginXmin, marginYmin},
{marginXmin, (marginYmax - cutOutY)},
{(marginXmin + cutOutX), (marginYmax - cutOutY)},
{(marginXmin + cutOutX), marginYmax},
{(marginXmax - cutOutX), marginYmax},
{(marginXmax - cutOutX), (marginYmax - cutOutY)},
{marginXmax, (marginYmax - cutOutY)},
{marginXmax, marginYmin},
{marginXmin, marginYmin}
);
)}
)
)
)
)
);
window = New Window( "My Report", imageForReport );
imageForReport << save picture( "C:\temp\testImage.png", "png" );如果按原樣運行-將打開包含圖和形狀的窗口,並保存圖和形狀的PNG圖像。
如果您註釋新的窗口行-它將在不打開新窗口的情況下將繪圖保存為PNG圖像,但是形狀將丟失。
有人可以解釋它以及如何解決嗎? 如何在保存的圖像中獲得形狀而無需使用圖打開/關閉新窗口?