2016-04-07 5 views
0

Auf meiner xPage habe ich eine Schaltfläche, die einige Ausgabe/Bericht (SSJS) generiert. Gibt es eine Möglichkeit, ein neues modales oder float-Fenster zu öffnen und diese Ausgabe hinein zu legen. Es wird ein kleines Fenster sein, um die Berichtsergebnisse zu zeigen. Aber Bericht wird ein riesiges wie wenige Megabits sein. Angenommen, es ist keine gute Idee, die Ausgabe zeilenweise in einen Bereich zu verschieben und dann an ein Feld in einem neuen Fenster zu binden. Jede mögliche Lösung?HTML-Bericht Ausgabefenster/Dialog

+0

"kleines (modales) Fenster" + "riesig wie einige Megabits" = ernstes Problem –

+0

OK Herr Kossuth ... Was ist die beste Vorgehensweise, um solche Aktionen durchzuführen? Ich muss einen Anwendungsbericht generieren und ihn den Benutzern entweder auf derselben Webseite oder in der txt-Datei oder in der E-Mail-Nachricht – VladP

+0

vorstellen. Ich stimme für Paul Stephen Withers 'Antwort - öffne sie für ein neues Fenster. Benutzer kann STRG + S drücken, um es zu speichern. Oder verwenden Sie den richtigen Inhaltstyp, um den Dialog zum Speichern im Browser automatisch zu aktivieren. –

Antwort

2

Es lohnt sich wahrscheinlich, CSJS zu verwenden, um window.open() aufzurufen und eine neue XPage zu öffnen (was effektiv ein XAgent wäre), obwohl dies durch Popup-Blocker verhindert wird. Stellen Sie jedoch sicher, dass Sie viewState="nostate" auf dem XAgent XPage festlegen, um zu vermeiden, dass ein Komponentenbaum dafür serialisiert wird.

+0

Der Bericht wird von SSJS generiert. Und es werden nur wenige Seiten Text sein, die ich entweder im aktuellen oder im neuen Fenster anzeigen möchte (nur der Berichtstext). Nicht sicher, ob es mit CSJS funktionieren kann. – VladP

+0

Das CSJS wird benötigt, um ein neues Browserfenster oder einen neuen Dialog zu starten (ein SSJS-Ansatz löst weiterhin 'view.postScript' aus, um einen Dialog im Browser zu starten. Die angezeigte Seite (in neuer Seite oder als eine andere URL geladen in einem Dialog) wäre immer noch SSJS. –

2

Anstatt window.open() zu verwenden, könnten Sie ein Dojo verwenden. Dies wird potenzielle Probleme mit Popup-Blockern vermeiden.

0

Sie können auch das <xe:dialog>-Tag aus der Erweiterungsbibliothek, das Dialog-Steuerelement verwenden, und Sie können das Dialog-Inhaltssteuerelement einschließen. Sie können den Inhalt laden, wenn Sie das Dialogfeld öffnen. Der Dialog wird mit XSP.openDialog (...) gestartet

Wie für den Megabyte-Bericht: wo ist es gespeichert? Im Rich-Text-Feld in einem Dokument?

+0

der Bericht wird auf Fly von SSJS generiert .. Dann möchte ich diesen Text in einem leeren Fenster zeigen .. Wie im Klartext – VladP