Usi le preferenze?Tramite File/Preferenze è possibile modificare le impostazioni standard di Jmp.
Molto interessante adattare Jmp alle tue esigenze:)
Ma ho riscontrato un problema sottile, in combinazione con la funzionalità per generare automaticamente codice JSL (salvataggio su script, registro avanzato, dashboard, registro, generatore di flussi di lavoro...)
Il codice seguente modifica le preferenze, quindi pensaci due volte se vuoi provarlo.
La storia:
Un utente regola alcune impostazioni (Impostazione mantenimento asse condizionale e commutatore di colonna) tramite File/Preferenze
- quindi genera un report con l'impostazione predefinita (deve farlo manualmente, nessuna possibilità di generare il codice tramite il registro avanzato):
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Set Preferences(
Data Filter Conditional( 1 ),
Column Switcher Retain Axis Setting( 1 )
);
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional(0),
Add Filter(
columns( :sex, :name )
)
),
Column Switcher( :weight, {:age, :weight}, Retain Axis Settings( 0 ) )
)Quindi modifica il report in modo interattivo tramite la GUI e salva lo script (utilizzando la funzionalità di registro avanzata di JMP).
Lo script generato sarà simile al seguente:
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :name ),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
Column Switcher( :weight, {:age, :weight} )
)Notare che:
Condizionale(0) -> rimosso automaticamente!
Retain Axis Settings( 0 ) -> removed automatically!
The finding:
Default settings are automatically removed from the code - "poiché non avranno effetto per un sistema standard".
Lo stesso accade se l'utente utilizza il Report all'interno di una Dashboard (!): le impostazioni predefinite non verranno aggiunte.
Ora l'utente esegue nuovamente il codice: immagina come apparirà il report...
Posso capire perché è così: non è un bug, è una caratteristica interessante che Jmp pulisce automaticamente il codice per rimuovere le righe non necessarie.
Ma in combinazione con un utente che osa modificare le impostazioni nelle preferenze, si comporta sicuramente come un bug: un bug grave!
La mia soluzione attuale: cambia semplicemente le preferenze dove sei sicuro che non utilizzerai MAI (!!!) l'impostazione predefinita.
Questa regola è dannosa, soprattutto nei casi in cui utilizzo l'impostazione modificata nel 99% dei casi e l'1% nell'impostazione predefinita.
Quindi, la regola non mi consente di modificare le preferenze. Sono costretto a convivere con l'impostazione predefinita e devo regolare manualmente l'impostazione nel 99% dei casi.
Esiste una soluzione migliore: come risolvi questo problema nella vita lavorativa quotidiana?
Automazione e scriptingRe: Usi le preferenze?Secondo il supporto Jmp (TS-00061254):
funziona come previsto.
COSÌ:
Con le impostazioni CAMBIATE nelle preferenze, un utente perde la possibilità di utilizzare Dashboard Builder per generare dashboard che aprono piattaforme sul suo sistema con impostazioni STANDARD 
Soluzione alternativa:
Apri lo script sorgente della Dashboard e aggiungi manualmente il codice per l'impostazione standard.
Re: Usi le preferenze?Il supporto di Jmp ha suggerito di scrivere un post per la lista dei desideri.
Ecco qui:
Impostazioni modificate nelle Preferenze -> risolvi il problema
Re: Usi le preferenze?@hogi , ho provato il tuo codice e ho capito cosa intendi. dopo aver modificato la preferenza per il filtro e il commutatore di colonna e quindi utilizzando le scelte che corrispondono alle preferenze predefinite (non alla preferenza corrente), si crea un report. Quindi il salvataggio dello script non si preoccupa di includere le impostazioni che corrispondono a quelle predefinite, quindi lo script non riproduce il tuo rapporto. E lo stai interpretando (e il supporto ha affermato?) che questo è intenzionale per ripulire tutto ciò che non sarebbe necessario se avessi lasciato il tuo sistema con le preferenze predefinite ? cioè. Il condizionale (0) non è incluso perché non sarebbe necessario se avessi una preferenza predefinita anche se è rilevante al momento?
Ma non è quello che vedo per le preferenze dello stesso Graph Builder. Se cambio la mia preferenza per Graph Builder per non mostrare il titolo, ad esempio, e poi creo un graph builder e chiedo (in JSL o manualmente dopo il fatto) di mostrare il titolo, ottengo uno script con showtitle(1) incluso . Il tipo di impostazione ridondante che condizionale(0) potrebbe essere vista come quella di cui non hai bisogno se hai preferenze predefinite. Penso che quello che vedo in generale è che non include impostazioni che non sono necessarie con le preferenze che ho attualmente. Ora che ho disattivato la visualizzazione del titolo nelle mie Preferenze, se chiedo showtitle(0) non si preoccupa di menzionarlo nello script.
Quindi, sembrano 2 problemi: (1) potresti voler catturare tutte le opzioni indipendentemente dal fatto che corrispondano o meno alle tue preferenze e (2) mi sembra che le opzioni di tipo "ottieni script" trattino il filtro e il commutatore di colonne in modo diverso da trattano il resto della piattaforma. non riesce a fornirti uno script che funzioni con le tue preferenze attuali come fa per le preferenze della piattaforma. Posso comprendere che la rimozione delle clausole non necessarie sia intenzionale, ma non che la definizione di non necessario sia diversa per filter rispetto a settitle().?
2. Mi sembra un bug il fatto che stia eliminando le cose non perché siano uguali alle preferenze attuali ma perché siano uguali alle impostazioni predefinite.
1. sembra che sia effettivamente simile alla voce della mia lista dei desideri su Usa separatore di migliaia ( interroga Usa separatore di migliaia utilizzando JSL - JMP User Community ), dove forse una soluzione potrebbe essere un'opzione per restituire uno script più dettagliato, uno che non lo fa non eliminare nulla che sia semplicemente "uguale alle preferenze".
Ottimo, ora le mie preferenze sono tutte incasinate... 
Re: Usi le preferenze?Concordo al 100% 
soprattutto il
- Capisco che la rimozione di clausole non necessarie sia intenzionale
- ma non che la definizione di non necessario sia diversa per filter che per settitle().?
ci sono molte altre impostazioni che si comportano come il commutatore di colonne e il filtro dati, anche impostazioni che influiscono direttamente sul Costruttore di grafici:
Se modifichi le impostazioni predefinite per Statistiche riassuntive, Spaziatura grafico ecc. nelle preferenze, tutto il codice JSL generato automaticamente avrà una sezione con:
Statistica riassuntiva( "Mediana" ),
Spaziatura grafico( 4 )
... finché non provi a reimpostarlo sui valori predefiniti. Se selezioni l'impostazione predefinita, le impostazioni non verranno visualizzate nello script JSL generato, con un problema simile come Condizionale: nessuna possibilità di generare automaticamente un codice JSL con le impostazioni predefinite.
Re: Usi le preferenze?Poiché c'è così tanto spazio in mezzo
- eliminare le clausole "non necessarie".
- scrivere tutte le impostazioni in modo tale che il risultato sia lo stesso su QUALSIASI sistema, indipendentemente dalle impostazioni correnti.
Quindi, che ne dici di verbose(0), verbose(0.3), verbose (0.5), verbose(0.7), verbose(1)
- 0: elimina tutto il codice "non necessario" come adesso - modalità compatibilità
- 0.3: genera tutto il codice JSL necessario per generare lo stesso risultato su questo sistema. [risolve il problema con il condizionale]
- 0.5: genera tutto il codice JSL necessario per generare lo stesso risultato su un sistema predefinito . [risolve il problema con l'impostazione del gradiente definita dall'utente]
- 0,7: in base ai grafici/report generati degli ultimi 6 mesi, include tutte le impostazioni modificate >= 3 volte. Genera un codice resistente a tutte le impostazioni.
- 1: codice JSL resistente a qualsiasi impostazione nelle preferenze.
0.7: super utile - il mio preferito!
- chi se ne frega di 5 righe di codice aggiuntive - se genereranno un risultato più robusto su qualsiasi sistema dei tuoi colleghi.
- quanto spesso hai generato un concatenato e in seguito ti sei chiesto l'esatta formulazione di append to main table(1) ?
Re: Utilizzi le preferenze?Un collega ha trovato un bell'esempio che mostra un bug simile causato da un conflitto tra diverse impostazioni in Graph Builder:
Un utente non può definire un'impostazione come STANDARD se a un livello superiore viene applicata un'impostazione non standard.
In Graph Builder è presente un controllo per le impostazioni degli assi e, all'interno delle impostazioni degli assi, è presente un controllo per le linee di riferimento.
Le linee di riferimento sembrano ereditare le impostazioni del carattere dalle impostazioni degli assi.
L'unico modo per "eliminare" un'impostazione ereditata è applicare un'impostazione non standard e sovrascrivere così l'impostazione ereditata.
Difficile da spiegare, ma facile da "vivere":
Il testo dell'etichetta "standard" dovrebbe essere "standard", non in grassetto: esegui il codice e prova la fortuna:

