Prise en charge des en-têtes et des pieds de page sur des panneaux dans la sortie de rapport PDF

Comment :

Lorsque les colonnes présentées sur des rapports PDF ne peuvent pas être affichées sur une seule page, les pages se recouvrent automatiquement de panneaux. Affichage en panneaux des colonnes suivantes pour la même page sur les pages de dépassement. Ces pages de dépassement sont générées jusqu'à ce que la largeur complète du rapport est présentée, après lesquelles la page verticale suivante est générée avec un nouveau numéro de page et ses panneaux horizontals associés.

Afin de créer des panneaux qui suivent le panneau initial plus lisibles, vous pouvez désigner que les éléments d'en-tête depuis le panneau initial devrait être répétés dans chaque panneau suivant à l'aide de l'attribut de feuille de style HEADPANEL=ON.

Lorsque l'affichage de panneaux se produit, si le numérotation des pages par défaut est utilisé, le numéro de page présenté inclut le numéro de page et le numéro de panneau (par exemple, 1.1, 1.2, 1.3). L'activation de l'attribut HEADPANEL peut aussi provoquer le panneau de désignation à inclure l'attribut TABPAGENO.

HEADPANEL peut être désigné pour le rapport entier, entraînant tous les en-têtes et pieds de page à être reproduits sur les pages en panneaux. HEADPANEL peut également être activé pour les en-têtes, pieds de page, sous-titres, ou sous pieds de page individuels.

HEADPANEL entraîne les limites de la page initiale à être reproduites sur les pages en panneaux. Le contrôle supplémentaire des bordures d'en-tête et de pied de page secondaire peut être acquis grâce à l'utilisation de ALIGN-BORDERS qui permet de désigner, que les bordures de sous-élément devraient s'aligner avec le corps des données au lieu de la page ou des en-têtes de rapport. Pour plus d'informations sur l'utilisation de ALIGN-BORDERS avec HEADPANEL, consultez Aligner les marges d'en-tête secondaire et de pied de page secondaire avec le corps du rapport.


Haut de page

x
Syntaxe : Répéter les éléments d'en-tête dans les panneaux
TYPE={REPORT|headfoot [BY=sortcolumn]}, HEADPANEL={ON|OFF}, $

où :

REPORT
Répète tous les en-têtes, pieds, en-têtes de page, pieds de page, en-têtes et pieds de page secondaires de rapport.
headfoot
Désigne un en-tête ou un pied de page. Vous pouvez choisir :
  • TABHEADING, un en-tête de rapport. Il s'affiche une fois au début du rapport ; il est généré par ON TABLE SUBHEAD.
  • TABFOOTING, un pied de page de rapport. Il s'affiche une fois à la fin du rapport ; il est généré par ON TABLE SUBFOOT.
  • HEADING. un en-tête de rapport. Il s'affiche en haut de chaque page de rapport ; il est généré par HEADING.
  • FOOTING, un pied de page. Il s'affiche en bas de chaque page de rapport ; il est généré par FOOTING.
  • SUBHEAD, qui désigne un en-tête de tri. Il s'affiche au début d'un groupe de tri vertical (BY) (généré par ON sortfield SUBHEAD).
  • SUBFOOT, qui désigne un pied de page de tri. Il s'affiche à la fin d'un groupe de tri vertical (BY) (généré par ON sortfield SUBFOOT).
BY
Lorsqu'un rapport contient plusieurs en-têtes de tri ou pieds de page de tri, dont chacune est associée à une différente colonne de tri vertical (BY), la commande BY vous permet d'identifier laquelle des en-têtes ou des pieds de page de tri vous souhaitez formater.

Si plusieurs en-têtes de tri ou pieds de page de tri sont associés à différentes colonnes de tri vertical (BY), et que vous omettez cet attribut et cette valeur, le formatage s'applique à tous les en-têtes et pieds de page de tri.

sortcolumn
spécifie la colonne de tri vertical (BY) associée à l'un des en-têtes ou des pieds de page de tri du rapport.
ON
Répète les éléments d'en-tête ou de pied de page spécifiés dans chaque panneau.
OFF
Affiche les élements d'en-tête ou de pied de page dans le premier panneau seulement. OFF est la valeur par défaut.

