Comment réaliser des tableaux de bord multi-lignes avec JSL ?J'ai enregistré le script pour créer manuellement le tableau de bord dans la table de données et fermé la table de données
La réouverture de la table et l'exécution du script ont échoué.
Merci les experts !
dt=Open("$SAMPLE_DATA/Big Class.jmp");
p1=dt<< Graph Builder(Transform Column("row",Formula(Row())),Size(500,100),Show Control Panel(0),Show Legend(0),Show Title(0),Show Footer(0),Show X Axis(0),Show Y Axis(0),Show X Axis Title(0),Show Y Axis Title(0),Variables(X(:row),Y(:height)),Elements(Line(X,Y,Legend(5))));
p2=dt<< Graph Builder(Transform Column("row",Formula(Row())),Size(500,100),Show Control Panel(0),Show Legend(0),Show Title(0),Show Footer(0),Show X Axis(0),Show Y Axis(0),Show X Axis Title(0),Show Y Axis Title(0),Variables(X(:row),Y(:weight)),Elements(Line(X,Y,Legend(5))));
Analyse et modélisation des données de baseles fenêtresRe : Comment créer des tableaux de bord multi-lignes avec JSL ?C'est le JSL enregistré
Graph Builder(
Size( 401, 40 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Show Title( 0 ),
Show Footer( 0 ),
Show X Axis( 0 ),
Show Y Axis( 0 ),
Show X Axis Title( 0 ),
Show Y Axis Title( 0 ),
Variables( X( Transform Column( "row", Formula( Row() ) ) ), Y( :weight ) ),
Elements( Line( X, Y, Legend( 5 ) ) )
)
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Si ma table de données comporte 40 colonnes et que je dois créer ce formulaire de tableau de bord, comment puis-je le scripter ?
Merci!

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Est-il nécessaire d’utiliser Application Builder ? Il pourrait être plus facile de simplement créer une nouvelle fenêtre et d'y ajouter des rapports
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb_expr = Expr(dt << Graph Builder(
Transform Column("row", Formula(Row())),
Size(500, 100),
Show Control Panel(0),
Show Legend(0),
Show Title(0),
Show Footer(0),
Show X Axis(0),
Show Y Axis(0),
Show X Axis Title(0),
Show Y Axis Title(0),
Variables(X(:row), Y(:height)),
Elements(Line(X, Y, Legend(5)))
));
lub = Lineup Box(N Col(1));
For(i = 1, i <= 10, i++,
lub << append(gb_expr)
);
nw = new window("",
lub
);Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Merci jthi !

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Oui, ils peuvent. La façon dont vous souhaiterez peut-être procéder dépend de votre application. Vous trouverez ci-dessous une option utilisant XPath.
(nw << XPath("//OutlineBox[text() = 'Graph Builder']")) << Set Title("");Re : Comment créer des tableaux de bord multi-lignes avec JSL ?dt = Ouvert("$SAMPLE_DATA/Big Class.jmp");
dt << Nouvelle colonne ( "col1", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col2", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col3", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col4", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col5", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col6", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col7", Numérique, Continue, Formule définie ( Col Shuffle() ) );
dt << Nouvelle colonne ( "col8", Numérique, Continue, Formule définie ( Col Shuffle() ) );
//?
gb_expr = Expr(dt << Générateur de graphiques(
Transformer Colonne("ligne", Formule(Ligne())),
Taille (500, 100),
Afficher le panneau de configuration (0),
Afficher la légende (0),
Afficher le titre (0),
Afficher le pied de page (0),
Afficher l'axe X (0),
Afficher l'axe Y (0),
Afficher le titre de l'axe X (0),
Afficher le titre de l'axe Y (0),
Variables(X(:ligne), Y(:hauteur)),
Éléments(Ligne(X, Y, Légende(5)))
));
lub = Boîte d'alignement (N Col (1));
p2=dt<< Générateur de graphiques (Transformer la colonne ("ligne", Formule (Row())), Taille (500 100), Afficher le panneau de configuration (0), Afficher la légende (0), Afficher le titre (0), Afficher le pied de page ( 0), Afficher l'axe X (0), Afficher l'axe Y (0), Afficher le titre de l'axe X (0), Afficher le titre de l'axe Y (0), Variables (X (: ligne), Y (: poids)), Éléments ( Ligne(X,Y,Légende(5))));
(p2 << XPath("//OutlineBox[text() = '图形生成器']")) << Définir le titre("");
lub = Boîte d'alignement (N Col (1));
lub << append(gb_expr)
……
nw = nouvelle fenêtre("",
lubrifier
);
(nw << XPath("//OutlineBox[text() = 'Graphic Generator']")) << Définir le titre("");
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Rapport (plateforme) ["Générateur de graphiques"]

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Il peut être masqué, mais la façon d'écrire plusieurs colonnes en JSL ne réussit toujours pas.

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Il faut ralentir un peu, expliquer ce dont on a besoin par petites étapes. Actuellement, vous demandez plusieurs choses différentes qui ont toutes des solutions différentes, car il semble que l'objectif change tout le temps un peu (ce qui rend très difficile la fourniture d'une solution robuste).
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Oui, le code de l’expert a fait l’affaire.
Vous venez d'ajouter la colonne "hauteur" 10 fois au tableau de bord.
Comment écrire du code si je souhaite ajouter un total de 10 colonnes au tableau, une par une, avec les nouvelles ? C'est la clé.
Quant au texte caché, c'est secondaire.
Merci les experts !
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("col1", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col2", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col3", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col4", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col5", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col6", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col7", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col8", Numeric, Continuous, Set Formula(Col Shuffle()));
create_report = function({dt, colname}, {Default Local},
gb = dt << Graph Builder(
Transform Column("row", Formula(Row())),
Size(500, 100),
Show Control Panel(0),
Show Legend(0),
Show Title(0),
Show Footer(0),
Show X Axis(0),
Show Y Axis(0),
Show X Axis Title(0),
Show Y Axis Title(0),
Variables(X(:row), Y(Eval(colname))),
Elements(Line(X, Y, Legend(5))),
SendToReport(
Dispatch({}, "Graph Builder", OutlineBox,
{Set Title(""), Image Export Display(Normal)}
)
)
);
return(gb);
);
lub = Lineup Box(N Col(1));
cols = {"col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8"};
For Each({colname}, cols,
lub << Append(create_report(dt, colname));
);
nw = new window("",
lub
);Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Création de graphiques JSL Comment rendre les noms de colonnes dynamiques et génériques ?Comme ça, le nombre de colonnes que j'ai ajoutées et les noms des colonnes sont différents
Merci les experts !
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("col1", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col2", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col3", Numeric, Continuous, Set Formula(Col Shuffle()));
p1=dt<< Graph Builder(
Size( 534, 648 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Show Title( 0 ),
Show Footer( 0 ),
Show X Axis( 0 ),
Show Y Axis( 0 ),
Show X Axis Title( 0 ),
Variables(
X( Transform Column( "Row", Formula( Row() ) ) ),
Y( :height ),
Y( :weight ),
Y( :col1 ),
Y( :col2 ),
Y( :col3 ),
Y( :col3 )
),
Elements( Position( 1, 1 ), Bar( X, Y, Legend( 10 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 9 ) ) ),
Elements( Position( 1, 3 ), Bar( X, Y, Legend( 8 ) ) ),
Elements( Position( 1, 4 ), Bar( X, Y, Legend( 7 ) ) ),
Elements( Position( 1, 5 ), Bar( X, Y, Legend( 6 ) ) ),
Elements( Position( 1, 6 ), Bar( X, Y, Legend( 5 ) ) )
);
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Avez-vous toujours la même quantité de graphiques ? Sinon, je construis généralement les expressions séparément (Variables() et Elements), puis j'utilise Eval(Substitute()) pour les ajouter à l'expression du générateur de graphiques que j'évalue finalement. Je sais qu'il y a eu pas mal de sujets à ce sujet car j'y ai répondu (je ne les trouve tout simplement pas) mais ce post de Xan donne l'idée de base
Répondre à tous : Comment créer un script de contenu dynamique pour Graph Builder
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("col1", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col2", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col3", Numeric, Continuous, Set Formula(Col Shuffle()));
vars = Expr(Variables(X(Transform Column("Row", Formula(Row())))));
points = Expr(Line(X, Y, Legend(5)));
起 = 4;止 = 8;
For(i = 起, i <= 止, i++,
Insert Into(vars, Eval Expr(Y(Expr(Column(dt, i)), Position(1))));
Insert Into( points, Eval Expr( Y( Expr( i - 起 + 1 ) ) ), i - 起 );
);
gb = Eval Expr(
Graph Builder(
Size(534, 648),
Show Control Panel(0),
Show Legend(0),
Show Title(0),
Show Footer(0),
Show X Axis(0),
Show Y Axis(0),
Show X Axis Title(0),
Expr(Name Expr(vars)),
points(Expr(Name Expr(points)))
)
);
gb;C'est juste que je
Merci les experts !
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?J'ai essayé de l'écrire hier, mais ça n'a toujours pas fonctionné.
Le problème avec ce code est la variable « deux ».
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "col1", Numeric, Continuous, Set Formula( Col Shuffle() ) );
dt << New Column( "col2", Numeric, Continuous, Set Formula( Col Shuffle() ) );
dt << New Column( "col3", Numeric, Continuous, Set Formula( Col Shuffle() ) );
m1 = 1; m2 = 180; m0 = 10;
one=Expr(Variables( X( Transform Column( "Row", Formula( Row() ))) , Y( :height ) ));two=Expr(Elements( Position( 1, 1 ), Bar( X, Y, Legend( 5 ) ) ) );thr=Expr( Dispatch( {}, "height", ScaleBox, {Min( m1 ), Max( m2 ), Inc( m0 ), Minor Ticks( 1 )} ));
first co = 5;last col = 8;
For( i = first co, i <= last col, i++,
Insert Into( one, Eval Expr( Y( Expr( Column( dt, i ) ) ) ) );
Insert Into( two, Eval Expr(Elements( Position( 1, Expr(i-3 )), Bar( X, Y, Legend( Expr(1+i )) ) ) ));
Insert Into( thr, Eval Expr( Dispatch( {}, Column(Expr(i))<<GET name=""></GET><SPAN class=""><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><span class="lia-inline-image-display-wrapper" image-alt="2024-07-18_17-44-45.png" style="width: 253px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66319i838261FBE3A3DA44/2024-07-18_17-44-45.png" role="button" title="2024-07-18_17-44-45.png" alt="2024-07-18_17-44-45.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?D'ACCORD
Enregistrez le code du dessin dans un JSL distinct
C'est donc facile à combiner.
tx1 = "";
tx2 = "";
tx3 = "SendToReport(";
For( i = first co, i <= last col, i++,
//……
);
txt =
"nw=dt<< Graph Builder(Size(554,1654),Show Control Panel(0),Show Legend(0),Show Title(0),Show Footer(0),Show X Axis(0),Show Y Axis(0),Show X Axis Title(0),Variables(X(:分)"
|| tx1 || ")" || tx2 || "\!n," || tx3 ||
"));(nw << XPath(\!"//OutlineBox[text() = '图形生成器']\!")) << Set Title(\!"\!");nw<<SET window="" size=""></SET>Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Index de script comme exemples d'ajout de variable et d'ajout d'élément
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("col1", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col2", Numeric, Continuous, Set Formula(Col Shuffle()));
dt << New Column("col3", Numeric, Continuous, Set Formula(Col Shuffle()));
gb = dt << Graph Builder(
Size(534, 648),
Show Control Panel(0),
Show Legend(0),
Show Title(0),
Show Footer(0),
Show X Axis(0),
Show Y Axis(0),
Show X Axis Title(0),
Variables(
X(Transform Column("Row", Formula(Row()))),
Y(:height),
Y(:weight)
),
Elements(Position(1, 1), Bar(X, Y, Legend(10))),
Elements(Position(1, 2), Bar(X, Y, Legend(9)))
);
cols = {"col1", "col2", "col3", "col3"};
For Each({colname, idx}, cols,
gb << Add Variable({Eval(colname), Role("Y")});
// Either add both of these or neither
gb << Remove Element(1, 2 + idx, 1);
gb << Add Element(1, 2 + idx, {Type("Bar"), X, Y, Legend(9-idx)});
);
</CODE>Sometimes you have to check the graph builder script to see how it is being built. In this case due to Legend being starting from 10, you either have to first remove element and then add it back OR just let JMP take care of them (so leave out << Remove Element and << Add Element)</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1721456186653.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_0-1721456186653.png" style="width: 267px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66331i8F2B15E24DF276BB/jthi_0-1721456186653.png" role="button" title="jthi_0-1721456186653.png" alt="jthi_0-1721456186653.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<PRE><CODE class=" language-jsl">Graph Builder(
Transform Column("Row", Formula(Row())),
Size(534, 648),
Show Control Panel(0),
Show Legend(0),
Show Title(0),
Show Footer(0),
Show X Axis(0),
Show Y Axis(0),
Show X Axis Title(0),
Variables(
X(:Row),
Y(:height),
Y(:weight),
Y(:col1),
Y(:col2),
Y(:col3),
Y(:col3)
),
Elements(Position(1, 1), Bar(X, Y, Legend(10))),
Elements(Position(1, 2), Bar(X, Y, Legend(9))),
Elements(Position(1, 3), Bar(X, Y, Legend(8))),
Elements(Position(1, 4), Bar(X, Y, Legend(7))),
Elements(Position(1, 5), Bar(X, Y, Legend(6))),
Elements(Position(1, 6), Bar(X, Y, Legend(5)))
);
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Merci les experts !
J'ai défini plus de conditions dans l'application réelle.
J'aime ce formulaire. Je ne sais toujours pas comment ajouter plusieurs colonnes après coup
ca = "row";dt = New Table( "test", Add Rows( 40 ), New Column( ca, Character, "Nominal" ) );
Column( ca ) << Formula( Char( Row() ) );dt << run formulas;Column( ca ) << deleteFormula;
na = {"A", "B", "C", "D", "E"};
j = 1;
For( j = 1, j <= N Items( na ), j++,
i = 1;
For( i = 1, i <= 4, i++,
ca = na[j] || Char( i ); New Column( ca );
Column( ca ) << Formula( If( i == 1, Random Integer( -100, 100 ), Random Integer( 30 * i, 50 * i ) ) );
dt << run formulas; Column( ca ) << deleteFormula; Column( ca ) << Set Display Width( 38 );
);
);
p1=dt<<GRAPH builder=""></GRAPH><BR />Illustration:<BR />A1-A4 is a group of the same letters, are listed as a group of 4, move A2-A4 to the right of the Y axis to form a line graph;A1 is the bar chart,<BR />The color of the bar is variable, but the color of the line on the right is fixed by number (the same color as the line with different letter groups of the number).<BR />The graphics are set to transparency.The right Y-axis title is also hidden.<BR />So there's a lot more code for mapping.I don't know how to batch them.
Thanks!
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="2024-07-22_16-07-12.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66366iA37DF0093E9320C8/2024-07-22_16-07-12.png" role="button" title="2024-07-22_16-07-12.png" alt="2024-07-22_16-07-12.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Si le nombre de séries dans le graphique est supérieur à 200, je ne sais pas comment cela change

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?L'utilisation du tableau de données empilées facilite la création de quelque chose comme ceci

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?J'ai essayé, mais je n'ai pas compris comment l'empiler.
Demandez des instructions à un expert.
Merci beaucoup!
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Utiliser une pile de plusieurs séries

Créez ensuite une colonne de regroupement à partir de l'une des colonnes d'étiquettes, renommez les colonnes si nécessaire, supprimez-les si nécessaire et créez un tracé.
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?OK je vois
Merci jthi !
Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Cette création de groupes de graphiques semble être le paramètre par défaut pour de nombreux systèmes.
Par exemple, la colonne d'étiquette dans ce graphique est le tri par défaut
Est-ce que je souhaite que le graphique soit trié par l'étiquette du tableau de données d'origine et ne puisse être numéroté que dans la colonne d'étiquette du tableau de données ?Par exemple, les étiquettes du tableau de données sont triées par C, D, A, B, E, et les graphiques sont également triés par ceci, qui ne peut être modifié que dans le tableau de données en : 1C, 2D, 3A, 4B, 5E.
Définir la transparence est également inefficace.
Merci!

Re : Comment créer des tableaux de bord multi-lignes avec JSL ?Utilisez la propriété de colonne Ordre des valeurs pour le tri.