Je crée des images à partir de Graph Builder et d'un tableau de bord à l'aide de la fonction "obtenir une image" dans JSL et j'insère les images dans une colonne d'expression d'une table.Tout fonctionne comme prévu lorsque vous effectuez cette opération à partir de Graph Builder.Mais lorsque j'utilise la fonction "obtenir une image" à partir d'un tableau de bord, ma colonne d'expression n'inclut pas d'image mais à la place un script qui ressemble à : "{New Image(Char to Blob(....)}").
Si j'utilise JSL pour supprimer le crochet ouvrant (c'est-à-dire "{" ) et le crochet fermant (c'est-à-dire "}" ), utilisez JSL qui ressemble à : eval(parse( "New Image..." )), alors tout fonctionne et j'obtiens mon tableau de bord sous forme d'image dans la colonne d'expression.Des idées sur ce qui se passe ou sur ce que je devrais faire différemment ?BTW, j'utilise JMP 17.1.
J'ai généré un exemple à l'aide de l'exemple de jeu de données Big Class.Le tableau récapitulatif avec la colonne d'expression a un script graphique qui vous permet de survoler les points pour voir les graphiques.
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 ) );