Notez que l'attribut HEADPANEL=ON ne peut être appliqué qu'à l'ensemble de l'en-tête ou du pied de page, pas aux lignes individuelles ou aux éléments dans l'en-tête ou pied de page.



Exemple : Répéter tous les en-têtes et pieds de page dans les panneaux de rapport

La requête suivante contre la source de données GGSALES totalise les unités vendues, les unités vendues budgétées, les ventes en dollars, et les ventes budgétées, par reégion, état, ville, catégorie, et produit. Le rapport a un en-tête de page et, pour chaque région, un pied de page secondaire :

TABLE FILE GGSALES
HEADING
"PRODUCT SALES REPORT"
""
"Page<TABPAGENO"
""
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY REGION NOPRINT
BY ST BY CATEGORY BY PRODUCT
ON REGION SUBFOOT
" "
" SUBFOOT FOR REGION <REGION "
" SUBTOTAL BUDDOLLARS: <ST.BUDDOLLARS SUBTOTAL DOLLARS: <ST.DOLLARS "
" "
ON TABLE SET BYPANEL ON
ON TABLE SET PAGE ON
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF, $
TYPE = REPORT, HEADPANEL=OFF,$
ENDSTYLE
END

La requête définit BYPANEL ON, de façon à ce que chaque panneau affiche les valeurs de critères de tri. Cependant, puisque HEADPANEL=OFF pour le rapport entier, le premier panneau de la page 1 a l'en-tête et le pied de page secondaire, mais le deuxième panneau n'a rien.

La sortie pour la page 1, panneau 1 a l'en-tête et le pied de page secondaire, comme le montre l'image suivante. Remarquez qu'avec HEADPANEL=OFF, TABPAGENO, n'inclut pas le numéro du panneau :

La sortie pour la page 1, panneau 2 n'a pas d'en-tête ou de pied de page secondaire, comme le montre l'image suivante.

La sortie suivante montre les panneaux 1 et 2 si la déclaration de feuille de style est modifiée pour définir HEADPANEL=ON pour le rapport entier (TYPE=REPORT, HEADPANEL=ON ,$). L'en-tête et le pied de page secondaire sont répétés dans chaque panneau. Avec HEADPANEL=ON, TABPAGENO inclut le numéro de panneau.



Exemple : Répéter un pied de page secondaire dans les panneaux dans la sortie de rapport PDF

La requête suivante contre la source de données GGSALES spécifie l'attibut HEADPANEL=ON seulement pour le pied de page secondaire, pas pour le rapport entier. Notez que cette requête utilise la numérotation des pages par défaut (ON TABLE SET PAGE ON) plutôt que TABPAGENO pour présenter les numéros de page sur chaque page :

TABLE FILE GGSALES
HEADING
" PRODUCT SALES REPORT" 
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY REGION NOPRINT
BY ST BY CITY  BY CATEGORY BY PRODUCT 
ON REGION SUBFOOT
" "
" SUBFOOT FOR REGION <REGION "
" SUBTOTAL BUDDOLLARS: <ST.BUDDOLLARS SUBTOTAL DOLLARS:  <ST.DOLLARS "
" "
ON TABLE SET BYPANEL ON
ON TABLE SET PAGE ON
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE = SUBFOOT, HEADPANEL=ON,$
 
ENDSTYLE
END

Le panneau 1 affiche l'en-tête et le pied de page secondaire, comme le montre l'image suivante :

Le panneau 2 affiche seulement le pied de page secondaire, pas l'en-tête, comme le montre l'image suivante.

Puisque l'en-tête de page n'est pas répété, si vous utilisez la variable de système <TABPAGENO pour placer le numéro de page dans l'en-tête, l'en-tête n'affichera pas le numéro de panneau et ne s'affichera pas dans le second panneau :

