Avevo un JSL per creare una finestra per mostrare molti Graph Builder, poiché ho utilizzato il linguaggio where per filtrare i dati, la nuova finestra creerà automaticamente una casella di testo ("Where :CID == a[1][g] & :VARABLE == a[2][g] & :WNDOW==a[3][g] & :SATISTIC==a[4][g] & :CLLECTION_NAME==a[5][g]"), voglio impostare questa proprietà della casella di testo "Collapse". Puoi darmi una soluzione, grazie mille.
Tabella dati( "FSS" ):RUN_START_DATE << Tipo dati(Numerico, Formato( "aaaammgg", 8 ), Formato di input( "aaaammgg" )) << Imposta tipo di modellazione( "Continuo" );
riepilogare(a=by(:CED,:VARABLE,:WNDOW,:SATISTIC,:CLLECTION_NAME),b=min(:LOWER_CRITICA),c=max(:UPPER_CRITICA));
n=nielementi(b);
FDCD=nuova finestra("FDC", vlb=v list Box());
Per( i = 1, i <= n, i=i+j-1,
hlb= h Casella di riepilogo(
per(j=1, j<=4,j++,
g=i+j-1;
grafico = Costruttore di grafici(
Dimensioni (400, 300),
Mostra pannello di controllo (0),
Mostra titolo (0),
Dove( :CID == a[1][g] & :VARABLE == a[2][g] & :WNDOW==a[3][g] & :SATISTIC==a[4][g] & :CLLECTION_NAME==a[5][g]),
Mostra dove( 0 ),
Variabili(
X( :DATE_INIZIO_ESECUZIONE ),
Y( :VALORE ),
Gruppo X( :ENTITÀ ),
Sovrapposizione( :RICETTA ),
),
Elementi (Punti (X, Y, Legenda (10)), Smoother (X, Y, Legenda (11))),
Invia a Segnalazione(
Dispatch({},"Graph Builder",OutlineBox,{Imposta titolo( a[1][g]||"|"||a[2][g]||"|"||a[3][g]||"|"||a[4][g] ), Visualizzazione esportazione immagine( Normale )}),
Dispatch({},"RUN_START_DATE",ScaleBox,{ Intervallo( "Giorno" ),Inc( 3 ), Tick minori( 1 )}),
Dispatch({},"VALORE",ScaleBox,{//Max(c[i]+(c[i]-b[i])*0.1,:VALORE*1.1), Min( b[i]+(c[i]-b[i])*0.1,:VALORE*0.9 ),
Aggiungi linea di riferimento (c[g], "Tratteggiata", "Rosso", "UCL", 1),
Aggiungi linea di riferimento (b[g], "Tratteggiata", "Rosso", "LCL", 1 )})
)
);
);
);
vlb<
);
Ci sono molti vecchi post che hanno soluzioni per questo. Il mio metodo preferito è usare XPath
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb = dt << Graph Builder(
Show Control Panel(0),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == "M")
),
gb = dt << Graph Builder(
Show Control Panel(0),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == "F")
)
)
);
wait(1);
where_teb = nw << XPath("//TextBox[contains(text(), 'Where(')]");
where_teb << Visibility("Collapse");
puoi rendere XPath più robusto se sai quale colonna viene utilizzata per il filtraggio o quali valori vengono filtrati
Mi rendo conto che questo è un vecchio post, ma sto cercando di usare questo metodo per rimuovere le istruzioni "Where" dai grafici di controllo che sto generando, ma la mia espressione XPath sembra restituire sempre una lista vuota, anche se riduco la ricerca solo per oggetti TextBox senza criteri di filtro. Per dare una panoramica del mio script, ho una tabella dati impilata. Inizio creando una finestra e inserendo una VListBox.
CtrlChart = New Window("Trend Charts",
vlbreport = V List Box("Trend Review");
);
Quindi, utilizzo un ciclo per aggiungere grafici di controllo a vlbreport come singole caselle di elenco V.
vlbreport << Append(
V List Box(
Control Chart Builder( **Control chart setting here) ); );
Quindi, dopo un comando wait per assicurarmi che la finestra sia completamente popolata, provo a usare XPath per semplicemente inviare un feedback a tutte le caselle di testo, ma continuo a non ottenere risultati.
allbox = CtrlChart << XPath("//Textbox");
Attualmente, allbox viene restituito come {}. Se uso "Mostra struttura ad albero" su CtrlChart, riesco a vedere la struttura completa, inclusi tutti gli oggetti TextBox al suo interno, ma non seleziona nulla. Hai qualche idea sul perché ciò accada? Mi piace l'idea di usare XPath per isolare le caselle Where perché è una soluzione davvero dinamica che può essere applicata a tutti i miei script formattati in questo modo. Tuttavia, ho poca o nessuna familiarità con XPath. Le mie conoscenze di scripting in generale derivano da molti tentativi ed errori, ricerche su Google e dalla guida allo scripting.
È una casella di testo, non una casella di testo (B maiuscola) in XPath
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = {"NPN1", "PNP1", "PNP2"};
nw = New Window("Trend Charts",
vlb = V List Box()
);
For Each({colname}, cols,
vlb << Append(
ccb = dt << Control Chart Builder(
Show Limit Summaries(0),
Show Capability(0),
Variables(Y(Eval(colname))),
Show Control Panel(0),
Where(:Site == 1)
)
);
);
Show(nw << XPath("//Textbox[contains(text(), 'Where(')]"));
Show(nw << XPath("//TextBox[contains(text(), 'Where(')]"));
Una svista così banale. Grazie per averla notata! Ora funziona e non potrei essere più felice. Quelle caselle di testo sono particolarmente fastidiose quando si esportano grafici in un PPT. JMP ha davvero bisogno di un'impostazione per nasconderle, quindi questo tipo di soluzione alternativa non sarebbe necessaria.