Externe Cascading StyleSheets mit nicht-HTML-Reports verwenden

Vorgehensweise:

Sie können ein externes Cascading StyleSheet (CSS) verwenden, um einen Report zu formatieren, der als HTML erzeugt wird, aber dies gilt nicht für Reports, die mit einem anderen Ausgabetyp erzeugt wurden, wie z. B. PDF. Wenn Sie einen Report haben, den Sie manchmal als HTML und manchmal als einen anderen Ausgabetyp erzeugen, und Sie die Vorteile von Cascading StyleSheets nutzen möchten, empfehlen wir, dass Sie diese Methode verwenden:

Sie können den Standardcode für diese Technik in Ein externes CSS mit mehreren Ausgabetypen verwenden sehen.


Nach oben

x
Syntax: Ein externes CSS mit mehreren Ausgabetypen verwenden

Wenn Sie einen Report haben, den Sie manchmal als HTML und manchmal als einen anderen Ausgabetyp erzeugen, und Sie die Vorteile von Cascading StyleSheets (CSS) nutzen möchten, empfehlen wir, dass Sie diese Methode verwenden:

1.  -DEFAULTS &FORMAT='output_type'; 
2.  SET ONLINE-FMT = &FORMAT 
    TABLE FILE datasource 
     report_logic
    ON TABLE SET STYLE * 
3.  TYPE=REPORT, CSSURL = CascadingStyleSheetURL, $ 
4.  -IF &FORMAT NE 'HTML' GOTO NONHTML; 
5.  DEFMACRO=macro1, CLASS=class1, $
    DEFMACRO=macro2, CLASS=class2, $
     .
     .
     . 
6.  TYPE=component3, CLASS=class3, $
     .
     .
     . 
7.  -GOTO SHARED 
8.  -NONHTML 
9.  DEFMACRO=macro1, attribute1=value1, $
    DEFMACRO=macro2, attribute2=value2, $
     .
     .
     . 
10. TYPE=component4, attribute4=value4, $
     .
     .
     . 
11. -SHARED 
12. TYPE=component1, MACRO=macro1, $
    TYPE=component2, MACRO=macro2, $
     .
     .
     .
    ENDSTYLE
    END
  1. Weisen Sie der Dialogue Manager-Variable &FORMAT den Reportausgabetyp zu (z. B. HTML, PDF, PS oder EXL2K). Sie verwenden diese Variable, um das WebFOCUS StyleSheet hin- und herzuschalten zwischen Formatierung für HTML-Ausgabe und Formatierung für nicht-HTML-Ausgabe, und auch um einen Wert für SET ONLINE-FMT bereitzustellen.

    Sie können Formulare und andere Präsentationformen verwenden, um es dem Benutzer der Anwendung zu ermöglichen, den Reportausgabetyp auszuwählen.

  2. Stellen Sie den Reportausgabetyp auf den Wert von &FORMAT ein. In dieser Prozedur stellt SET ONLINE-FMT den Anzeigetyp für den Report ein. Sie könnten alternativ ON TABLE HOLD verwenden, um den Report als eine Datei zu speichern und den Dateityp einzustellen.
  3. Stellen Sie CSSURL so ein, dass mit dem externen Cascading StyleSheet verknüpft wird, das verwendet werden soll, um die HTML-Ausgabe zu formatieren. Wenn der Report nicht-HTML-Ausgabe erzeugt, wird dieser Befehl ignoriert.
  4. Verzweigen Sie mit den WebFOCUS StyleSheet-Deklarationen für den aktuellen Reportausgabetyp (der angegeben ist durch &FORMAT).
  5. Definieren Sie die HTML-Version der WebFOCUS StyleSheet-Macros. Diese Macros geben Formatierung an, die von allen Ausgabetypen verwendet werden.

    Diese HTML-Version der Macros wird mit externen Cascading StyleSheet-Klassen implementiert.

  6. Wenn es Formatierung gibt, die nur auf HTML-Ausgabe zutrifft, geben Sie sie hier an, und verwenden Sie dazu externe Cascading StyleSheet-Klassen.
  7. Verzweigen Sie mit den WebFOCUS StyleSheet-Deklarationen, die die Macros auf die Reportkomponenten anwenden.
  8. Dieses Label markiert den Anfang der Makrodefinitionen und eindeutiger Formatierungsdeklarationen für nicht-HTML-Reportausgabe.
  9. Definieren Sie die nicht-HTML-Version der WebFOCUS StyleSheet-Makros. Diese Macros geben Formatierung an, die von allen Ausgabetypen verwendet werden.

    Diese nicht-HTML-Version der Makros wird mit systemeigenen WebFOCUS StyleSheet-Attributen implementiert.

  10. Wenn es Formatierung gibt, die nur auf nicht-HTML-Ausgabe zutrifft, geben Sie sie hier mit den systemeigenen WebFOCUS StyleSheet-Attributen an.
  11. Dieses Label markiert den Anfang der Deklarationen, die Makros auf den Report anwenden.
  12. Dies sind die Makros, die zuvor definiert wurden, und auf den Report angewendet werden.