TABLE FILE GGSALES
HEADING
" PRODUCT SALES REPORT PAGE <TABPAGENO" 
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY REGION NOPRINT
BY ST BY CITY  BY CATEGORY BY PRODUCT 
ON REGION SUBFOOT
" "
" SUBFOOT FOR REGION <REGION "
" SUBTOTAL BUDDOLLARS: <ST.BUDDOLLARS SUBTOTAL DOLLARS:  <ST.DOLLARS "
" "
ON TABLE SET BYPANEL ON
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF, $
TYPE = SUBFOOT, HEADPANEL=ON,$
 
ENDSTYLE
END

Le premier panneau affiche le numéro de page dans l'en-tête, sans le numéro de panneau, comme le montre l'image suivante.

Le deuxième panneau n'affiche pas l'en-tête et donc, n'affiche pas le numéro de page incorporé, comme le montre l'image suivante :



Exemple : Répéter les en-têtes et les pieds de page avec style sur les pages en panneaux

La requête suivante contre la source de données GGSALES a un en-tête de rapport, en-tête de page avec une image, un pied de page, un en-tête secondaire, un pied de page secondaire et un sous-total :

SET BYPANEL=ON
DEFINE FILE GGSALES
SHOWCATPROD/A30 = CATEGORY || ' / ' || PRODUCT;
END
TABLE FILE GGSALES
SUM 
     DOLLARS/I8M AS ''
BY REGION
BY ST
BY CITY
ACROSS SHOWCATPROD AS 'Product Sales'
     
ON REGION SUBHEAD
" "
"Subheading Region <REGION"
" "
ON REGION SUBTOTAL AS '*TOTAL'
ON REGION SUBFOOT WITHIN 
" "
"Subfooting Region <REGION"
" "
ON TABLE SUBHEAD
"Report Heading"
HEADING
"Page <TABPAGENO  "
" "
" "
" "
FOOTING
" "
"PAGE FOOTING "
ON TABLE SUBFOOT
" "
"Report Footing"
ON TABLE SET PAGE-NUM OFF 
-*ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,
$
TYPE=REPORT,
     FONT='ARIAL',
     SIZE=9,
     HEADPANEL=ON,
     BORDER=ON,
$
TYPE=TITLE,
     STYLE=BOLD,
$
TYPE=TABHEADING,
     SIZE=20,
     STYLE=BOLD,
$
TYPE=TABFOOTING,
     SIZE=20,
     STYLE=BOLD,
$
TYPE=HEADING,
     SIZE=12,
     STYLE=BOLD,
$
TYPE=HEADING,
     LINE=1,
     JUSTIFY=RIGHT,
$
TYPE=HEADING,
     LINE=2,
     JUSTIFY=RIGHT,
$
TYPE=HEADING,
     LINE=3,
     JUSTIFY=RIGHT,
$
TYPE=HEADING,
     LINE=4,
     JUSTIFY=RIGHT,
$
TYPE=HEADING,
     LINE=5,
     JUSTIFY=RIGHT,
$
TYPE=HEADING,
     IMAGE=smplogo1.gif,
     POSITION=(+0.000000 +0.000000),
$
TYPE=FOOTING,
     SIZE=12,
     STYLE=BOLD,
     JUSTIFY=RIGHT,
$
TYPE=SUBHEAD,
     SIZE=10,
     STYLE=BOLD,
$
TYPE=SUBFOOT,
     SIZE=10,
     STYLE=BOLD,
$
TYPE=SUBTOTAL,
     BACKCOLOR=RGB(210 210 210),
$
TYPE=ACROSSVALUE,
     SIZE=9,
     WRAP=ON,
$
TYPE=ACROSSTITLE,
     STYLE=BOLD,
$
TYPE=GRANDTOTAL,
     BACKCOLOR=RGB(210 210 210),
     STYLE=BOLD,
$
ENDSTYLE
END

Puisque HEADPANEL=ON pour le rapport entier, les deux panneaux affichent tous les éléments d'en-tête et de pied de page.

L'image suivante montre la page 1, panneau 1.

L'image suivante montre la page 1, panneau 2.


WebFOCUS