Diagramme als „.jrp“-Datei in JSL speichern<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Leute
Während meiner Arbeit stieß ich auf die Anforderung, Diagramme als Bericht in JMP („.jrp“-Datei) zu speichern – einem Diagramm, das während einer Skriptausführung erstellt wurde.
Nach einem langen Tag des Ausprobierens aller Codekombinationen zum Speichern von Dateien in JSL scheint es keine Empfehlung für das Speichern in einem „Bericht“-Typ zu geben –
nur Journal ("".jrn"), .pdf und andere...
Außerdem habe ich bei der Suche in den Foren herausgefunden, dass das letzte Mal, dass jemand eine ähnliche Frage zu diesem Thema gestellt hat, im Jahr 2011 war und niemand eine Antwort hatte.
Also:
Kann ich die Datei „.jrp“ in jsl speichern?
Betreff: Diagramme als „.jrp“-Datei in JSL speichernIn JMP 16 die < Die Nachricht speichert einen Bericht als .JRP-Datei.
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 )
);
Betreff: Diagramme als „.jrp“-Datei in JSL speichernHallo Wendy,
Guten Tag! Ich bin neu in der Skripterstellung und lerne immer noch.
Ich lese Ihren Code und versuche ihn auszuführen. Mir wurde klar, dass wenn ich nicht einbeziehe: von(:pin_group) „... es wird ein JMP-Bericht gespeichert
Dies ist die Zeile, die ich zum Testen verwendet habe.
dist= dt << Distribution( Continuous Distribution( Column( :Measurement ),Normal Quantile Plot( 0 ) ), by(:pin_group));
Was ich versuche ist:
1. Erhalten Sie die Verteilung (nach Gruppe ~ 23 Gruppen)
2. Nehmen Sie Änderungen am Histogramm vor (beide Achsen und fügen Sie eine Referenzlinie hinzu – für das gesamte generierte Histogramm).
3. Speichern Sie als JRP (Ihr Beispielcode), Histogramm mit der Datentabelle. >> Hier stehe ich vor dem Problem.
Gibt es einen bestimmten Code zum Speichern als JRP mit mehreren Histogrammen im selben Bericht?
Bitte erziehen Sie mich. Vielen Dank und vielen Dank für Ihre Hilfe!
Betreff: Diagramme als „.jrp“-Datei in JSL speichernDas ist ein schöner Code. Vielen Dank, MS. Wenn ich mehrere Diagramme auf einer Seite mit Einwegverteilung, Tabellen und Diagrammersteller mit H-Listenfeld und V-Listenfeld habe, zeigt obj<< get script aus irgendeinem Grund einen Fehler an. Muss ich ein übergeordnetes Verzeichnis verwenden?Betreff: Diagramme als „.jrp“-Datei in JSL speichernDiese Frage kommt ziemlich oft vor.Leider gibt es keinen JSL-Befehl, um einen Bericht direkt als JRP-Datei zu speichern.Dies wurde bereits zuvor als Funktion zur Berücksichtigung in einer zukünftigen Version von JMP vorgeschlagen.
Wie bereits erwähnt, ist eine JRP-Datei einfach eine Textdatei, die JSL-Code enthält.Sie können das Skript von der Plattform extrahieren und dann Textdatei speichern verwenden, um den Dateipfad und das Skript in einer Textdatei mit der Dateierweiterung JRP zu speichern.Hier ist ein einfacheres Beispiel, das zur Verdeutlichung beitragen kann:
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" );
Hoffentlich hilft das!
Betreff: Diagramme als „.jrp“-Datei in JSL speichernIch glaube, Sie haben den Code einfach übernommen, ohne über das Prinzip dahinter nachzudenken.
Durch das Ausprobieren der Funktion wird der Bericht tatsächlich gespeichert, es kommt jedoch häufig zu Fehlern aufgrund undefinierter Variablen, wenn Ihr Bericht etwas komplexer ist.Aber lesen wir das Prinzip, warum die Funktion funktioniert.
Was MS geschrieben hat:
Automatisch als .jrp speichern:
Eine .jrp scheint nur eine .jsl zu sein, die automatisch ausgeführt wird. Der Code enthält 1) einen Verweis auf eine gespeicherte Datentabelle oder eine eingebettete Datentabelle und 2) den Code zum Generieren des Berichts. Daher sollte es recht einfach sein, das Speichern einer .jrp-Datei per Skript zu erstellen.
(zur Hervorhebung unterstrichen)
Wenn Sie also über ein Skript verfügen, das einen Bericht generiert, speichern Sie das Skript einfach als .jrp statt als .jsl.
Betreff: Diagramme als „.jrp“-Datei in JSL speichernHallo, danke für deine Antwort und für deinen Code
Ich weiß es wirklich zu schätzen, dass Sie sich die Zeit genommen haben, diese Funktion ganz für mich zu erstellen.
Das Problem ist, dass es unter meinen Bedingungen nicht wirklich funktioniert ... Was du geschrieben hast, funktioniert tatsächlich, aber nicht für mich Bedürfnisse.
Für einige Grund Es speichert einfach die Tabelle erneut und nein Bericht
Betreff: Diagramme als „.jrp“-Datei in JSL speichernSpeichern als .jrp mit etwas Interaktivität:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :Weight ), X( :Height ) );
Wait(1);
biv<< Bring Window To Front;
Main Menu( "Save As" );
Automatisch als .jrp speichern:
Eine .jrp scheint nur eine .jsl zu sein, die automatisch ausgeführt wird. Der Code enthält 1) einen Verweis auf eine gespeicherte Datentabelle oder eine eingebettete Datentabelle und 2) den Code zum Generieren des Berichts. Daher sollte es recht einfach sein, das Speichern einer .jrp-Datei per Skript zu erstellen.
Hier ist eine Möglichkeit, die zu funktionieren scheint:
// 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" );