Non riesco a capire come "lavorare" quando selezioni un elemento nel filtro dati. Quando seleziono una condizione, vorrei che lo script andasse alla mia tabella dei limiti e quindi popolasse un'espressione che utilizzo per uno script grafico. Questo cambierà in base all'istruzione "where" del filtro dati. Non so come fare in modo che lo script attivi questa azione o come eliminarla se dovessi passare a una diversa selezione del filtro dati. Mi scuso in anticipo perché non ho l'intero script o una tabella di dati di esempio. Se sono necessarie ulteriori informazioni, farò del mio meglio per ottenerne alcune.
Grazie
// Step 1: Go to the textbox with "Where" statement
Try( test = Report( gb1_S.2 )[Text Box( 5 )] << Get Text );
graph = dt_lim << Get Rows Where( Contains( test, :SPEC_COL_NAMES ) );
// Step 2: If a condition exists, populate the following
f1 = Column( dt_lim, "StartF" )[graph][1]; // x1 for a Marker and starting point for the line
f2 = Column( dt_lim, "StartF" )[graph][2]; // x2 for a Marker and starting point for the line
s1 = (Column( dt_lim, "LSL" )[graph])[1]; // y1 (LSL) for the Line
s2 = (Column( dt_lim, "USL" )[graph])[1]; // y2 (USL) for the Line
color = "Red";
test = Expr(
graph_expr = Eval Insert(
"\[Graph_Script = Expr(
Marker Size( 6 );
Marker( Marker State( 20 ), Color State( "^color^" ), {^f1^, ^s1^}, {^f2^, ^s2^} );
Pen Color( "^color^" );
Line( {^f1^, ^s1^}, {^f2^, ^s2^} );
)]\"
);
Eval( Parse( graph_expr ) );
);
<BR /><BR />// Step 3: Execute the Graphics script<BR /><BR />Report( gb1_S.2 )[Framebox( 1 )] << Add Graphics Script( Graph_Script );Dai un'occhiata a Make Filter Change Handler da Scripting Index su come attivare un'azione quando viene modificata la selezione del filtro.
Esempio dall'indice di scripting:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
dist = Distribution(Automatic Recalc(1), Continuous Distribution(Column(:POP)));
filter = dist << Local Data Filter(Add Filter(columns(:Region)));
f = Function({a}, Print(a));
rs = filter << Make Filter Change Handler(f);