我正在使用 JSL 中的“获取图片”功能从 Graph Builder 和 Dashboard 创建图像,并将图像插入到表中的表达式列中。从 Graph Builder 执行此操作时,一切都按预期工作。但是,当我使用仪表板中的“获取图片”功能时,我的表达式列不包含图像,而是包含如下脚本:“{New Image(Char to Blob(....)}”。
如果我使用 JSL 去除左括号(即 "{" )和右括号(即 "}" ),则使用如下所示的 JSL: eval(parse( "New Image..." )),然后一切正常,我将仪表板作为表达式列中的图像。任何想法正在发生什么或我应该做些什么不同?顺便说一句,我正在使用 JMP 17.1。
我使用 Big Class 示例数据集生成了一个示例。带有表达式列的汇总表有一个图形脚本,允许您将鼠标悬停在点上以查看图形。
Names Default To Here( 1 );
dt = Open( "$sample_data/big class.jmp" );
//create a graph to save as a picture
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Grid Color( "White" ),
Level Spacing Color( "White" ),
Graph Spacing( 5 ),
Spacing Borders( 1 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
rgb = gb << report;
gbpic = rgb << get picture;
rgb << close window;
//create a dashboard
dash = JMP App(
Set Name( "Dashboard" ),
Set Description( "Description" ),
Auto Launch( 1 ),
Snap To Grid( 1 ),
Show Grid( 1 ),
Show Properties( 0 ),
Show Sources( 1 ),
Group By Category( 0 ),
Dashboard Mode( 1 ),
Parameters,
Tables( DataTable1 = dt ),
Script( JSL Quote() ),
Allocate(
Module1 = Plan(
PreAllocate,
Script(JSL Quote(
OnModuleLoad({},);
thisModuleInstance << Create Objects;
Try(TabPage3 << Set Scriptable Object(thisApplication));
) ),
Allocate(
TabPage3 = Tab Page Box();
Splitter1 = H Splitter Box();
TabPage1 = Tab Page Box();
Scroll1 = Scroll Box();
Report1 = Platform(
DataTable1,
Distribution(
Stack( 1 ),
Continuous Distribution( Column( :height ), Horizontal Layout( 1 ), Vertical( 0 ), Customize Summary Statistics( Sum( 1 ) ) ),
Continuous Distribution( Column( :weight ), Horizontal Layout( 1 ), Vertical( 0 ), Customize Summary Statistics( Sum( 1 ) ) )
)
);
TabPage2 = Tab Page Box();
Scroll2 = Scroll Box();
Report2 = Platform(
DataTable1,
Graph Builder(
Size( 607, 535 ),
Show Control Panel( 0 ),
Fit to Window,
Grid Color( "White" ),
Level Spacing Color( "White" ),
Graph Spacing( 5 ),
Spacing Borders( 1 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
)
);
),
Organize(
Reparent( Scroll2( Report2 ) );
Reparent( TabPage2( Scroll2 ) );
Reparent( Splitter1( TabPage2 ) );
Reparent( Scroll1( Report1 ) );
Reparent( TabPage1( Scroll1 ) );
Reparent( Splitter1( TabPage1 ) );
Reparent( TabPage3( Splitter1 ) );
Relocate( TabPage3( 0, 0 ) );
),
Initialize(
TabPage3 << Background Color( "None" ), TabPage3 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
TabPage3 << Enabled( 1 ), TabPage3 << Horizontal Alignment( "Default" ),
TabPage3 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
TabPage3 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), TabPage3 << Text Color( "None" ), TabPage3 << UI Only( 0 ),
TabPage3 << Vertical Alignment( "Default" ), TabPage3 << Visibility( "Visible" ), TabPage3 << Set Min Size( 262, 128 ),
TabPage3 << Set Max Size( 30000, 30000 ), TabPage3 << Set Stretch( {"Neutral", "Neutral"} ), TabPage3 << Title( "Dashboard" ),
TabPage3 << Tip( "" ), TabPage3 << Icon( "" ), TabPage3 << Closeable( 0 ), TabPage3 << Moveable( 0 ),
TabPage3 << Set Base Font( "Text" ), TabPage3 << Set Font Scale( 1 ), Splitter1 << Background Color( "None" ),
Splitter1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Splitter1 << Enabled( 1 ),
Splitter1 << Horizontal Alignment( "Default" ), Splitter1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
Splitter1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Splitter1 << Text Color( "None" ), Splitter1 << UI Only( 0 ),
Splitter1 << Vertical Alignment( "Default" ), Splitter1 << Visibility( "Visible" ), Splitter1 << Dockable( 1 ),
Splitter1 << Set Width( 1487 ), Splitter1 << Set Height( 607 ), Splitter1 << Set Sizes( {0.532345013477089, 0.467654986522911} ),
Splitter1 << Set Min Size( 262, 102 ), Splitter1 << Set Max Size( 60003, 30000 ), Splitter1 << Set Stretch( {"Window", "Window"} ),
Splitter1 << set horizontal( 1 ), TabPage1 << Background Color( "None" ),
TabPage1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), TabPage1 << Enabled( 1 ),
TabPage1 << Horizontal Alignment( "Default" ), TabPage1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
TabPage1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), TabPage1 << Text Color( "None" ), TabPage1 << UI Only( 0 ),
TabPage1 << Vertical Alignment( "Default" ), TabPage1 << Visibility( "Visible" ), TabPage1 << Set Min Size( 72, 62 ),
TabPage1 << Set Max Size( 30000, 30000 ), TabPage1 << Set Stretch( {"Neutral", "Neutral"} ), TabPage1 << Title( "Distributions" ),
TabPage1 << Tip( "" ), TabPage1 << Icon( "Distrib" ), TabPage1 << Closeable( 1 ), TabPage1 << Moveable( 1 ),
TabPage1 << Set Base Font( "Text" ), TabPage1 << Set Font Scale( 1 ), Scroll1 << Background Color( "None" ),
Scroll1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Scroll1 << Enabled( 1 ),
Scroll1 << Horizontal Alignment( "Default" ), Scroll1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
Scroll1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Scroll1 << Text Color( "None" ), Scroll1 << UI Only( 0 ),
Scroll1 << User Resizable( {1, 1} ), Scroll1 << Vertical Alignment( "Default" ), Scroll1 << Visibility( "Visible" ),
Scroll1 << Set Min Size( 72, 36 ), Scroll1 << Set Max Size( 30000, 30000 ), Scroll1 << Set Stretch( {"Window", "Window"} ),
Scroll1 << Width( 790 ), Scroll1 << Height( 581 ), Scroll1 << Set Auto Scrollable( 1 ), Scroll1 << Set Scrollers( 1, 1 ),
Scroll1 << Set Show Empty( 0 ), Scroll1 << Set Clip Printing( 0 ), Report1 << Background Color( "None" ),
Report1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Report1 << Enabled( 1 ),
Report1 << Horizontal Alignment( "Default" ), Report1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
Report1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Report1 << Text Color( "None" ), Report1 << UI Only( 0 ),
Report1 << Vertical Alignment( "Default" ), Report1 << Visibility( "Visible" ), Report1 << Set Min Size( 707, 498 ),
Report1 << Set Max Size( 707, 498 ), Report1 << Set Stretch( {"Neutral", "Neutral"} ), Report1 << set horizontal( 0 ),
TabPage2 << Background Color( "None" ), TabPage2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
TabPage2 << Enabled( 1 ), TabPage2 << Horizontal Alignment( "Default" ),
TabPage2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
TabPage2 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), TabPage2 << Text Color( "None" ), TabPage2 << UI Only( 0 ),
TabPage2 << Vertical Alignment( "Default" ), TabPage2 << Visibility( "Visible" ), TabPage2 << Set Min Size( 187, 102 ),
TabPage2 << Set Max Size( 30000, 30000 ), TabPage2 << Set Stretch( {"Neutral", "Neutral"} ), TabPage2 << Title( "Graph Builder" ),
TabPage2 << Tip( "" ), TabPage2 << Icon( "Trellis" ), TabPage2 << Closeable( 1 ), TabPage2 << Moveable( 1 ),
TabPage2 << Set Base Font( "Text" ), TabPage2 << Set Font Scale( 1 ), Scroll2 << Background Color( "None" ),
Scroll2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Scroll2 << Enabled( 1 ),
Scroll2 << Horizontal Alignment( "Default" ), Scroll2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
Scroll2 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Scroll2 << Text Color( "None" ), Scroll2 << UI Only( 0 ),
Scroll2 << User Resizable( {1, 1} ), Scroll2 << Vertical Alignment( "Default" ), Scroll2 << Visibility( "Visible" ),
Scroll2 << Set Min Size( 187, 76 ), Scroll2 << Set Max Size( 30087, 30001 ), Scroll2 << Set Stretch( {"Window", "Window"} ),
Scroll2 << Width( 694 ), Scroll2 << Height( 581 ), Scroll2 << Set Auto Scrollable( 1 ), Scroll2 << Set Scrollers( 0, 0 ),
Scroll2 << Set Show Empty( 0 ), Scroll2 << Set Clip Printing( 0 ), Report2 << Background Color( "None" ),
Report2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Report2 << Enabled( 1 ),
Report2 << Horizontal Alignment( "Default" ), Report2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
Report2 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ), Report2 << Text Color( "None" ), Report2 << UI Only( 0 ),
Report2 << Vertical Alignment( "Default" ), Report2 << Visibility( "Visible" ), Report2 << Set Min Size( 187, 76 ),
Report2 << Set Max Size( 30087, 30001 ), Report2 << Set Stretch( {"Neutral", "Neutral"} ), Report2 << set horizontal( 0 )
)
)
),
Initialize(
Module1 << Auto Launch( 1 );
Module1 << Set Module Type( "Report" );
Module1 << Set Window Title( "^TABLENAME - ^APPNAME" );
)
) << Run;
rdash = dash << get windows;
dashpic = rdash << get picture;
rdash << close window;
Close( dt, nosave );
//create a table for the pictures
dt2 = New Table( "big class summary" );
dt2 << New Column( "ID", numeric, "nominal", formula( Row() ) );
dt2 << New Column( "pic", expression );
dt2 << add rows( 3 );
dt2 << set label columns( :pic );
dt2 << new table script(
"graph",
Graph Builder(
Size( 495, 450 ),
Show Control Panel( 0 ),
Grid Color( "White" ),
Level Spacing Color( "White" ),
Graph Spacing( 5 ),
Spacing Borders( 1 ),
Variables( X( :ID ) ),
Elements( Points( X, Legend( 4 ) ) )
)
);
//add pictures
dt2:pic[1] = gbpic;
dt2:pic[2] = dashpic;
//remove {}'s from the dashboard script
//remove initial open bracket, {
dashpic1 = Munger( Char( dashpic ), 1, "{", "" );
//remove last closing bracket, }
dashpic2 = Munger( Char( dashpic1 ), 1, "}", "" );
//add picture to row 3
dt2:pic[3] = Eval( Parse( dashpic2 ) );