DataTables für Anwendungen und DashboardsHallo zusammen,
Ich möchte Code für eine Anwendung/ein Dashboard erstellen. Der erste Teil meines Codes importiert einige Tabellen, führt einige Filter- und Formatierungsvorgänge durch und erstellt dann einige Diagramme und Berichte.
Danach hätte ich gerne allgemeinen Code, um eine Anwendung/ein Dashboard zu erstellen, um die Berichte anzuzeigen, die ich zuvor mit den bereits vorhandenen Datentabellen erstellt habe (nach dem Filtern und Formatieren). Ich konnte dies nicht über Skripting herausfinden, ohne aufgefordert zu werden, die für die Analyse verwendeten Datentabellen auszuwählen oder die bereits, aber falsch, eingebettet sind. Grundsätzlich verwendet Datentabelle 1 die aktuelle Datentabellenbezeichnung, und das ist in Ordnung, aber die zweite, die benötigt wird, wird eingebettet, aber im Wesentlichen wird standardmäßig die unformatierte und ungefilterte verwendet, obwohl als Variable die formatierte in das Original eingeschrieben wird.
Ich habe auch versucht, meine formatierten Tabellen zu speichern und sie dann mit den vollständigen Pfaden (globale Variablen) wieder abzurufen. Beim Versuch, den Code auszuführen, werde ich jedoch immer noch aufgefordert, auszuwählen, mit welchen Tabellen ich die Anwendung erstellen möchte.
Insgesamt versuche ich, dies so allgemein wie möglich zu gestalten und ein Skript dafür zu erstellen, da die verwendeten Datentabellen bei jeder Ausführung unterschiedliche Daten enthalten (dieselben oder fast gleichen Spalten, aber unterschiedliche Daten).
Ich habe nicht viel Erfahrung mit Dashboards, außer dass ich sie im Dashboard-Builder erstelle und nicht alles per Skript ausführe.
Danke
Automatisierung und SkriptingWindowsBetreff: DataTables für Anwendungen und DashboardsVerwenden Sie den Anwendungs-/Dashboard-Builder oder nur JSL?
Betreff: DataTables für Anwendungen und DashboardsIch würde es letztendlich vorziehen, alles mit JSL zu machen. Im Moment verwende ich jedoch JSL, um meine Tabellen zu importieren und neu zu formatieren, aber um einen Teil des Codes für die Anwendung zu erstellen, verwende ich den Anwendungs-/Dashboard-Builder
Betreff: DataTables für Anwendungen und DashboardsKönnen Sie den JSL-Teil des Skripts bereitstellen und markieren/erklären, mit welchen Teilen Sie Probleme haben? Woher bekommen Sie die Pfade? Muss der Benutzer eine Tabelle geöffnet haben, bevor er das Skript ausführt (ist die Verwendung der aktuellen Datentabelle () obligatorisch)? Haben Sie dies auch mit dem Workflow Builder versucht?
Betreff: DataTables für Anwendungen und Dashboards
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 />. . . . Ich dachte, auf diese Weise könnte ich in der Anwendung auf die Datentabellen verweisen, die ich gerade formatiert (und gespeichert) habe, aber stattdessen wird mir ein Fenster angezeigt, in dem ich aufgefordert werde, die Tabellen auszuwählen, die ich verwenden möchte. Das ist der Teil, den ich vermeiden möchte.
Ich denke, die andere Möglichkeit besteht darin, einfach die gewünschten Berichte zu erstellen und sie mithilfe der Funktion „Fenster kombinieren“ in ein Dashboard-ähnliches Fenster einzufügen und dann zu versuchen, den richtigen Abstand usw. zu erhalten.
Betreff: DataTables für Anwendungen und DashboardsIch habe den ersten Teil des Skripts etwas aufgeräumt und hoffe, dass es Ihnen einige Ideen zum Skripting und Schreiben von JSL gibt
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
)
);
Eine Möglichkeit zum Erstellen von Berichten besteht darin, die Plattformaufrufe mit Expr() zu umschließen und diese Ausdrücke dann in einem neuen Fenster aufzurufen. Sie können Ausdrücke auch überspringen und das Fenster nur mit Plattformaufrufen erstellen (oder einige andere Methoden verwenden).
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)
)
)
)
);
Ich schlage vor, dass Sie sich den Scripting Guide in der JMP-Hilfe ansehen. Sie müssen nicht alles durchlesen, aber werfen Sie hier und da einen Blick darauf, was darin steht.
Betreff: DataTables für Anwendungen und DashboardsVielen Dank. Ich werde mir das mal ansehen