Enregistrer les graphiques en tant que fichier ".jrp" dans JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut les gars
Au cours de mon travail, j'ai rencontré la nécessité d'enregistrer des graphiques sous forme de rapport dans JMP (fichier ".jrp") - un graphique créé lors de l'exécution d'un script.
Après une longue journée à essayer toutes les combinaisons de code pour enregistrer des fichiers dans JSL, il semble qu'il n'y ait aucune recommandation pour enregistrer dans un type "rapport" -
uniquement journal ("".jrn"), .pdf et autres...
De plus, en cherchant dans les forums, j'ai découvert que la dernière fois que quelqu'un avait posé une question similaire sur le sujet, c'était en 2011 et personne n'avait de réponse.
donc:
Puis-je enregistrer le fichier ".jrp" en jsl ?
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLDans le JMP 16, le < Le message enregistrera un rapport en tant que fichier .JRP.
Names Default To Here( 1 );
//This message can be sent to any display box object but will be applied to the report window
Open( "$SAMPLE_DATA/Big Class.jmp" );
d = distribution( Column( :height ) );
d << Save Window Report(
"$DOCUMENTS/test.jrp",
embed data( 1 )
);
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLSalut Wendy,
Bonne journée! Je suis nouveau dans les scripts et j'apprends encore.
J'ai lu votre code et essayé de l'exécuter. J'ai réalisé que si je n'inclus pas " par(:pin_group) ".. il enregistrera un rapport JMP
C'est la ligne que j'ai utilisée pour les tests.
dist= dt << Distribution( Distribution continue( Column( :Measurement ),Normal Quantile Plot( 0 ) ), by(:pin_group));
Ce que j'essaye de faire c'est :
1. Obtenez la distribution (par groupe ~ 23 groupes)
2. Effectuer une modification sur l'histogramme (Les deux axes et ajouter une ligne de référence - pour tout l'histogramme généré)
3. Enregistrez sous JRP (votre exemple - code), histogramme avec le tableau de données. >> C'est là que je rencontre un problème.
Existe-t-il un code spécifique à enregistrer en tant que JRP avec plusieurs histogrammes dans le même rapport ?
Merci de m'éduquer. Merci et apprécions votre aide!
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLC'est un bon code. Merci MS. Si j'ai plusieurs graphiques sur une page avec une distribution unidirectionnelle, des tableaux et un générateur de graphiques utilisant la zone de liste H et la zone de liste V, pour une raison quelconque, le script obj<< get affiche une erreur. Dois-je utiliser un répertoire parent ?Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLCette question revient assez souvent.Malheureusement, il n'existe pas de commande JSL pour enregistrer un rapport directement en tant que fichier JRP.Cela a été suggéré précédemment comme fonctionnalité à prendre en compte dans une future version de JMP.
Comme indiqué précédemment, un fichier JRP est simplement un fichier texte contenant du code JSL.Vous pouvez extraire le script de la plate-forme, puis utiliser Enregistrer le fichier texte pour enregistrer le chemin d'accès au fichier et le script dans un fichier texte avec l'extension de fichier JRP.Voici un exemple plus simple qui peut aider à clarifier :
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dist = dt << Distribution(
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :age ) )
);
distScript = dist << Get Script;
Save Text File(
"C:\temp\DistributionScript.jrp",
"//!
Open( \!"$SAMPLE_DATA\Big Class.jmp\!" );"
||
Char( Name Expr( distScript ) )
);
Close( dt, No Save );
Wait( 2 ); //For demonstration purposes
Open( "C:\temp\DistributionScript.jrp" );
J'espère que cela pourra aider!
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLJe pense que vous venez de prendre le code sans aucune réflexion sur le principe qui le sous-tend.
En testant la fonction, il enregistre effectivement le rapport, mais il y a souvent des erreurs dues à des variables indéfinies si votre rapport est complexe.Mais lisons le principe derrière pourquoi la fonction fonctionne.
Ce que MS a écrit :
Enregistrer sous .jrp automatiquement :
Un .jrp semble être juste un .jsl qui s'exécute automatiquement. Le code contient 1) une référence à une table de données enregistrée ou à une table de données intégrée, et 2) le code pour générer le rapport. Par conséquent, il devrait être assez simple de scripter l'enregistrement d'un fichier .jrp.
(souligné pour l'emphase)
Ainsi, si vous avez un script qui génère un rapport, enregistrez simplement le script en tant que .jrp au lieu d'un .jsl.
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLSalut, merci pour ta réponse et pour ton code
J'apprécie vraiment que vous ayez pris le temps de créer cette fonction pour moi,
Le problème est que cela ne fonctionne pas vraiment dans mes conditions... Ce que tu as écrit fonctionne effectivement, mais pas pour mon besoins.
Pour certains raison il suffit de sauvegarder à nouveau la table et non le rapport
Re : Enregistrer les graphiques en tant que fichier ".jrp" dans JSLEnregistrez au format .jrp avec un peu d'interactivité :
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :Weight ), X( :Height ) );
Wait(1);
biv<< Bring Window To Front;
Main Menu( "Save As" );
Enregistrer sous .jrp automatiquement :
Un .jrp semble être juste un .jsl qui s'exécute automatiquement. Le code contient 1) une référence à une table de données enregistrée ou à une table de données intégrée, et 2) le code pour générer le rapport. Par conséquent, il devrait être assez simple de scripter l'enregistrement d'un fichier .jrp.
Voici une méthode qui semble fonctionner :
// Function to save .jrp
Save_jrp = Function( {dt, obj, dir, filename},
{embed_data = 0}, // Switch between embedded and referenced data table.
Save Text File(
dir || filename || ".jrp",
If( embed_data,
Char(
Eval Expr(
Expr( dt << get script );
Expr( obj << get script );
)
),
Char(
Eval Expr(
Open( Expr( dt << get path ) );
Expr( obj << get script );
)
)
)
)
);
// Define example input data: data table, report, path and file name
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :Weight ), X( :Height ) );
dt = biv << get data table;
biv << set window title( "MyReport" );
fname = biv << get window title;
path = Get Default Directory();
// Run function
Save_jrp( dt, biv, path, fname );
// Test if it worked
Close( dt, no save );
Wait( 1 );
Open( path || fname || ".jrp" );