Erstellen einer InhaltsverzeichnisseiteIch erstelle einige Skripte für die Analyse von Halbleitercharakterisierungsdaten. Jeder Bericht enthält rund 300 Tests. Jedem Test wird ein Gliederungsfeld zugewiesen, in dem sich dann eine Reihe von Diagrammen und Daten befinden. Ich möchte am Anfang des Berichts ein Inhaltsverzeichnis erstellen, damit die Leute auf die Tests klicken können, die ihnen wichtig sind. Gibt es eine Möglichkeit, einen anklickbaren Link zu generieren, der Sie zum entsprechenden Gliederungsfeld im Bericht führt? Hier im Forum habe ich nichts gefunden. Für meine eigenen Analysen und Präsentationen werde ich jmp selbst verwenden, aber ich werde auch in HTML veröffentlichen, damit andere Benutzer die Daten selbst ansehen können, falls dies einen Unterschied macht.
Re: Inhaltsverzeichnis erstellenDanke John, das funktioniert und deckt alle meine Fragen ab.
Die V-Liste und die H-Liste sind Teil des vollständigen Codes, den ich nicht hineinkopiert habe, es gibt 4 Diagramme pro Test und 2 Tabellen, also ist ein bisschen Layout-Code beteiligt.
Re: Inhaltsverzeichnis erstellenSie können den "Invisible"-Parameter in open() und rw << showWindow(0) verwenden, wenn Sie Berichtsfenster erstellen.
Hier ist ein Beispiel:
CharDt = open("$sample_data/Big Class.jmp", "Invisible");
testlist = CharDt << get column names ("Continuous", "string");
webreport = New Web Report();
For( k = 1, k <= N Items(testlist), k++,
rw = New Window(Char(Eval(testlist[k])));
rw << Show Window(0);
rw << Append(ob = Outline Box (Eval(testlist[k]),
//V List Box(
H List Box( Distribution(
Continuous Distribution( Column((Eval(testlist[k] ) ),
)
);
//);
));
));
webreport << Add Report( ob );
);
Ich habe das V-Listenfeld () auskommentiert, da es für einen einzelnen Bericht wie die Verteilung nicht benötigt wird, aber Sie benötigen es möglicherweise, wenn Sie mehrere Diagramme in jedem Berichtsfenster anordnen.
Re: Inhaltsverzeichnis erstellenOk ja, web report() und index() werden großartig funktionieren. Paar Fragen nach meinem Codebeispiel:
// construct report window
testlist = CharDt << get column names ("Continuous", "string");
webreport = New Web Report();
For( k = 1, k <= N Items(testlist), k++,
rw = New Window(Char(Eval(testlist[k])));
rw << Append(ob = Outline Box (Eval(testlist[k]),
V List Box(
H List Box(
[construction of various charts and tables]
);
);
));
webreport << Add Report( ob );
);
);
webreport << Index(
Title( "Characterization Report" ),
Description( "Characterization Report" ),
Font( "Arial Narrow", "Bold" ),
Theme( "Black" ),
Style( "Grid" )
);
file = webreport << Save( "$TEMP" );
If( !Is Empty( file ),
Web( file )
);
Gibt es eine Möglichkeit zu verhindern, dass sich die Fenster öffnen, damit ich meinen Bildschirm nicht mit 300 davon zuspamme? Oder gibt es alternativ einen (vielleicht besseren) Container, den ich anders als "neues Fenster" verwenden kann, den ich als Webberichtsobjekt übergeben kann, das überhaupt nicht auf dem Bildschirm angezeigt wird? Ich habe versucht, die Gliederungsbox einzugeben, aber sie hat das nicht akzeptiert, und ich habe mit nichts anderem experimentiert.
Re: Inhaltsverzeichnis erstellenGern geschehen.
Bitte lassen Sie es mich wissen, wenn ich noch etwas tun kann, um zu helfen.
Re: Inhaltsverzeichnis erstellenDanke Leute. Mit allen geschlossenen Fenstern zu beginnen, ist eine völlig offensichtliche Lösung, an die ich nie gedacht hätte, und ich habe mein Skript vorerst so eingestellt, dass es das tut. John Ich werde mit der Webberichtsfunktion experimentieren, wenn ich Zeit habe. Wenn mir etwas Nützliches einfällt, werde ich es in Zukunft hier posten. Die andere Option, an die ich gedacht habe (weniger wünschenswert), besteht darin, den HTML-Code selbst nachzubearbeiten, um eine Linktabelle am Anfang des Berichts zu erstellen, aber das würde einiges an zusätzlichem Lernen mit einem HTML-Editor erfordern.
Re: Inhaltsverzeichnis erstellenWenn Sie für die Präsentationen in JMP bereit wären, ein Journal zu erstellen, bei dem zunächst alle Gliederungsfelder geschlossen sind, könnten diese als Ihr Inhaltsverzeichnis dienen.
Obwohl dies wahrscheinlich unverändert in Interactive HTML veröffentlicht werden könnte, möchte ich eine andere Lösung für die Veröffentlichung in Interactive HTML mit einem Inhaltsverzeichnis anbieten.Im Web ist das Erstellen einer sehr langen Webseite (300 Test) möglicherweise nicht wünschenswert, da sie möglicherweise Probleme beim Laden im Browser hat, insbesondere wenn sie auf einem mobilen Gerät angezeigt wird.
Wenn Sie statt eines langen Berichts mit 300 Diagrammen 300 separate Diagramme in jeweils einem eigenen Fenster erstellt haben, können Sie diese in separaten HTML-Dateien veröffentlichen und das Inhaltsverzeichnis mit den folgenden JSL-Befehlen erstellen:
- webReport = Neuer Webbericht()
- webReport << Bericht hinzufügen (Berichtsfenster) [300 Mal] oder webReport << Berichte hinzufügen (Berichtsfenster)
- webReport << Index() zum Anpassen des Inhaltsverzeichnisses
- file = webReport << Speichern().
Ich würde damit beginnen, mir Beispiele im Scripting Index für jede dieser Funktionen anzusehen.
Wenn Sie untersuchen möchten, wie dies in der GUI funktioniert, bevor Sie JSL-Code schreiben, suchen Sie in JMP 13 im Menü „Ansicht“ nach „Webbericht erstellen …“ oder in JMP 14 im Menü „Datei“ nach „Veröffentlichen“.
Ich hoffe das hilft.
~John
Re: Inhaltsverzeichnis erstellenMir ist nicht bekannt, dass ich in einer Zeitschrift zu einem bestimmten Gliederungsfeld scrollen kann, aber ich kann mir vorstellen, auf einen Eintrag im Inhaltsverzeichnis zu klicken und entweder ein neues Fenster mit einer Kopie des Gliederungsfelds zu öffnen, das im neuen Fenster angezeigt wird , oder andernfalls schließt die Aktion des Klickens auf den Eintrag des Inhaltsverzeichnisses alle Gliederungsboxen und erweitert dann nur die Gliederungsbox für den angeklickten Eintrag.