Obtenir un script de type jrp à partir d'une fenêtre de rapportBonjour à tous,
J'essaie d'enregistrer mon script de rapport dans un fichier jrp comme expliqué dans : Enregistrer les graphiques en tant que fichier ".jrp" dans JSL
Cependant, je n'ai pas d'accès direct au générateur de graphiques qui a généré ma fenêtre de rapport.
Je reçois mes rapports via
Get Window List(Type("Reports"));
Et maintenant, j'ai besoin d'extraire le script pour l'enregistrer en tant que fichier texte, mais je ne sais pas comment obtenir ce script.
Lorsque vous utilisez << Get Script, je ne me retrouve qu'avec des choses comme
GraphBuilderBox(ScaleBox(ParallelScaleBox(ScaleBox(ScaleBox(ScaleBox(ScaleBox(ScaleBox(ScaleBox(GraphBuilderContainerBox(Graph[...]
Comment puis-je obtenir un texte qui ressemble plus à
Graph Builder(
Size( 1896, 975 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(...
?
ScriptRe : Obtenir un script de type jrp à partir d'une fenêtre de rapportMerci @MikeD_Anderson ! Je suis d'accord, ce serait un bon complément.
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportCette petite pépite devrait être dans le JSL Cookbook ! Merci @txnelson ! @DonMcCormack
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportMerci beaucoup, c'est fait !
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportLe "Get Window List" renvoie le Top Parent pour la fenêtre.
Le "Get Scriptable Object" est un message à un Outline Box().Par conséquent, cette modification devrait vous apporter ce que vous voulez.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dis = Distribution( Continuous Distribution( Column( :height ) ) );
x = (Get Window List( Type( "Reports" ) )[1][Outline Box( 1 )] << get scriptable object());
x << get script;
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportIntéressant. En procédant pas à pas comme ceci :
wList = Get Window List(Type("Reports"));
rep = wList[1] << report;
so = rep << Get Scriptable Object();
skr = so << get script();
Print( skr );Je reçois maintenant des messages d'erreur qui L'objet 'HeadBox' ne reconnaît pas le message 'report' ; aussi bien que L'objet 'HeadBox' ne reconnaît pas le message 'Get Scriptable Object' ; si je coupe le message de rapport. Donc Obtenir la liste des fenêtres(Type("Rapports")); me donne un headbox qui ne peut reconnaître que Get Script, qui à son tour me donne le même vieux
HeadBox(V List Box(Box(OutlineBox(H List Box(NoCloneBox(IfBox(H List Box
J'ai déjà appris quelque chose, mais je n'en suis pas encore là. Comment faire J'obtiens le Scriptable Object de ma fenêtre ?
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportIl se peut que vos messages dans :
print(wList[1] << report << Get Scriptable Object() << get script());
ne sont pas exécutés dans l'ordre dans lequel vous pensez qu'ils le sont.
Comparez les résultats de ces deux :
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
Print( (rbiv << Get Scriptable Object()) << get script() );
Print( rbiv << Get Scriptable Object() << get script() );
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportMerci pour la réponse. Cependant, je n'ai pas encore réussi à résoudre mon problème.
Après avoir ouvert un fichier .jrp existant, qui à son tour ouvre une table de données et une fenêtre de rapport, les scripts suivants :
wList = Get Window List(Type("Reports"));
print(wList[1] << report << Get Scriptable Object() << get script());wList = Get Window List(Type("Reports"));
print(wList[1] << Get Scriptable Object() << get script());entraîneront à la fois
HeadBox(V List Box(Box(OutlineBox(H List Box(NoCloneBox(IfBox(H List Box(V List Box(H List Box(ButtonBox, ButtonBox, ButtonBox), BorderBox(V List Box(H List Box(PopupBox, Text Box("40 Columns")), V List [... etc.]Ce n'est pas le genre de script que je recherche. Cela semble être un cas particulier, puisque je commence avec une fenêtre de rapport existante. Qu'est-ce que je fais mal?
Re : Obtenir un script de type jrp à partir d'une fenêtre de rapportJetez un œil au message Get Scriptable Object(). Vous pouvez l'utiliser pour accéder à la plate-forme (c'est-à-dire, Graph Builder) dans un rapport.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
bivobj = rbiv << Get Scriptable Object();
bivobj<<GET script=""></GET>