DataTables per applicazioni e dashboardCiao a tutti,
Voglio creare codice per un'applicazione/dashboard. La prima parte del mio codice importa alcune tabelle, esegue alcuni filtri e formattazioni e quindi crea alcuni grafici e report.
Dopo questo vorrei avere un codice generale per creare un'applicazione/dashboard per visualizzare i report che ho creato in precedenza utilizzando le tabelle dati già esistenti (dopo il filtraggio e la formattazione). Non sono riuscito a capirlo tramite script senza che mi venisse chiesto di selezionare le tabelle dati utilizzate per l'analisi o che fossero già incorporate ma in modo errato. In pratica, la tabella dati 1 utilizza la designazione della tabella dati corrente e va bene, ma la seconda che è necessaria diventa incorporata ma essenzialmente è impostata di default su quella non formattata e non filtrata, anche se come variabile la formattata viene sovrascritta sull'originale.
Ho provato anche a salvare le mie tabelle formattate e poi a utilizzare i percorsi completi (variabili globali) per richiamarle, ma quando provo a eseguire il codice mi viene ancora chiesto di selezionare le tabelle in cui voglio creare l'applicazione.
Nel complesso, cerco di renderlo il più generale possibile e di scriverne uno script, poiché ogni volta che viene eseguito, le tabelle dati utilizzate conterranno dati diversi (colonne uguali o quasi uguali ma dati diversi).
Non ho molta esperienza con le dashboard, se non per la creazione di dashboard con il dashboard builder, senza averne scritto uno script completo.
Grazie
Automazione e scriptingFinestreRe: DataTables per applicazioni e dashboardStai utilizzando Application/Dashboard Builder o solo JSL?
Re: DataTables per applicazioni e dashboardPreferirei farlo usando JSL alla fine per tutto. Tuttavia, in questo momento stavo usando JSL per importare le mie tabelle e riformattarle, ma per creare parte del codice per l'applicazione stavo usando l'application/dashboard builder
Re: DataTables per applicazioni e dashboardPuoi fornire la parte JSL dello script e contrassegnare/spiegare con quali parti hai problemi? Da dove prendi i percorsi? L'utente ha una tabella aperta prima di eseguire lo script (è obbligatorio usare current data table())? Inoltre, hai provato a farlo con workflow builder?
Re: DataTables per applicazioni e dashboard
dt1 = Open( "XXXXX.csv" );
If( Not( Is Scriptable( dt1 ) ),
dt1 = Open( "XXXXX.csv" ),);
Wait( 2 );
dt2=Data Table( dt1 ) << Subset(
Rows(
Data Table( dt1 ) <<
Select Where (
:X == "1" & :"Y"n == "2" &
:Z == "3)), All Columns);
Wait( 2 );
dt3 = Open( "YYYY.csv" );
If( Not( Is Scriptable( dt3 ) ),
dt3 = Open( "YYYY.csv" ),);
dt2 << Set Name("MainDataTable");
dt3 << Set Name("SpecTable");<BR />::saveloc_dt2 = Concat Items( {new_folder, "\MainDataTable",".csv"}, "" );<BR />dt2 << Save(saveloc_dt2);<BR />::saveloc_dt3 = Concat Items( {new_folder, "\SpecTable",".csv"}, "" );<BR />dt3 << Save(saveloc_dt3);
Current Data Table( dt2 );
cc = Control Chart Builder(Show Control Panel(0),Show Capability(0),Size(700,450),Show Excluded Region( 0 ),
Variables( Y( :X ) ),
Local Data Filter(
Add Filter(
columns( :Z),
Display( :A, Find( Set Text( "" ) ) ))),
Chart( Position( 1 ), Limits( Shade Zones( 0 ) ) )););
Current Data Table( dt2 );
process_screening = Process Screening(
Process Variables(
:A, :B, :C,
Grouping( :Y ),Control Chart Type( "Indiv and MR" ),Within Sigma( 0 ),Overall Sigma( 0 ),Stability Index( 0 ),Show Tests( 0 ),Out of Spec Count( 1 ),Out of Spec Rate( 1 ),
Latest Out of Spec( 0 ),N Subgroups (0 ),Ppk( 1 ),Cp( 1 ),Cpk(1),Cpm(1),Spec Limits( 1 ),
Use Limits Table(
1,
Data Table( "SpecTable" ),
Process Variables( :Process ),
Grouping( :Z ),
LSL( :LSL ),
USL( :USL ),
Target( :Target ),
Go
),
Goal Plot( 0, Capability Lines( 1.33 ), Shade Levels( 0 ) ),
Process Performance Graph( 0 ));
JMP App(
Set Name( "Application" ),
Set Description(
"An empty workspace for creating custom applications with one or more windows and scripts"
),
Auto Launch( 1 ),
Snap To Grid( 1 ),
Show Grid( 1 ),
Show Properties( 1 ),
Show Sources( 1 ),
Group By Category( 1 ),
Dashboard Mode( 0 ),
Parameters,
Tables(
DataTable2 = GuiTable(
Set Path( saveloc_dt2 ),
Set Label( "MainDataTable" ),
Location( "Full Path" ),
Invisible( 0 )
),
DataTable3 = GuiTable(
Set Path( saveloc_dt3 ),
Set Label( "SpecTable" ),
Location( "Full Path" ),
Invisible( 1 ))),<BR />. . . . Pensavo che in questo modo potessi fare riferimento alle tabelle dati che avevo appena formattato (e salvato) nell'applicazione, ma invece ottengo una finestra che mi chiede di selezionare quali tabelle voglio usare. Questa è la parte che vorrei evitare.
Immagino che l'altra opzione sia semplicemente quella di creare i report che desidero e utilizzare la funzione Combina finestre per inserirli in una finestra tipo dashboard e quindi provare a ottenere la giusta spaziatura, ecc.
Re: DataTables per applicazioni e dashboardHo fatto un po' di pulizia sulla prima parte dello script e spero che ti dia qualche idea riguardo alla scrittura di script e JSL
Names Default To Here(1);
new_folder = "MYFOLDER";
// Checking for scriptable should be unnecessary
dt1 = Open("XXXXX.csv");
// Datatable(dt1) is unnecessary in 99% of cases
// Use << Get Rows Where instead of Select Where with Rows() in subset
// Use output table() to make debugging much easier
dt2 = dt1 << Subset(Rows(dt1 << Get Rows Where(:X == "1" & :"Y"n == "2" & :Z == "3")), Selected Columns(0), Output Table("MainDataTable"));
dt3 = Open("YYYY.csv");
dt3 << Set Name("SpecTable");
// simpler in this case
saveloc_dt2 = new_folder || "\MainDataTable.csv";
dt2 << Save(saveloc_dt2);
saveloc_dt3 = new_folder || "\SpecTable.csv";
dt3 << Save(saveloc_dt3);
// You can send messages directly to data table, do not use current data table() if possible
cc_expr = Expr(dt2 << Control Chart Builder(
Show Control Panel(0),
Show Capability(0),
Size(700, 450),
Show Excluded Region(0),
Variables(Y(:X)),
Local Data Filter(Add Filter(columns(:Z), Display(:A, Find(Set Text(""))))),
Chart(Position(1), Limits(Shade Zones(0)))
));
ps_expr = Expr(dt2 << Process Screening(
Process Variables(
:A,
:B,
:C,
Grouping(:Y),
Control Chart Type("Indiv and MR"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Show Tests(0),
Out of Spec Count(1),
Out of Spec Rate(1),
Latest Out of Spec(0),
N Subgroups(0),
Ppk(1),
Cp(1),
Cpk(1),
Cpm(1),
Spec Limits(1),
Use Limits Table(1, Data Table("SpecTable"), Process Variables(:Process), Grouping(:Z), LSL(:LSL), USL(:USL), Target(:Target), Go),
Goal Plot(0, Capability Lines(1.33), Shade Levels(0)),
Process Performance Graph(0)
)
));
nw = New Window("My report",
V List Box(
cc = cc_expr,
ps = ps_expr
)
);
Un'opzione per creare report è quella di racchiudere le chiamate alla piattaforma con Expr() e quindi chiamare quelle espressioni all'interno di una nuova finestra. Puoi anche saltare le espressioni e creare semplicemente la finestra con le chiamate alla piattaforma (o utilizzare pochi altri metodi)
nw = New Window("My report",
V List Box(
cc = dt2 << Control Chart Builder(
Show Control Panel(0),
Show Capability(0),
Size(700, 450),
Show Excluded Region(0),
Variables(Y(:X)),
Local Data Filter(Add Filter(columns(:Z), Display(:A, Find(Set Text(""))))),
Chart(Position(1), Limits(Shade Zones(0)))
),
ps = dt2 << Process Screening(
Process Variables(
:A,
:B,
:C,
Grouping(:Y),
Control Chart Type("Indiv and MR"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Show Tests(0),
Out of Spec Count(1),
Out of Spec Rate(1),
Latest Out of Spec(0),
N Subgroups(0),
Ppk(1),
Cp(1),
Cpk(1),
Cpm(1),
Spec Limits(1),
Use Limits Table(1, Data Table("SpecTable"), Process Variables(:Process), Grouping(:Z), LSL(:LSL), USL(:USL), Target(:Target), Go),
Goal Plot(0, Capability Lines(1.33), Shade Levels(0)),
Process Performance Graph(0)
)
)
)
);
Ti consiglio di dare un'occhiata a Scripting Guide da JMP Help . Non c'è bisogno di leggere tutto, ma dai un'occhiata qua e là per vedere cosa contiene.
Re: DataTables per applicazioni e dashboardGrazie mille. Ci darò un'occhiata