dt = new table("test", new column ("X"));
Graph Builder(
Size( 469, 260 ),
Graph Spacing( 4 ),
Variables( X( :X ) ),
Elements( Points( X, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, {:X}, ScaleBox,
{Min( 0 ), Max( 50 ), Inc( 10 ), Minor Ticks( 1 ),
Add Ref Line(
20,
"Solid",
"Black",
"italic",
1,
1,
Label Settings( {Set Font Style( "Italic" )} )
), Add Ref Line( 30, "Solid", "Black", "standard", 1 ),
Label Row( Set Font Style( "Bold" ) )}
)
)
);
Un problema simile si verifica con le preferenze e le impostazioni personalizzate. Quando un'impostazione nelle preferenze differisce da quella standard, l'utente è costretto a utilizzarla. È improbabile che un report venga forzato a utilizzare le impostazioni standard, soprattutto dopo che il report è stato modificato e lo script è stato salvato. È in questo momento che la funzionalità "ripristina impostazioni standard" viene persa.
Ancora peggio con le linee di riferimento: nessuna possibilità di reimpostare l'impostazione?
Re: Utilizzi le preferenze?Un conflitto simile esiste per le impostazioni dei marcatori e dei colori nel generatore di grafici:
Esistono diversi modi per regolare le impostazioni dei marcatori:
- stato di riga per singole righe
- impostazioni dei marcatori tramite il menu legenda in Graph Builder
- impostazioni del marcatore globale nel menu delle preferenze
[ciò che non è possibile in JMP 19 è controllare le impostazioni dei marcatori tramite una proprietà di colonna: "Marcatori di valore " -> segui il link e vota!]
I problemi:
Le impostazioni tramite il menu della legenda sostituiscono le impostazioni degli stati delle righe .
L'eccezione è il marcatore predefinito . Se nel menu della legenda viene selezionato il marcatore standard, JMP presume che l'utente voglia "reimpostare" le impostazioni, quindi il comando verrà "ignorato" e l'impostazione del marcatore degli stati di riga tornerà attiva. L'unico modo per "combattere" gli stati di riga è assegnare un marcatore speciale . Non è possibile ignorare gli stati di riga con il "marcatore predefinito".
Similarly, settings via the legend menu override the settings in the preferenze.
The exception is again the default marker. If the setting is switched to the standard marker, JMP assumes that the user wants to 'reset' the settings, so the preferences will be activated again. Consequently, one must assign a marcatore non standard to override the settings in the preferences. It is not possible to overrule marker settings from the preferences with a 'default marker': In the vide, the user selects "dot" - and Graph Builder uses "FilledSquare" (from the preferences).
My recommendation: don't touch the marker setting in the preferences!!
Lo stesso vale per i colori :
non è possibile sostituire il colore dello stato di una riga con il nero (il colore predefinito).
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 10 ), Marker Drawing Mode( "Outlined" )} ),
Dispatch( {}, "400", LegendBox, {Legend Position( {1, [2, 3], 2, [0, 1]} )} )
)
);
wait(2);
// Set selected rows' markers
dt << Clear Select << Select Rows( [5] ) << Markers( "Circle" );
wait(2);
// please go to the preferences and set it back after running this code:
Set Preferences( Graph Marker( "FilledSquare" ));