Tableaux de données pour applications et tableaux de bordBonjour à tous,
Je souhaite créer du code pour une application/un tableau de bord. La première partie de mon code importe des tables, effectue un filtrage et un formatage, puis crée des graphiques et des rapports.
Après cela, je voudrais avoir un code général pour créer une application/un tableau de bord pour afficher les rapports que j'ai créés précédemment en utilisant les tables de données déjà existantes (après le filtrage et le formatage). Je n'ai pas pu comprendre cela via un script sans être invité à sélectionner les tables de données utilisées pour l'analyse ou déjà intégrées mais de manière incorrecte. Fondamentalement, la table de données 1 utilise la désignation de la table de données actuelle et c'est bien, mais la deuxième qui est nécessaire devient intégrée mais essentiellement, elle est par défaut celle non formatée et non filtrée, même si en tant que variable, la mise en forme est écrasée sur l'original.
J'ai également essayé d'enregistrer mes tables formatées, puis d'utiliser les chemins complets (variables globales) pour les rappeler, mais je suis toujours invité à sélectionner les tables pour lesquelles je souhaite créer l'application lorsque j'essaie d'exécuter le code.
Dans l’ensemble, j’essaie de rendre cela aussi général que possible et de le scénariser car chaque fois qu’il est exécuté, les tables de données utilisées auront des données différentes (mêmes colonnes ou presque mêmes mais des données différentes).
Je n'ai pas beaucoup d'expérience avec les tableaux de bord, sauf pour en créer dans le générateur de tableaux de bord et ne pas les écrire entièrement.
Merci
Automatisation et scriptsFenêtresRé: Tableaux de données pour applications et tableaux de bordUtilisez-vous Application/Dashboard Builder ou utilisez-vous simplement JSL ?
Ré: Tableaux de données pour applications et tableaux de bordJe préférerais le faire en utilisant JSL éventuellement pour tout. Cependant, pour le moment, j'utilisais JSL pour importer mes tables et les reformater, mais pour créer une partie du code de l'application, j'utilisais le générateur d'applications/tableaux de bord
Ré: Tableaux de données pour applications et tableaux de bordPouvez-vous fournir la partie JSL du script et marquer/expliquer les parties avec lesquelles vous rencontrez des problèmes ? D'où proviennent les chemins ? L'utilisateur doit-il avoir une table ouverte avant d'exécuter le script (l'utilisation de la table de données actuelle() est-elle obligatoire) ? Avez-vous également essayé de faire cela avec le générateur de workflow ?
Ré: Tableaux de données pour applications et tableaux de bord
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 />. . . . J'ai pensé que de cette façon je pourrais référencer les tables de données que je venais de formater (et d'enregistrer) dans l'application, mais à la place, j'obtiens une fenêtre qui m'invite à sélectionner les tables que je souhaite utiliser. C'est la partie que je souhaite éviter.
Je suppose que l'autre option consiste simplement à créer les rapports que je veux et à utiliser la fonction Combiner les fenêtres pour les placer dans une fenêtre de type tableau de bord, puis à essayer d'obtenir le bon espacement, etc.
Ré: Tableaux de données pour applications et tableaux de bordJ'ai fait un peu de nettoyage sur la première partie du script et j'espère que cela vous donnera quelques idées concernant les scripts et l'écriture de 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
)
);
Une option pour créer des rapports consiste à envelopper les appels de plateforme avec Expr(), puis à appeler ces expressions dans une nouvelle fenêtre. Vous pouvez également ignorer les expressions et simplement créer la fenêtre avec des appels de plateforme (ou utiliser quelques autres méthodes)
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)
)
)
)
);
Je vous suggère de consulter le Guide de script de l'aide JMP . Pas besoin de tout lire, mais jetez un œil ici et là pour voir ce qu'il contient.
Ré: Tableaux de données pour applications et tableaux de bordMerci beaucoup. Je vais les vérifier.