Come ridimensionare le dimensioni del pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaCiao a tutti,
Speravo che qualcuno potesse aiutarmi a capire il codice per ridimensionare il pannello nel generatore di grafici.
Questo è tratto dal set di dati della grande classe:

Se volessi impostare una dimensione molto più grande usando JSL (la finestra di adattamento automatico è disattivata) in qualcosa del genere:

come potrei riuscirci?
Il motivo per cui ho bisogno di questa funzionalità è che attualmente se si utilizza un filtro per la colonna "Pagina", i grafici diventano sempre più piccoli più livelli si hanno. Quando si hanno un sacco di livelli, può diventare così piccolo che non si riesce nemmeno a vedere la maniglia per ridimensionare i Pannelli. Quindi devo selezionare alcuni livelli, ridimensionare, selezionare altri livelli, ridimensionare, ecc... Molto fastidioso e rimuove parte della grandiosità di questa nuova capacità di Graph Builder. D'altro canto, se si hanno un sacco di livelli dimensionati proprio mentre si rimuovono i livelli nel filtro, i grafici diventano sempre più grandi.
Quindi voglio avere una casella di input tramite JSL in cui posso modificare le dimensioni in modo semplice e veloce.
Spero che tutto questo abbia senso e grazie per qualsiasi idea!
Steve
Automazione e scriptingEsplorazione e visualizzazione dei datiRe: Come ridimensionare il pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaVolevo aggiungere dove sono arrivato in base al tuo codice, ovvero creare una finestra mobile in cui posso ridimensionare interattivamente i pannelli a mio piacimento:
//rev 5-5-24
Names Default To Here(1);
dt=current data table();
obj=current report()["Graph Builder"]<< get scriptable object;
obj1 = obj << Get Window Title;
s = Window(obj1)<< Get Window Size();
nw = New Window("Resize Graph Builder Page Panels",Show Menu( 0 ),Show Toolbars( 0 ),
V List Box(
h list box(
vlist box(
text box("frame Size Y"),
neb1=Number Edit Box( 250 );
),
vlistbox(
textbox("frame Size X"),
neb2=Number Edit Box( 350 );
)
),
Button Box("Update Frames",
Report(obj)<< Fit to Window("Off");
nebval1=neb1 << Get;
nebval2=neb2 << Get;
(Report(obj) << XPath("//FrameBox")) << Frame Size(nebval2, nebval1);
window(obj1) << Set Window Size( s );
),
)
);
nw << Size Window( 400, 200 );
window(obj) << On Close(window("Resize Graph Builder Page Panels")<<CLOSE window=""></CLOSE>Re: Come ridimensionare il pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaFunziona benissimo, grazie!!
Re: Come ridimensionare il pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaDeve essere attivato in qualche modo, molto probabilmente da un controllo o gestore (in questo esempio, puoi ad esempio chiamare la stessa funzione prima che venga applicato il gestore del filtro con qualcosa come f(0) )
Vedi altro...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
change_frame_size = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
change_frame_size(0);
rs = ldf << Make Filter Change Handler(change_frame_size);
Di seguito è riportato il caso più semplice in cui viene attivato premendo un pulsante
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
Button Box("Update Frames",
(Report(window:gb) << XPath("//FrameBox")) << Frame Size(300, 300);
),
window:gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92))),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
)
)
)
);
Re: Come ridimensionare il pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaGrazie Jarmo! È molto simile, ma sembra che quando eseguo questa sezione del codice con una nuova dimensione:
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);quel generatore di grafici non aggiorna le dimensioni dei grafici finché non cambio le opzioni del filtro. C'è un modo per forzare il grafico ad aggiornare le dimensioni senza dover cambiare il filtro?
Il piano è di avere una finestra mobile in cui posso inserire diverse dimensioni di frame a seconda di quanti livelli ho selezionato una volta completata la selezione.
Grazie per ogni ulteriore contributo!
Re: Come ridimensionare il pannello Graph Builder quando si utilizza l'organizzazione Pagina/Disponi in rigaNon sono sicuro che ci siano altre opzioni oltre al controllo tramite JSL, ma puoi cambiare la dimensione del frame (se non c'è, potrebbe valere la pena di creare un elemento nella lista dei desideri. "Blocca dimensione finestra" per i filtri dati poiché abbiamo già "Blocca scale")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(300, 300);
);
rs = ldf << Make Filter Change Handler(f);
Potresti voler aggiungere una sorta di "forzatura delle dimensioni" al generatore di grafici/alla finestra, in modo che quest'ultima non continui a ridimensionarsi.