Ho dei grafici tracciati e vorrei avere uno script di tabella che posso usare per rimuovere gli assi e inviare i valori dell'asse x del grafico al titolo del grafico prima che venga salvato come PPT. Non voglio nascondere gli assi nei grafici fino a quando non ho avuto la possibilità di ridimensionarli manualmente (troppa variazione nei dati per utilizzare i valori impostati), quindi posso usarli in seguito come grafici a inserto per le presentazioni. È fattibile?
Ecco i 2 pezzi di codice che rimuoveranno gli assi e quindi il codice per visualizzare nuovamente gli assi
Names Default To Here( 1 );
obj = Current Report();
(obj << xpath( "//AxisBox" )) << visibility( "collapse" );
Names Default To Here( 1 );
obj = Current Report();
(obj << xpath( "//AxisBox" )) << visibility( "visible" );
Inoltre @txnelson ecco un esempio di come potrebbe funzionare.
L'uso di XPath è un po' complicato, perché affronterà tutti gli elementi di quel tipo, è necessario cercare quale (o tutti) in particolare modificare/valutare.
Per ottenere i valori x (min max) la mia idea migliore era valutare lo script. Potrebbe esserci un'altra opzione.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Graph Spacing( 5 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
obj << bring window to front();
Wait( 1 );
// change the x-axis of the graph
obj << SendToReport( Dispatch( {}, "height", ScaleBox, {Min( 60.50 ), Max( 65 ), Inc( 2 ), Minor Ticks( 0 )} ) );
Wait( 3 );
// get title of x-axis and show result in log
x_axis_text = (obj << xpath( "//TextEditBox" ))[3] << get text();
Show( x_axis_text );
// collapse x-axis
(obj << xpath( "//AxisBox" ))[1] << visibility( "collapse" );
// get script of Graph Builder to evaluate min and max values
script = obj << get script();
min_txt = Regex( Char( Name Expr( script ) ), "Min\([0-9]+[.]*[0-9]*\)" );
max_txt = Regex( Char( Name Expr( script ) ), "Max\([0-9]+[.]*[0-9]*\)" );
Show( min_txt, Type( max_txt ) );
// set graph title accordingly
(obj << xpath( "//TextEditBox" ))[1] << set text( x_axis_text || " from " || min_txt || " to " || max_txt );