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

Se volessi impostare la dimensione in modo che sia molto più grande utilizzando JSL (la finestra di adattamento automatico è disattivata) in qualcosa del genere:

come potrei realizzarlo?
Il motivo per cui ho bisogno di questa funzionalità è che attualmente se usi un filtro per la colonna "Pagina", i grafici diventano sempre più piccoli quanto più livelli hai. Quando hai un sacco di livelli, può diventare così piccolo che non puoi nemmeno vedere la maniglia per ridimensionare i pannelli. Quindi devo selezionare alcuni livelli, ridimensionare, selezionare altri livelli, ridimensionare, ecc... Molto fastidioso e rimuove parte della bellezza di questa nuova abilità del Generatore di grafici. D'altro canto, se hai un sacco di livelli dimensionati correttamente quando rimuovi i livelli nel filtro, i grafici diventano sempre più grandi.
Quindi voglio poter avere una casella di input tramite JSL in cui posso modificare il dimensionamento in modo facile e veloce.
Spero che questo abbia senso e grazie per tutte le idee!
Steve
Automazione e scriptingEsplorazione e visualizzazione dei datiRi: Come ridimensionare le dimensioni del pannello di creazione grafici quando si utilizza l'organizzazione Pagina/disponi in righeDeve essere attivato in qualche modo, molto probabilmente da qualche controllo o gestore (in quell'esempio, puoi ad esempio chiamare la stessa funzione prima che il gestore del filtro venga applicato con qualcosa come f(0) )
Visualizza 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))
)
)
)
)
);
Ri: Come ridimensionare le dimensioni del pannello di creazione grafici quando si utilizza l'organizzazione Pagina/disponi in righeNon sono sicuro che ci siano altre opzioni oltre al controllo tramite JSL, ma puoi modificare la dimensione del frame (se non c'è potrebbe valere la pena creare la voce della lista dei desideri. "Blocca dimensione finestra" per i filtri dati come già abbiamo fatto avere "scale di blocco")
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 tua finestra in modo che la finestra non continui a ridimensionarsi.
Ri: Come ridimensionare le dimensioni del pannello di creazione grafici quando si utilizza l'organizzazione Pagina/disponi in righeGrazie Jarmo! Questo è molto vicino 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 la dimensione dei grafici finché non modifico le opzioni del filtro. C'è un modo per forzare il grafico ad aggiornare le dimensioni senza che sia necessario modificare il filtro?
Il piano è quello di avere una finestra mobile in cui posso inserire diverse dimensioni di frame a seconda del numero di livelli che ho selezionato una volta completata la selezione.
Grazie per qualsiasi input aggiuntivo!
Ri: Come ridimensionare le dimensioni del pannello di creazione grafici quando si utilizza l'organizzazione Pagina/disponi in righeFunziona a meraviglia, grazie!!
Ri: Come ridimensionare le dimensioni del pannello di creazione grafici quando si utilizza l'organizzazione Pagina/disponi in righeVolevo aggiungere dove sono finito in base al tuo codice, fornire una finestra mobile in cui posso dimensionare in modo interattivo 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>