Beispiel: Ein externes CSS mit PDF- und HTML-Ausgabe verwenden

Diese Reportprozedur (videorpt.fex) kann sowohl HTML- als auch PDF-Ausgabe erzeugen. Wenn sie HTML-Ausgabe erzeugt, wird ein externes Cascading StyleSheet (reports.css) verwendet, um den Report zu formatieren. Wenn sie PDF-Ausgabe erzeugt, wird ein Inline-WebFOCUS StyleSheet verwendet. In beiden Fällen hat der Report einen hellblauen Hintergrund für die Spalte LASTNAME und es sind alle Spaltentitel fett gedruckt.

Die Prozedur, die zu sehen ist, ist für die Erzeugung von HTML-Ausgabe eingestellt.

videorpt.fex

1.  -DEFAULTS &FORMAT='HTML'; 
2.  SET CSSURL = http://websrv2/css/reports.css 
3.  SET ONLINE-FMT = &FORMAT
    TABLE FILE VIDEOTRK
    PRINT LASTNAME AS 'Last Name' FIRSTNAME AS 'First Name'
    BY LOWEST 5 CUSTID AS 'Cust ID'
    ON TABLE SET PAGE-NUM OFF
    ON TABLE SET STYLE * 
4.  -IF &FORMAT NE 'HTML' GOTO NONHTML; 
5.  DEFMACRO=boldTitles, CLASS=bold, $
    DEFMACRO=blueColumn, CLASS=blueBack, $ 
6.  -GOTO SHARED 
7.  -NONHTML 
8.  DEFMACRO=boldTitles, STYLE=bold, $
    DEFMACRO=blueColumn, BACKCOLOR=light blue, $ 
9.  -SHARED 
10. TYPE=DATA, COLUMN=LastName, MACRO=blueColumn, $
    TYPE=TITLE, MACRO=boldTitles, $
    ENDSTYLE
    END

reports.css

11. .bold {font-weight: bolder} 
12. .blueBack {background: lightblue} 
13. TABLE {border:0} 
13. TD    {border:0}
  1. Weisen Sie &FORMAT einen Defaultwert zu, um das WebFOCUS StyleSheet zwischen der Formatierung für HTML-Ausgabe und der Formatierung für PDF-Ausgabe hin- und herzuschalten. Es ist derzeit auf HTML-Ausgabe eingestellt.
  2. Stellen Sie CSSURL so ein, dass mit dem externen Cascading StyleSheet reports.css verknüpft wird, um die HTML-Ausgabe des Reports zu formatieren.
  3. Stellen Sie den Anzeigetyp des Reports auf den Wert &FORMAT ein.
  4. Verzweigen Sie mit den WebFOCUS StyleSheet-Deklarationen für den aktuellen Reportausgabetyp (HTML).
  5. Definieren Sie die HTML-Version der WebFOCUS StyleSheet-Makros, die mit externen Cascading StyleSheet-Klassen implementiert werden.
  6. Verzweigen Sie mit den WebFOCUS StyleSheet-Deklarationen, die die Makros auf die Komponenten für den Report anwenden.
  7. Dieses Label markiert den Anfang der Makrodefinitionen für PDF-Reportausgabe.
  8. Diese Deklarationen definieren die PDF-Version der WebFOCUS StyleSheet-Makros, die mit den systemeigenen WebFOCUS StyleSheet-Attributen implementiert werden. Diese Makrodefinitionen werden ignoriert, da &FORMAT auf HTML eingestellt ist.
  9. Dieses Label markiert den Anfang der Deklarationen, die Makros auf den Report anwenden.
  10. Dies sind die Makros, die zuvor definiert wurden, und auf den Report angewendet werden.
  11. Diese Cascading-StyleSheet-Deklaration macht den Text fetter als zuvor.
  12. Diese Cascading-StyleSheet-Deklaration macht einen Hintergrund hellblau.
  13. Diese CSS-Regeln für die Elemente TABLE und TD entfernen das Defaultraster für den Report.

Die Prozedur zeigt diesen Report an:


WebFOCUS