J'ai un script qui crée une fenêtre avec trois onglets.Le premier onglet contient une zone de programmation avec deux colonnes et 6 graphiques Graph Builder créés avec une boucle.
nw = New Window( "Win1", tbox = Tab Box(Tab Page Box("Age", vlb = Lineup Box( N Col( 2 )) )) );Tous les graphiques générés par la boucle sont accompagnés de:
vlb << Append(
Graph Builder("graph stuff here");À la fin, tout se présente comme prévu deux graphiques par ligne (deux colonnes).
Cependant, lorsque je l'enregistre en tant que «Rapport» (avec une table intégrée), la boîte Lineup disparaît du code!
Et j'obtiens:
New Window( "Win1",
Tab Box(
Tab Page Box(
"Age",
Graph Builder("graph stuff here");Existe-t-il un moyen de conserver la disposition originale des graphiques sur deux colonnes? Est-ce une propriété ou un manque de propriété du type de «boîtes» que j'utilise?
J'apprécierai quelques suggestions à essayer.
Je pense que c'est un bogue, vous pourriez envisager de l'envoyer à support@jmp.com . Notez que sans enregistrer en tant que rapport, si vous sélectionnez Enregistrer le script> Dans la fenêtre de script (tous les objets), vous obtenez également des boîtes à onglets au lieu de boîtes de liste.
En attendant, une solution pourrait être de distribuer un fichier de script au lieu du fichier de rapport.Dans la table de données, vous pouvez sélectionner le script de copie de table dans le triangle rouge au-dessus de la liste des colonnes, puis le coller dans votre script.Comprendre '//!' sur la première ligne du script pour qu'il s'exécute automatiquement, puis enregistrez-le en tant que fichier .jsl (la taille du fichier doit être un fichier jrp, ils enregistrent tous les deux la table sous forme de texte).
Pour le faire agir davantage comme un rapport, vous pouvez ouvrir le tableau comme invisible ou privé, puis le fermer automatiquement lorsque la fenêtre se ferme.
Voici un exemple, enregistrez-le en tant que fichier .jsl:
//!
Names default to here(1);
dt = New Table( "Subset of Big Class 2",
Add Rows( 18 ),
New Column(
["en" => "age", "ja" => "年齢", "x-id" => "S_age_Col", "zh-CN" => "年龄"],
Numeric, "Ordinal", Format( "Fixed Dec", 5, 0 ),
Set Values(
[12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17]
),
Set Display Width( 0 )
),
New Column(
["en" => "height",
"ja" => "身長(インチ)",
"x-id" => "S_height_Col",
"zh-CN" => "身高"],
Numeric, "Continuous", Format( "Fixed Dec", 5, 0 ),
Set Values(
[61, 66, 51, 61, 65, 58, 63, 63, 64, 62, 64, 67, 65, 60, 68, 62, 68, 70]
),
Set Display Width( 0 )
),
New Column(
["en" => "weight",
"ja" => "体重(ポンド)",
"x-id" => "S_Big_Class_weight_Col",
"zh-CN" => "体重"],
Numeric, "Continuous", Format( "Fixed Dec", 5, 0 ),
Set Values(
[123, 145, 79, 107, 98, 95, 84, 93, 99, 92, 112, 128, 112, 115, 128, 116,
134, 172]
),
Set Display Width( 0 )
),
Invisible
);
nw = New Window( "Win1", tbox = Tab Box(Tab Page Box("Age", vlb = Lineup Box( N Col( 2 )) )) );
nw << On close( try( Close( dt, "nosave" ) ) );
ages = associative array(dt:age) << get keys;
for(i=1, i<= n items(ages), i++,
Eval( Eval Expr(
vlb << Append(
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight ),
Overlay( Transform Column( "Is " || char( ages[i] ) , Nominal, Formula( :age == Expr( ages[i] ) ) ) )
),
Elements( Points( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Hight and Weight" )} )
)
)
)
) )
);
salut @ih , merci beaucoup pour votre réponse, malheureusement votre approche ne fonctionnera pas car j'utilise des scripts qui appellent des scripts "fonctions" et d'autres scripts auxiliaires qui traitent les données avant de générer la table de données pour les graphiques.
Je ferai un suivi avec le soutien et ajouterai toutes les solutions / commentaires que je pourrais obtenir d'eux.