Comment : |
Pour la sortie HTML (et pour la sortie Excel 2000, qui utilise l'alignement HTML), vous pouvez positionner des éléments d'en-tête et de pied de page en utilisant les options de HEADALIGN. Ces options fonctionnent dans les limites de HTML et les technologies de navigation pour permettre une certaine souplesse pour formater. HEADALIGN fonctionne de la façon suivante :
Pour la sortie PDF, vous pouvez utilser l'option HEADALIGN=BODY pour aligner les éléments d'en-tête et de pied de page avec le corp du rapport.
Pour la sortie HTML ou Excel 2000, lorsque HEADALIGN est défini soit avec BODY ou INTERNAL, la sortie s'affiche en tant que table HTML, permettant au navigateur de déterminer la largueur des colonnes, limitant ainsi le positionnement précis des éléments. Une règle de base détermine le positionnement des éléments d'en-tête et de pied de page : chaque élément (du texte ou un champ intégré) est mis dans l'ordre dans la prochaine cellule du tableau HTML (<TD>). Où HEADALIGN égale NONE, la valeur par défaut, tous les éléments dans l'en-tête ou le pied de page sont enchaînés, dans une seule cellule. Le navigateur tend le tableau d'en-tête et le tableau de rapport afin de s'adapter à la longueur du texte.
Vous pouvez contrôler l'emplacement des éléments en remplaçant la valeur par défaut et en choisissant BODY ou INTERNAL :
Pour comparer des sorties types, consultez Comparaison de la sortie générée avec les options HEADALIGN.
Pour diviser une chaîne de texte en éléments multiples afin de les manipuler dans les colonnes, vous pouvez utiliser les signes de localisation <+0> dans la requête. Pour plus d'informations, consultez Désignation de composants de rapport dans la syntaxe de feuille de style WebFOCUS.
Vous pouvez utiliser les options HEADALIGN conjointement avec l'attribut COLSPAN. COLSPAN permet aux éléments d'en-tête de s'étendre sur des colonnes de tableau multipes, fournissant ainsi plus de souplesse pour concevoir vos en-têtes. Pour plus de détails, consultez Aligner un élément d'en-tête ou de pied de page dans un rapport HTML, EXL07, EXL2K ou PDF..
Si un rapport contient plus d'un type d'en tête ou de pied de page, vous pouvez aligner individuellement tout élément des en-têtes et pieds de page en utilisant cette syntaxe.
Conseil : pour un résumé d'autres méthodes d'alignement, consultez Choix d'une méthode d'alignement pour les éléments d'en-tête ou pied de page.
TYPE = {REPORT|headfoot}, HEADALIGN = option, $
où :
NONE qui place les éléments d'en-tête des rapports HTML dans une table HTML intégrée dans la table principale (corps), et enchaîne, dans une seule cellule de la table intégrée, tous les éléments d'en-tête (texte et champs) sur une ligne. Dans les rapports PDF, ceci utilise l'alignement d'en-tête par défaut. NONE est la valeur par défaut.
INTERNAL qui place les éléments d'en-tête dans un tableau HTML tous seuls, où chaque élément se trouve dans une différente cellule. Cela leur permet de s'aligner verticalement, indépendamment des colonnes de données. Les longueurs des éléments d'en-tête n'ont pas d'incidence sur les longueurs des colonnes de rapport et vice versa.
Remarque : HEADALIGN=INTERNAL n'est pas pris en charge avec les rapports PDF.
BODY qui aligne les éléments d'en-tête avec les colonnes de données. Pour la sortie HTML, ceci place les éléments dans les cellules du même tableau HTML que le corps du rapport. Comme ils ont les mêmes longueurs de colonne, les éléments dans l'en-tête et les données dans le corps du rapport s'alignent naturellement. Pour la sortie PDF, ceci aligne les éléments d'en-tête ou de pied de page sur les colonnes de données.
Remarque : HEADALIGN=BODY ne prend pas en charge l'affichage en panneaux.
Pour des informations connexes, consultez Comparaison de la sortie générée avec les options HEADALIGN. Vous pouvez combiner les options HEADALIGN avec l'attribut COLSPAN afin de permettre aux éléments d'en-tête de s'étendre sur des colonnes de tableaux HTML multiples. Pour plus de détails, consultez Aligner un élément d'en-tête ou de pied de page dans un rapport HTML, EXL07, EXL2K ou PDF..
Pour des informations connexes, consultez Comparaison de la sortie générée avec les options HEADALIGN. Vous pouvez combiner les options HEADALIGN avec l'attribut COLSPAN afin de permettre aux éléments d'en-tête de s'étendre sur des colonnes de tableaux HTML multiples. Pour plus de détails, consultez Aligner un élément d'en-tête ou de pied de page dans un rapport HTML, EXL07, EXL2K ou PDF..
Dans la requête suivante contre la source de données GGORDER, le pied de page secondaire a un objet de texte ("Total") et un objet de champ (ST.QUANTITY). Le pied de page secondaire aligne les éléments avec leurs colonnes de rapport avec TYPE=SUBFOOT, HEADALIGN=BODY ,$. L'objet de texte est placé dans la deuxième colonne de rapport à l'aide du signe de localisation <+0, et l'objet de champ est placé dans la troisième colonne de rapport à l'aide d'un autre signe de localisation <+0. Puis, l'élément de texte est aligné à gauche (par défaut) avec sa colonne de rapport. L'objet de champ est aligné à droite avec sa colonne de rapport :
TABLE FILE GGORDER PRINT QUANTITY ORDER_NUMBER ORDER_DATE STORE_CODE BY PRODUCT_CODE BY PRODUCT_DESCRIPTION WHERE ORDER_DATE EQ '01/01/96' WHERE STORE_CODE EQ 'R1019' ON PRODUCT_CODE SUBFOOT " <+0 Total: <+0 <ST.QUANTITY" ON TABLE SET PAGE-NUM OFF ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLESHEET * TYPE = SUBFOOT,HEADALIGN=BODY, $ TYPE = SUBFOOT,OBJECT=TEXT,STYLE = BOLD, $ TYPE = SUBFOOT,OBJECT=FIELD,JUSTIFY=RIGHT,STYLE = BOLD, $ ENDSTYLE END
La sortie affiche que le texte Total est aligné avec les noms de produit et l'objet de champ du sous-total est aligné à droite avec la colonne Unités commandées.
Lorsque vous alignez les éléments d'en-tête avec la ligne de données à l'aide de HEADALIGN=BODY, la première ligne des champs sert de ligne de données d'ancrage. Chaque ligne d'en-tête contient le nombre de colonnes présentées dans la ligne de données d'ancrage. Toutes colonnes supplémentaires qui peuvent apparaître sur d'autres lignes de données ne sont pas présentées. Si la première ligne de données contient moins de cellules de valeur de données que d'autres lignes de données, il vous sera impossible d'ajouter des colonnes d'alignement dans les en-têtes pour ces colonnes supplémentaires.
Dans l'exemple suivant, la première ligne (la ligne de données d'ancrage) contient une valeur unique. Les éléments placés dans les en-têtes pour correspondre à la colonne deux qui apparaît sur les lignes suivantes ne sont pas affichés.
SET LAYOUTGRID=ON TABLE FILE GGSALES "Product<+0>" "Units<+0>Dollars" SUM PRODUCT AS '' OVER UNITS/D8C AS '' DOLLARS/D12.2CM AS '' BY PRODUCT NOPRINT ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT, SQUEEZE=ON,FONT=ARIAL, SIZE=8, LEFTGAP=.1, RIGHTGAP=.1, GAPINTERNAL=ON, LEFTMARGIN=1,$ TYPE=REPORT, BORDER=ON, $ TYPE=HEADING, BORDERALL=ON, HEADALIGN=BODY, $ TYPE=HEADING, LINE=1, ITEM=1, COLSPAN=2, WIDTH=2, JUSTIFY=LEFT, $ TYPE=HEADING, LINE=2, ITEM=1, WIDTH=1, JUSTIFY=LEFT, $ TYPE=HEADING, LINE=2, ITEM=2, WIDTH=1, JUSTIFY=LEFT, $ TYPE=REPORT, COLUMN=PRODUCT(2), SQUEEZE=2, $ TYPE=REPORT, COLUMN=UNITS, SQUEEZE=1, $ TYPE=REPORT, COLUMN=DOLLARS, SQUEEZE=1, $ END
La sortie montre que les lignes d'en-tête ont chacune une colonne, alors que les lignes de données alternent entre une colonne et deux colonnes :
Les requêtes suivantes illustrent les différences d'alignement de chaque définition HEADALIGN. Les lignes de grille sont exposées dans la sortie pour aider à distinguer le tableau HTML créé pour le corps du rapport des tableaux HTML intégrés créés pour l'en-tête dans certaines variations.
Toutes les définitions HEADALIGN sont compatibles avec la syntaxe COLSPAN, qui permet aux éléments d'en-tête de s'étendre sur des colonnes multiples.
TABLE FILE CAR SUM SALES BY COUNTRY BY CAR BY MODEL ON COUNTRY SUBHEAD "This is my subhead" " " "Country is:<COUNTRY Car is:<CAR" "Model is:<MODEL" IF COUNTRY EQ 'ENGLAND' ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=SUBHEAD, HEADALIGN=OPTION, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $ ENDSTYLE END
HEADALIGN=NONE sans la deuxième déclaration TYPE=SUBHEAD mise en évidence dans la syntaxe de la requête, une table distincte est créée avec un alignement par défaut à gauche. Le texte et les champs sur chaque ligne d'en-tête se sont enchaînés dans une seule cellule de tableau HTML.
TYPE=SUBHEAD, HEADALIGN=NONE, $
HEADALIGN=NONE avec COLSPAN
TYPE=SUBHEAD, HEADALIGN=NONE, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
La première ligne est centrée au-dessus des quatre colonnes du tableau interne, selon la définition COLSPAN=4.
HEADALIGN=INTERNAL crée un autre tableau HTML. Les colonnes sont générées en fonction du nombre d'éléments (texte et champs) dans l'en-tête. Chaque élément est placé dans une différente cellule. Ces colonnes ne correspondent pas à celles dans le tableau HTML pour le corps du rapport.
TYPE=SUBHEAD, HEADALIGN=INTERNAL, $
« Country » s'aligne avec « Model » dans la première colonne du tableau interne. La valeur de <COUNTRY s'aligne avec celle de <MODEL dans la deuxième colonne.
HEADALIGN=INTERNAL with COLSPAN
TYPE=SUBHEAD, HEADALIGN=INTERNAL, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
La première ligne est centrée au-dessus des quatre colonnes du tableau interne, selon la définition COLSPAN=4.
HEADALIGN=BODY place les lignes de l'en tête dans les cellules du tableau HTML principal. En conséquence, les colonnes de l'en-tête correspondent aux colonnes du tableau principal.
TYPE=SUBHEAD, HEADALIGN=BODY, $
« Country » s'aligne avec « Model » dans la première colonne du tableau HTML principal (corps). La valeur de <COUNTRY s'aligne avec celle de <MODEL dans la deuxième colonne.
HEADALIGN=BODY avec COLSPAN
TYPE=SUBHEAD, HEADALIGN=BODY, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
COLSPAN contrôle l'alignement intercolonne de la première ligne de l'en-tête.
Cette requête crée un rapport HTML en utilisant HEADALIGN = BODY pour aligner les deux éléments du pied de page de tri (TOTAL IS et la valeur) sur chacune des deux colonnes (« Product » and « Ordered Units »). JUSTIFY = RIGHT, qui applique le pied de page de tri entier, et justifie à droite chaque élément de pied de page de tri au-dessous de la colonne de données.
TABLE FILE GGORDER PRINT QUANTITY BY PRODUCT_CODE NOPRINT BY PRODUCT_DESCRIPTION WHERE ORDER_DATE EQ '01/01/96' WHERE STORE_CODE EQ 'R1019' ON PRODUCT_CODE SUBFOOT "TOTAL IS: <ST.QUANTITY" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = OFF, $ TYPE = SUBFOOT, HEADALIGN = BODY, JUSTIFY = RIGHT, $ TYPE = SUBFOOT, OBJECT = FIELD, STYLE = BOLD, $ ENDSTYLE END
La sortie partielle est :
Cette requête crée un tableau HTML intégré pour un en-tête de page, dans le tableau HTML qui détermine l'alignement dans le corps du rapport. Ce tableau comprend trois rangées et trois colonnes pour s'adapter à tous les éléments d'en-tête.
Sur la première ligne de l'en-tête, un signe de localisation (<+0>) crée deux éléments différents : le premier élément est vide, et le deuxième élément est Gotham Grinds, Inc. Dans la sortie, le deuxième élément s'affiche dans la deuxième cellule de la première ligne du tableau incorporé. Pour plus d'informations, consultez Désignation de composants de rapport dans la syntaxe de feuille de style WebFOCUS.
Les deuxième et quatrième lignes de l'en-tête sont vides.
Les signes de localisation sur la troisième ligne de l'en-tête se divisent en trois éléments de texte : « Orders Report » , vide, « Run on: &DATE ». Dans la sortie, chaque élément s'affiche dans une cellule dans la troisième rangée du tableau HTML intégré, dans l'ordre spécifié dans la requête.
TABLE FILE GGORDER HEADING " <+0>Gotham Grinds, Inc." " " "Orders Report <+0> <+0> Run on: &DATE" " " PRINT ORDER_NUMBER ORDER_DATE STORE_CODE QUANTITY BY PRODUCT_CODE BY PRODUCT_DESCRIPTION IF RECORDLIMIT EQ 10 ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = ON, $ TYPE = HEADING, HEADALIGN = INTERNAL, STYLE = BOLD, $ ENDSTYLE END
GRID=ON dans la requête vous permet de voir le tableau HTML incorporé pour l'en-tête et le tableau HTML principal pour le corps du rapport.
La sortie est :
Vous noterez que le positionnement est conservé lorsque la grille est masquée (off) :
Cet exemple utilise un fichier Master et la procédure MODIFY créée dans Inclure un champ de texte dans un pied de page de tri. Refaites cet exemple-là et revenez ici pour aligner le champ de texte.
La requête utilise HEADALIGN=BODY pour aligner les lignes du champ de texte dans un pied de page de tri. Avec ce paramètre, chaque élément dans le pied de page s'aligne sur une colonne dans le tableau HTML principal généré pour le rapport : le premier élément (le texte Course Description : ) s'aligne sur la première colonne de données, CATALOG ; le champ intégré s'aligne sur la deuxième colonne. La grille est activée dans cet exemple afin de rendre l'alignement plus facile à voir.
TABLE FILE TXTFLD BY CATALOG SUBFOOT "Course Description: <TEXTFLD" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = ON, $ TYPE = SUBFOOT, HEADALIGN = BODY, $ ENDSTYLE END
La sortie affiche une nouvelle valeur pour le champ de texte chaque fois que le champ CATALOG change de valeur :
Cet exemple utilise un fichier Master et la procédure MODIFY créée dans Inclure un champ de texte dans un pied de page de tri. Refaites cet exemple-là et revenez ici pour aligner le champ de texte. Cette requête applique du texte gras à la deuxième ligne d'un pied de page de tri multiligne, qui comprend le texte « Course Description » ainsi que le texte du champ TEXTFLD. La première ligne du pied de page de tri est le texte « Evening Course. »
TABLE FILE TXTFLD BY DESCRIPTION AS 'CATALOG' SUBFOOT "Evening Course" "Course Description: <TEXTFLD" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = OFF, $ TYPE = SUBFOOT, HEADALIGN = BODY, $ TYPE = SUBFOOT, LINE = 2, STYLE = BOLD, $ ENDSTYLE END
La sortie est :
Si la feuille de style identifie le champ de texte comme un objet de style,
TYPE = SUBFOOT, HEADALIGN = BODY, $ TYPE = SUBFOOT, LINE = 2, OBJECT = FIELD, STYLE = BOLD, $
alors seul le texte dans TEXTFLD s'affiche en caractères gras.
WebFOCUS |