Vous pouvez utiliser une feuille de style en cascade externe (CSS) pour formater un rapport généré sous forme HTML, mais non pas un rapport généré sous d'autres types de sortie, tel que PDF. Si vous générez un rapport des fois sous forme HTML et des fois sous un autre forme, et que vous souhaitez profiter des avantages des feuilles de style en cascade externes, nous vous conseillons d'utiliser cette technique :
x
Syntaxe : Utiliser une CSS externe avec des types de sortie multiples
Si vous générez un rapport des fois sous forme HTML et des fois sous un autre forme, et que vous souhaitez profiter des avantages des feuilles de style en cascade externes, nous vous conseillons d'utiliser cette technique :
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
- Attribuez le type de sortie de rapport (par exemple, HTML, PDF, PS ou EXL2K) à la variable &FORMAT de Dialogue Manager. Cette variable vous permet de basculer la feuille de style WebFOCUS entre le formatage de la sortie HTML et le formatage de la sortie non-HTML, vous pouvez aussi indiquer une valeur pour SET ONLINE-FMT.
Vous pouvez vous servir de formes et de toute autre logique de présentation pour permettre à l'utilisateur de l'application de sélectionner le type de sortie de rapport.
- Définissez le type de sortie du rapport comme &FORMAT. Dans cette procédure, SET ONLINE-FMT règle le type d'affichage pour le rapport. Sinon, vous pouvez utiliser ON TABLE HOLD pour sauvegarder le rapport en tant que fichier et définir son type de fichier.
- Définissez CSSURL pour créer un lien à la feuille de style en cascade externe à utiliser pour le formatage de la sortie HTML du rapport. Lorsque le rapport génère la sortie non-HTML, cette commande est ignorée.
- Créez une branche entre les déclarations de feuille de style WebFOCUS pour le type de sortie de rapport actuel (qui est indiqué par &FORMAT).
- Définissez la version HTML des macros de feuille de style WebFOCUS. Les macros spécifient le formatage commun à tous les types de sortie.
Cette version des macros HTML est implémentée à l'aide de classes de feuilles de style en cascade externes.
- S'il existe un type de formatage qui s'applique uniquement à la sortie HTML, spécifiez-le en utilisant des classes de feuilles de style en cascade externes.
- Créez une branche entre les déclarations de feuille de style WebFOCUS qui appliquent les macros aux composants du rapport.
- Ce label indique le début des définitions macros et des déclarations de formatage unique pour la sortie de rapport non-HTML.
- Définissez la version non-HTML des macros de feuille de style WebFOCUS. Les macros spécifient le formatage commun à tous les types de sortie.
Cette version non-HTML des macros est mise en œuvre en utilisant des attributs de feuille de style WebFOCUS natifs.
- S'il existe du formatage qui ne s'applique qu'à la sortie non-HTML, spécifiez-le en utilisant des attributs de feuilles de style en cascade WebFOCUS natifs.
- Ce label indique le début des déclarations qui appliquent des macros au rapport.
- Ce sont les macros qui ont été définis plus tôt et que l'on s'applique au rapport.
Exemple : Utilisation de CSS externes avec la sortie PDF et HTML
Cette procédure de rapport (videorpt.fex) peut générer la sortie HTML et PDF. Lorsqu'elle génère une sortie HTML, elle utilise une feuille de style en cascade externe (reports.css) pour mettre en forme le rapport. Lorsqu'elle génère une sortie PDF, elle utilise une feuille de style WebFOCUS incorporée. Dans les deux cas, le rapport applique un arrière-plan de bleu claire à la colonne LASTNAME et rend tous les titres de colonne gras.
La procédure comme elle apparaît ci-après, est prête à générer la sortie HTML.
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}
- Attribuez une valeur par défaut à &FORMAT pour basculer la feuille de style WebFOCUS entre le formatage de la sortie HTML et le formatage de la sortie PDF. Actuellement, HTML est défini pour la sortie.
- Créez un lien entre CSSURL et la feuille de style en cascade externe reports.css pour formater la sortie HTML du rapport.
- Définissez le type d'affichage du rapport comme &FORMAT.
- Créez une branche entre les déclarations de feuille de style WebFOCUS pour le type de sortie de rapport actuel (HTML).
- Définissez la version HTML des macros de feuille de style WebFOCUS, mises en application en utilisant des classes de feuilles de style en cascade externes.
- Créez une branche entre les déclarations de feuille de style WebFOCUS qui appliquent les macros aux composants du rapport.
- Ce label indique le début des définitions macros pour la sortie de rapport PDF.
- Ces déclarations définissent la version PDF des macros de feuille de style WebFOCUS, qui sont mis en œuvre grâce aux attributs de feuille de style WebFOCUS natifs. Comme &FORMAT est mis à HTML, ces déclarations macros sont ignorées.
- Ce label indique le début des déclarations qui appliquent des macros au rapport.
- Ce sont les macros qui ont été définis plus tôt et que l'on s'applique au rapport.
- Cette déclaration de feuille de style en cascade rend le texte même plus gras qu'avant.
- Cette déclaration de feuille de style en cascade rend l'arrière-plan bleu clair.
- Ces règles CSS pour les éléments TABLE et TD enlèvent la grille par défaut du rapport.
La procédure affiche ce rapport :
