Création d'un rapport composé

Dans cette section :

Les rapports composés regroupent des rapports multiples en un seul fichier. Cela vous permet de concaténer des rapports avec des formats stylisés (tels que PDF, DHTML, PS, EXL2K, ou EXL07). Il est aussi possible d'intégrer dans un rapport composé des fichiers d'image, y compris des graphiques enregistrés sous forme d'images.

Il existe trois types de rapports composés :

Bien que la longueur du rapport inclut toujours toutes les lignes de données générées par la requête, la largeur du rapport est limitée par la taille du conteneur de composants défini. Cela veut dire que l'affichage de panneaux n'est pas pris en charge pour les rapports composés, bien que ce soit pour les rapports PDF non composés. Pour les documents PDF non composés, si la largeur des données de rapport est plus large que la taille de page définie, un panneau (ou une page de dépassement horizontale) est généré automatiquement. Cette fonction d'affichage de panneaux n'est pas prise en charge pour les documents PDF composés, chaque composant composé doit tenir dans la largeur du conteneur défini pour que le rapport soit généré avec succès. La taille du conteneur est définie dans chaque type de rapport.

Pour plus d'informations sur la création de rapports PDF composés avec des liens d'exploration, consultez Création d'un composant de rapport PDF avec des liens de zoom transversal PDF.


Haut de page

x
Créer un rapport de disposition composés avec la syntaxe du Développeur de documents

Comment :

Référence :

Généralement, vous créez un rapport de disposition composée avec les options dans l'outil du Développeur de documents. Vous pouvez alternativement créer un rapport de disposition composée en modifiant la syntaxe dans l'onglet Editeur de texte du Développeur de documents ou dans tout autre éditeur de texte.

Remarque : pour plus de détails sur la création d'un rapport de disposition composée avec l'outil Développeur de documents, consultez Créer un rapport de mise en page composée dans le manuel Créer des Rapports Composés avec le Composeur de Documents.

La syntaxe pour un rapport de disposition composée est structurée par un bloc de disposition composée, qui place toutes les informations de disposition en un seul bloc qui précède le rapport. Ce bloc commence par une déclaration COMPOSE LAYOUT et se termine par END. Le language qu'elle contient est basé sur la syntaxe de la Feuille de style et analysée par l'analyseur de la Feuille de style.

Ceci est pris en charge avec les formats stylisés, tels que PDF, PS, DHTML, EXL2K, ou EXL07.

Conseil : pour plus détails sur la syntaxe de Feuille de style, consultez Création et gestion d’une feuille de style WebFOCUS.

Le bloc de disposition composée regroupe les déclarations SECTION, PAGELAYOUT, et COMPONENT. La structure générale d'un bloc de disposition composée de la syntaxe est :

COMPOUND LAYOUT PCHOLD AS filename FORMAT format 
SECTION
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
  ...
END
...
COMPOUND END

Remarque sur la déclaration de disposition composée : les formats de sortie de disposition composées disponibles sont : PDF, DHTML, PowerPoint, AHTML, Excel, FLEX, et APDF. Le format de disposition composée sélectionné écrase tout format de sortie de rapport à partir des composants individuels. Le nom du fichier de sortie peut être défini avec une expression de nom de fichier AS dans le bloc COMPOUND. Si aucun nom de fichier n'est défini, il est extrait de l'expression ON TABLE HOLD dans le premier rapport composé.

END indique la fin du bloc COMPOUND LAYOUT, alors que COMPOUND END indique la fin du rapport composé.

De plus, la syntaxe SET COMPONENT=report(n) est ajoutée après chaque composant, suivie par le code WebFOCUS pour générer le rapport. Pour consulter un exemple sur la façon dont la syntaxe apparaît, référez-vous à Créer un rapport de disposition composée dans le manuel Créer des Rapports Composés avec le Composeur de Documents.

Cette rubrique décrit la structure du bloc de disposition composée et certains exemples.



x
Référence : Déclaration et syntaxe SECTION

La section d'un rapport composé, ou la déclaration SECTION, consiste en un groupe de rapports sur les composants dans un rapport composé même. Alors que cette fonctionnalité ne prend en charge que les rapports avec une section unique, cette structure est utilisée pour prendre en charge des rapports plus complexes. La déclaration SECTION est obligatoire lors de la création d'un rapport de disposition composée.

La syntaxe SECTION s'affiche comme :

SECTION=section-name, LAYOUT=ON, [MERGE=ON|OFF,]
 [UNITS=IN|CM|PTS,] [PAGESIZE=Style Sheet selections,] [ORIENTATION=PORTRAIT|LANDSCAPE,]
 [LEFTMARGIN=m,] [RIGHTMARGIN=m,]
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,] $

où :

section-name
est l'identifiant unique de la section, jusqu'à 16 caractères.
LAYOUT=ON
spécifie que la section utilise une disposition complexe.

Remarque : LAYOUT=ON est actuellement la seule option applicable.

MERGE={ON|OFF}
spécifie si la section est coordonnent (fusionnée) ou pas en fonction de la valeur du champ initial BY.

Remarque : la valeur par défaut est OFF.

m
spécifie les marges (LEFT, RIGHT, TOP, BOTTOM) en pouces, centimètres, ou points.

Si les éléments supplémentaires, UNITS, PAGESIZE, ORIENTATION, ou MARGIN sont présents dans la déclaration SECTION, ils écrasent tous réglages de ces paramètres dans ces rapports sur les composants, les commandes générales SET, les commandes ON TABLE SET, et les mots clés des Feuilles de style.



x
Référence : Déclaration PAGELAYOUT

SECTION consiste en une ou plusieurs déclarations PAGELAYOUT, dont chacune d'entre elles regroupe un nombre de déclarations COMPONENT disposées sur cette page spécifique de la section.

Le mot-clé PAGELAYOUT encercle un groupe de déclarations COMPONENT qui se suivent, jusqu'au prochain mot-clé PAGELAYOUT, ou la fin de la section.

La syntaxe PAGELAYOUT s'affiche comme :

PAGELAYOUT={n|ALL},
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,]$

où :

{n|ALL}
spécifie sur quelle page d'une disposition à pages multiples les composants s'affichent. La valeur (n) est soit un nombre de pages dans la section actuelle, ou ALL pour indiquer que le composant s'affiche sur chaque page de la section.
  • Les valeurs de PAGELAYOUT sont numérotées en commençant par 1. Par exemple, si un rapport composé est imprimé sur les deux côtés d'une page, les rapports sur les composants sur le recto seraient spécifiés en tant que PAGELAYOUT 1, et le verso serait PAGELAYOUT 2.

    Remarque : la sytaxe est requise même si le rapport ne contient qu'une seule page.

    PAGELAYOUT=1, $
  • La syntaxe PAGELAYOUT=ALL spécifie un composant qui s'affiche sur chaque page. Ceci s'avère être utile pour les composants qui génèrent des en-têtes ou pieds de page.
    PAGELAYOUT=ALL, $
m
Définit les limites (TOP, BOTTOM) des rapports de flux en unités actuelles. Pour consulter une description des rapports suivants, référez-vous à Déclaration COMPONENT.


x
Référence : Zone principale de la page

Les composants inclus dans une déclaration pour PAGELAYOUT=ALL apparaissent sur chaque page de la sortie de rapport. Ceci s'avère être utile pour créer un thème de conception pour la sortie de rapport composée :



x
Référence : Déclaration COMPONENT

L'ordre des déclarations COMPONENT dans le bloc COMPOUND LAYOUT doit correspondre à l'ordre dans lequel les rapports sur les composants sont exécutés, et il doit y avoir une déclaration COMPONENT pour chaque rapport sur les composants.

Il existe deux types de composants: fixe et fluide. Un composant fixe remplit le conteneur défini par les paramètres de dimension sur la page et, si des données supplémentaires existent, les données dépassent sur la page suivante qui est de même taille fixe et au même emplacement. La taille et l'emplacement des composants de dépassement fixes peuvent être personnalisés sur la page de dépassement (à l'aide des paramètres OVERFLOW-POSITION et OVERFLOW-DIMENSION). Dans un composant fluide, les données sont affichées à partir du haut du composant défini jusqu'en bas de la page et sont affichées de nouveau en haut de la page de dépassement, jusqu'à ce que les données sont complètes. La position de départ de chaque type de composant est défini par le paramètre de POSITION. L'aspect fixe ou de flux du composant est déterminé par le paramètre DIMENSION. Pour un composant fixe, la paramètre DIMENSION spécifie la taille des dimensions de la zone de limitation. Cependant, pour un composant fluide le paramètre DIMENSION spécifie les astérisques (* *) pour les dimensions.

La syntaxe COMPONENT s'affiche comme :

COMPONENT=component-name, TYPE=component-type,
    POSITION=(x y), DIMENSION=(xsize ysize),
    [OVERFLOW-POSITION=(x y),] [OVERFLOW-DIMENSION=(xsize ysize),] [DRILLMAP=((L1 targetreport)),]    $

où :

component-name
Le nom du composant doit s'agir d'un identifiant unique, jusqu'à 16 caractères. Il désigne un rapport sur les composants qui s'affiche ultérieurement dans la requête (dans la même procédure (FOCEXEC) ou nommé procédure), et est identifiée par la syntaxe SET COMPONENT=component-name, utilisant le même nom.

Remarque : la syntaxe SET n'ajoute des balises qu'aux rapports stylisés qui participent à un rapport composé, de façon à ce qu'ils puissent être placés avant des rapports sans style qui précèdent le rapport à nommer. Par exemple, des rapports qui génèrent des fichiers d'extraction.

component-type
spécifie le type de composant déclaré. Actuellement, seul REPORT est pris en charge.
POSITION=(x y)
spécifie la coordonnée (x y) sur la page où le coin supérieur-droit du composant doit être placé. Toutes les coordonnées se trouvent dans les "UNITs" actuels (pouces par défaut), et (0 0) représentent le coin supérieur-gauche de la page physique.

Remarque : par défaut, des coordonnées sont des emplacements absolus sur la page physique. Si x ou y est précédé par un signe plus (+) ou un signe moins (-), par exemple, (+.25 +0), la coordonnée est relative aux marges gauche ou supérieure de la page.

DIMENSION=(xsize ysize)
spécifie la taille de la boîte reliée du composant (dans les UNITs actuel).

Pour un composant fixe, xsize et ysize doit être de dimensions numérique.

Pour un composant de flux, xsize et ysize doivent tous les deux être marqués d'astérisques DIMENSION = (* *).

OVERFLOW-POSITION=(x y) et OVERFLOW-DIMENSION=(xsize ysize)
Ces éléments falcutatifs spécifient l'emplacement et les dimensions d'un composant fixe sur des pages subséquentes, si les informations dépassent la zone de limitation initiale.
DRILLMAP=((L1 targetreport))
désigne l'identifiant de liens et le rapport cible pour un lien hypertexte de zoom transversal depuis ce rapport. L1 est un identifiant de lien actuellement suffisant. Pour plus d'informations sur les rapports d'exploration, consultez Création d'un composant de rapport PDF avec des liens de zoom transversal PDF

Remarque : les parenthèses doubles sont requises.



Exemple : Créer un rapport de disposition composés avec la syntaxe du Développeur de documents

Dans cet exemple simple qui utilise le fichier maître GGSALES, le mot-clé MERGE indique qu'un rapport coordonné de disposition composée est à générer. Puisque le premier champ BY de chaque composant est REGION, une page sera générée pour chaque valeur de REGION, avec le premier rapport (Sales) positionné sur (1 1) et le deuxième (Units) sur (6.25 1).

Entrez la syntaxe suivante dans l'onglet Editeur de Texte du Développeur de documents.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Units, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=Units
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
COMPOUND END

La syntaxe suivante est un exemple de ce à quoi le même rapport ressemblerait si les rapports sur les composants se trouvaient dans des procédures préexistantes (FOCEXECs), comme indiqué par R1 et R2.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 1), DIMENSION=(4 4), $
END
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
COMPOUND END

La première page de sortie est :



Exemple : Créer un graphique coordonné avec la syntaxe du Développeur de documents

Dans l'exemple suivant qui utilise le fichier maître GGSALES, un rapport coordonné de disposition composée est généré et contient un graphique et un rapport (en remplaçant le premier rapport du premier exemple avec un graphique). Notez qu'une requête de graphique avec deux champs BY génère un graphique pour chaque valeur du premier champ BY (REGION), et que ces fichiers sont nommés en attachant des nombres séquentiels au nom de fichier HOLD. Par exemple, HOLD0.SVG, HOLD1.SVG, etc.

Pour placer ces graphiques dans un rapport comme composant de rapport coordonné de disposition composée, plusieurs commandes COMPUTE sont requises pour construire le nom de chaque fichier de graphique (HOLD0.SVG, HOLD1.SVG, etc). De plus, une commande COMPUTE sera ajoutée aux fichiers images dans l'en-tête (HEADING) de la requête TABLE afin qu'elles soient associées avec la même valeur que REGION, à partir de laquelle elles étaient produites.

Entrez la syntaxe suivante dans l'onglet Editeur de Texte du Développeur de documents.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(0.25 1), DIMENSION=(4 4), $
COMPONENT=Fuel, TYPE=REPORT, POSITION=(7.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
GRAPH FILE GGSALES
SUM PCT.DOLLARS
BY REGION NOPRINT
BY PRODUCT
ON GRAPH SET LOOKGRAPH HBAR
ON GRAPH HOLD AS HOLD FORMAT SVG
ON GRAPH SET GRAPHSTYLE *
setPlace(true);
setColorMode(1);
setDepthRadius(0);
setDepthAngle(0);
setDisplay(getO1MajorGrid(),false);
setTransparentBorderColor(getFrame(),true);
setDisplay(getDataText(),true);
setTextFormatPreset(getDataText(),28);
setFontSizeAbsolute(getDataText(),true);
setFontSizeInPoints(getDataText(),9);
setPlaceResize(getDataText(),0);
setFontStyle(getDataText(),0);
setTransparentBorderColor(getSeries(0),true);
setDisplay(getO1AxisLine(),false);
setFontSizeAbsolute(getO1Label(),true);
setFontSizeInPoints(getO1Label(),9);
setPlaceResize(getO1Label(),0);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeInPoints(getY1Label(),9);
setPlaceResize(getY1Label(),0);
setTextFormatPreset(getY1Label(),28);
setGridStyle(getY1MajorGrid(),3);
setDisplay(getY1AxisLine(),false);
setDisplay(getY1MajorGrid(),false);
setDisplay(getY1Label(),false);
setDataTextPosition(3);
setTextString(getO1Title(),"");
setTextString(getY1Title(),"");
setFontStyle(getTitle(),0);
END
TABLE FILE GGSALES
"Percent of Sales by Product in <REGION"
" "
SUM
COMPUTE CNTR/I4 = CNTR + 1; NOPRINT
COMPUTE CNTR2/A4 = IF &FOCGRAPHCNT EQ 1 THEN ' ' ELSE FTOA(CNTR-1,'(F4)','A4'); NOPRINT
COMPUTE IMG/A16 = 'HOLD'||LJUST(4,CNTR2,'A4')|| '.svg'; NOPRINT
BY REGION NOPRINT
ON REGION PAGE-BREAK
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
type=HEADING, IMAGE=(IMG), position=(0 0), $
TYPE=REPORT,PAGE-LOCATION=OFF,$
TYPE=REPORT, FONT=HELVETICA, COLOR=BLACK, SQUEEZE=ON, $
END
SET COMPONENT=Fuel
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
COMPOUND END

Voici la première page de sortie :



Exemple : Créer des mises en pages multiples avecla syntaxe du Développeur de documents

Dans l'exemple suivant qui utilise le fichier maître GGSALES, les mises en page multi-pages permettent que les composants soient placés dans des emplacements fixes sur des pages multiples. Par exemple, un rapport coordonné de disposition composée peut contenir des rapports sur les composants R1 et R2 pour chaque valeur du premier champ de tri sur les pages impaires (recto) et R3 sur les pages paires. Vous pouvez également placer le même en-tête qui contient un logo et du texte avec la valeur incorporée du premier critère de tri en haut de chaque face.

Pour le rapport sur les en-têtes, créez une procédure (nommée HEADER.FEX), puis entrez la syntaxe suivante :

TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=poweredbyibi.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=4, $
END

Nous utiliserons les composants R1 et R2 à partir de l'exemple précédent. Si vous ne l'avez pas déjà fait, enregistrez-les sous REPORT1.FEX et REPORT2.FEX. Entrez la syntaxe suivante comme composant de rapport R3, en créant une procédure nommée REPORT3.FEX.

TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END

A partir de l'onglet Editeur de texte du Développeur de documents, entrez la syntaxe suivante spécifiant que les composants de rapports s'affichent sur la page 1. Le composant de rapport R3 s'affiche sur la page 2, et les en-têtes du rapport s'afficheront sur toutes les pages du document.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
EX HEADER
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
SET COMPONENT=R3
EX REPORT3
COMPOUND END

La page 1 de la sortie est :

La page 2 de la sortie est :



Exemple : Créer une page de dépassement avec la syntaxe du Développeur de documents

Un type courant de rapport contient une disposition fixe en haut de la page, suivit par un rapport qui contient des enregistrements détaillés de longueur non fixe. Par exemple, une instruction de courtage peut contenir le nom et l’adresse du client, un graphique de répartition d'actifs, et une comparaison du portfolio avec en haut un index de marché, puis une liste de titres détenus. Si la liste de titres dépasse de la première page, il serait favorable qu'elle continue sur la deuxième page, en-dessous de l'en-tête commune qui s'affiche sur toutes les pages (logo, num. de compte, de page). Les syntaxes OVERFLOW-POSITION et OVERFLOW-DIMENSION nous permettent de spécifier où le rapport continue sur la page de dépassement et quelle doit être la longueur maximale de chaque page. (Notez que sa largeur ne devrait pas varier d'une page à l'autre.)

L'exemple suivant, qui utilise le fichier maître GGSales, illustre comment utiliser OVERFLOW-POSITION et OVERFLOW-DIMENSION pour repositionner le deuxième composant de rapport (R2) pour qu'il commence en-dessous du premier composant de la page initiale, et 5 cm sous le haut des pages suivantes. Notez que par conséquent, assez d'espace est disponible pour le composant de l'en-tête (HEADER) du rapport en haut de chaque page.

De plus, PAGELAYOUT=ALL force le composant HEADER à s'afficher en haut de chaque page de dépassement.

Entrez la syntaxe suivante dans l'onglet Editeur de Texte du Développeur de documents.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=Example, LAYOUT=ON, MERGE=OFF, $
 PAGELAYOUT=1, $
    COMPONENT=R1, TYPE=REPORT, POSITION=(1.5 2), DIMENSION=(8 3), $
    COMPONENT=R2, TYPE=REPORT, POSITION=(.5 5), DIMENSION=(8 5),
        OVERFLOW-POSITION=(.5 2), OVERFLOW-DIMENSION=(8 8.5), $
  PAGELAYOUT=ALL, $    
    COMPONENT=HEADER, TYPE=REPORT, POSITION=(1.25 1), DIMENSION=(6 1), $
END
SET COMPONENT=R1
TABLE FILE GGSALES
HEADING CENTER
"Report 1"
"Sales Summary by Category"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
HEADING CENTER
"Report 2"
"Sales Detail Report"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY CATEGORY BY PRODUCT BY REGION
ON CATEGORY UNDER-LINE
ON PRODUCT SUB-TOTAL
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=HEADER 
TABLE FILE GGSALES
HEADING
"Gotham Grinds sales to Information Builders, October 1997"
BY CATEGORY NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, IMAGE=gotham.gif, POSITION=(3.25 .25), DIMENSION=(2 .75), $
END

Voici la première page de sortie :

Voici la deuxième page de sortie :



x
Syntaxe : Dessiner des objets avec la syntaxe Développeur de documents

Vous pouvez dessier une variété d'objets sur la page pour améliorer le rapport. Les objets actuellement pris en chargle sont Lignes, Boîtes, Chaînes de texte statiques, et Images.

La syntaxe pour dessiner ces objets peut s'afficher dans un rapport Feuille de style, mais peuvent également être comprises dans un groupement PAGELAYOUT dans les déclarations COMPOUND LAYOUT. La syntaxe pour dessiner un objet est décrite ci-dessous.



Exemple : Objets de dessin avec la syntaxe Développeur de documents

L'exemple suivant explique comment des objets de dessin peuvent être placés dans une syntaxe COMPOUND LAYOUT à l'aide du fichier Master GGSALES. Vous remarquerez qu'un objet de dessin, comme par exemple COMPONENT, apparaît sur la page sur laquelle la déclaration PAGELAYOUT suit.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Budget, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $ 
OBJECT=IMAGE, IMAGE=gglogo.gif, POSITION=(1 4.5), DIMENSION=(1 1), $ 
OBJECT=BOX, POSITION=(1 1), DIMENSION=(5 3), BACKCOLOR=GOLDENROD, $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS
BY REGION NOPRINT
BY CATEGORY 
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, STYLE=BOLD, $
END
SET COMPONENT=Budget
TABLE FILE GGSALES
"Budget report for <REGION"
" "
SUM BUDDOLLARS
BY REGION NOPRINT
BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, $
END
COMPOUND END

La première page de sortie est :

Remarque : un objet de dessin ne sera réalisé que s'il existe au moins un composant (COMPONENT) dans sa mise en page (PAGELAYOUT).



x
Syntaxe : Afficher les quadrillages avec la syntaxe du Développeur de documents

La commande SET LAYOUTGRID peut être utilisée comme assistance au développement manuel des mises en page des rapports. L'affichage des quadrillages superpose une grille légère d'un pouce sur un pouce sur la page afin que les emplacements des différents composants d'un rapport puissent être vérifiés. Actuellement, le quadrillage ne fonctionne qu'en pouces.

Entrez la syntaxe suivante pour afficher les quadrillages :

SET LAYOUTGRID=ON


x
Référence : Balises de marquage de mise en forme de texte pour un objet de texte

Remarque : si votre texte contient des caractères de caret ouvert (<), vous devez insérer un espace vide après chaque caret ouvert faisant partie du texte. Si vous ne le faites pas, tout ce qui suit le caret ouvert sera interprété comme le début d'une balise de marquage et ne s'affichera pas en tant que texte.

Propriétés de la police

L'étiquette Police prend en charge trois attributs : face, taille, et couleur (lorsque la couleur doit être spécifiée comme le code de nombre hexadécimal pour la couleur) :

<font face="font" size=[+|-]n color=color_code>text</font>

Par exemple :

<font face="New Century Schoolbook">Test1</font>
<font face="Times" size=12>test2</font>
<font face="Times New Roman" color=#0000FF size=+4>Test3</font> 
<font size=-2 face="Times New Roman" color=#0000FF >Test4</font>

Styles de texte

Les styles de texte pris en charge sont gras, italique, surligné, et exposant :

Gras : <b>text</b>

Italique : <i>text</i>

Surligné : <u>text</u>

Exposant : <sup>text</sup>

Sauts de ligne

La balise de saut de ligne après une partie de texte débute la partie de texte suivante sur une nouvelle ligne. Notez qu'il n'y a aucune balise de fermeture pour un saut de ligne :

<br>

Alignement du texte

Les options d'alignement se rapportent au texte renvoyé à la ligne ainsi que les sauts de ligne spécifiés. La justification horizontale et l'alignement verical sont pris en charge.

Liste (à puces) non triée

La balise de la liste à puces non triée encadre une liste à puces. Chaque élément est encadré par une balise d'élément de liste (li). La balise de début et de fin pour la liste doivent être sur une ligne distincte. Chaque élément de liste doit commencer sur une nouvelle ligne :

<ul>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ul>

Par défaut, le type de puce est un disque : Vous pouvez également spécifier un cercle ou un carré :

<ul type=disc>
<ul type=circle>
<ul type=square>

Liste (à nombres ou lettres) triée

La balise de la liste triée (ol) encadre une liste dans laquelle chaque élément contient un nombre ou une lettre consécutif. Chaque élément est encadré par une balise d'élément de liste (li). La balise de début et de fin pour la liste doivent être sur une ligne distincte. Chaque élément de liste doit commencer sur une nouvelle ligne :

<ol>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ol>

Par défaut, les chiffres arabes (type=1) sont utilisés pour le tri de la liste. Vous pouvez spécifier les types de commande suivants :

Chiffres arabes (chiffres par défaut) : <ol type=1>

Lettres en minuscules : <ol type=a>

Lettres en majuscules : <ol type=A>

Chiffres romains en minuscules : <ol type=I>

Chiffres romains en majuscules : <ol type=I>

Liens hypertextes

Des liens hypertexte peuvent être insérés dans le marquage du texte des documents PDF.

La syntaxe pour la balise de marquage de l'ancrage est un sous-ensemble de la syntaxe d'ancrage HTML :

<a href="hyperlink">Text to display</a>

où :

lien hypertexte

Est le lien hypertexte vers lequel se diriger lorsque le texte est sélectionné.

Texte à afficher

Est le texte à afficher pour le lien hypertexte.

Par exemple :

<a href="http://www.example.com/help.htm">Click here for help</a>

Aucun autre attribut n'est pris en charge dans la balise de marquage de l'ancrage.

Numérotation des pages et Dates

Il existe deux balises pseudo-HTML pour l'incorporation de numéros de page dans le texte sur une page maître pour un rapport coordonné de disposition composée :

Numéro de page actuel : <ibi-page-number/>

Nombre total number de pages : <ibi-total-pages/>

Notez que lorsque MARKUP=ON, l'espace est alloué pour le plus grand nombre de pages, il peut donc y avoir un écart important entre le nombre de page et le texte qui suit. Pour supprimer l'espace supplémentaire dans l'objet texte ayant les balises de numérotation de page :

Pour afficher une date dans la sortie du rapport, insérez une variable de date WebFOCUS dans un objet de texte sur une page maître (comme par exemple &DATEtrMDYY) dans l'objet texte.



Exemple : Mise en forme d'un objet de texte de disposition composée avec des balises de marquage

La requête suivante affiche un objet de texte avec des balises de marquage dans un fichier de sortie PDF :

Remarque : la syntaxe de marquage de texte ne peut pas contenir de retour chariot ni de caractères de saut de lignes masqués. Pour présenter l'exemple de cette documentation, les caractères de saut de ligne ont été ajoutés de façon à ce que le code d'exemple soit ajusté dans la page imprimée. Pour exécuter cet exemple dans votre environnement, copiez le code dans un éditeur de texte et supprimez tous les caractères de saut de ligne dans l'objet de marquage de texte en allant à la fin de chaque ligne puis en appuyant sur Supprimer. Dans certaines instances, vous aurez à ajouter un espace pour garder la structure de la chaîne. Pour plus d'informations sur l'affichage des retours chariots au sein d'un objet texte, consultez Balises de marquage de mise en forme de texte pour un objet de texte.

SET PAGE-NUM=OFF
SET LAYOUTGRID=ON
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD AS LINESP1 FORMAT PDF
ON TABLE SET STYLE *
type=report, size=8, $
object=string, position=(1 1), dimension=(7 3), wrap=on, markup=on,
 linespacing=multiple(3), 
 text='<b><font face="Arial" size=12>This paragraph is triple-spaced
 (LINESPACING=MULTIPLE(3)):</font></b>
 <full>Our <i>primary</I> goal for fiscal 2006 was to accelerate our
 transformation to customer centricity. In this letter, I’d like to
 give you an update on this work, which contributed to the 22-percent
 increase in earnings from continuing operations we garnered for fiscal
 2006. Since the past is often prologue to the future, I’d like to
 describe how customer centricity is influencing not only our goals for
 fiscal 2007, but also our long-term plans. At Gotham Grinds, customer
 centricity means treating each customer as a unique individual, meeting
 their needs with end-to-end solutions, and engaging and energizing our
 employees to serve them.</full>', $
ENDSTYLE
END

Dans cette requête :

La sortie est :



Exemple : Dessiner du texte et des objets de ligne dans la zone principale de la page

La requête suivante applique une ligne dans la zone principale de la page entre le rapport d'en-tête et les rapports sur les composants et applique une ligne et une chaîne de texte en bas de chaque page :

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
OBJECT=STRING, POSITION=(1 6.6), MARKUP=ON,
TEXT='<font face="Arial" color=#0000FF size=12> Page <ibi-page-number/>
        </font> ', WRAP=ON, DIMENSION=(4 4),$
OBJECT=LINE, POSITION=(1 2.5), ENDPOINT=(9.5 2.5),
        BORDER-COLOR=BLUE,$
OBJECT=LINE, POSITION=(1 6.5), ENDPOINT=(9.5 6.5),
        BORDER-COLOR=BLUE,$
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=gglogo.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=1.5, $
END
SET COMPONENT=R1
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
SET COMPONENT=R3
TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END
COMPOUND END

La première page de sortie est :

La deuxième page de sortie a les mêmes objets de dessin :



Exemple : Aligner le marquage du texte verticalement dans la sortie de rapport PDF

La requête suivante crée trois boîtes et place un objet de chaîne de texte dans chacun d'entre elles :

Remarque : la syntaxe de marquage de texte ne peut pas contenir de retour chariot ni de caractères de saut de lignes masqués. Pour présenter l'exemple de cette documentation, les caractères de saut de ligne ont été ajoutés de façon à ce que le code d'exemple soit ajusté dans la page imprimée. Pour exécuter cet exemple dans votre environnement, copiez le code dans un éditeur de texte et supprimez tous les caractères de saut de ligne dans l'objet de marquage de texte en allant à la fin de chaque ligne puis en appuyant sur Supprimer. Dans certaines instances, vous aurez à ajouter un espace pour garder la structure de la chaîne. Pour plus d'informations sur l'affichage des retours chariots au sein d'un objet texte, consultez Balises de marquage de mise en forme de texte pour un objet de texte.

SET PAGE-NUM=OFF
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
ttype=report, font=arial, size=10, $
object=box, position=(1 1), dimension=(6 1), $
object=line, position=(3 1), endpoint=(3 2), $
object=line, position=(5 1), endpoint=(5 2), $ 
object=string, text='<top>Vertically aligned text within a text object using top alignment.</top>', position=(1.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<mid>Vertically aligned text within a text object using middle alignment.</mid>', position=(3.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<bottom>Vertically aligned text within a text object using bottom alignment.</bottom>', position=(5.05 .9), dimension=(2 1),linespacing=exact(.15), markup=on, wrap=on, $ 
END

La sortie est :



x
Référence : Rapports coordonnés de disposition composée avec des données manquantes

Un rapport coordonné de disposition composée se constitue de rapports ou graphiques sur les composants individuels avec le permier critère de tri commun. La procédure composée génère un document de sortie avec une page distincte (ou un ensemble de pages) pour chaque valeur individuelle du critère de tri, avec les composants incoporés segmentés pour afficher les données qui correspondent à cette valeur du critère de tri.

Une page de rapport coordonné de disposition composée est générée dans la mise en page désignée pour chaque valeur du critère de champ dans au moins un des rapports sur les composants, présentant les données appropriées pour les composants dans lesquels des données existent pour cette valeur, et un rapport de composants vides dans lequel aucune donnée n'existe.

La façon dont un composant vide est représenté sur la page du rapport dépend de la façon dont la position du composant est définie dans le rapport coordonné de disposition composée. Les composants peuvent être définis avec un positionnement absolu ou relatif à d'autres composants dans la mise en page. Si le composant vide et les composants qui suivent sur la page sont définis avec un positionnement absolu, le rapport sur le composant vide s'affichera sous forme d'espaces vides dans l'emplacement désigné. Si le positionnement relatif est défini entre le composant vide et les composants qui suivent, les composants qui suivent flotteront sur la page, et aucun espace vide ne sera affiché dans la zone définie pour le composant vide.

Dans les rapports composés avec le positionnement relatif défini entre les rapports, lorsqu'un rapport vide est rencontré, le rapport qui suit le rapport vide est positionné verticalement en bas du dernier rapport non vide et horizontalement par rapport à la marge de page. Cela signifie que lorsqu'un rapport ne contient aucune donnée, le rapport subséquent flottera (verticalement) et commencera de façon relative par rapport au rapport précédent mais il ne se déplacera horizontalement sur aucune des pages relatives des rapports précédents

Utilisez POSITION = (X Y), l'emplacement d'un rapport est désigné par la coordonnée gauche (X = horizontal) et la coordonnée supérieure (Y = vertical). Chacune de ces coordonnées peuvent être définies indépendamment du rapport précédent ou dans une position fixe sur la page.

Pour définir le positionnement pour que le rapport flotte sur la page pour remplacer le rapport vide mais est ancré dans une position gauche fixe sur la page, vous pouvez définir la coordonnée Y (haut) comme relative et ancrer la coordonnée X (gauche). Pour ancrer une des coordonnées de position, modifiez la référence d'une position relative (+/-) en une position absolue. Par exemple :

Les deux coordonnées relatives : POSITION(+0.003 +0.621)

Ancre horizontale / flux vertical : POSITION( 0.520 +0.621)

Il n'est pas nécessaire de modifier ou d'ajouter une syntaxe WebFOCUS à votre requête pour qu'elle bénéficie de cette fonction. Toutefois, nous vous recommandons de prêter attention à la façon dont vous sélectionnez et reliez les données dans vos composants coordonnés afin d'assurer la génération de la sortie souhaitée.



Exemple : Installation : Créer un rapport coordonné de disposition composée avec des données manquantes

Dans cet exemple, nous allons créer un ensemble d'énoncés relatant les commandes de stocks en circulation pour un groupe restreint de magasins. Chaque magasin peut avoir des commandes vides dans l'une des trois catégories de stocks : Food, Coffee, et Gifts.

Pour démontrer son fonctionnement, nous allons d'abord construire un ensemble de fichiers de données : un fichier d'en-tête contenant des informations de contact pour l'ensemble des magasins sélectionnés et les fichiers de transaction pour chaque catégorie de stock. Nous sélectionnons des données spécifiques afin de démontrer comment cela fonctionnera lorsque différents rapports sur les composants sont vides.

Après la création des fichiers de données, nous allons construire quatre rapports sur les composants, un pour afficher les informations sur l'en-tête et un pour chaque catégorie de stock.

Pour finir, regroupez-les dans un rapport coordonné de disposition composée qui rassemble toutes les informations en une seule page d'instructions pour chaque magasin.



Exemple : Etape 1 : Créer les fichiers de données

Les quatre fichiers de données suivant seront créés à partir d'une fusion de la source de données GGORDER et GGSALES :

Fichier de données créé

Type d'informations inclues

Magasins inclus

GGHDR

Informations sur le magasin

R1019, R1020, R1040, R1041

GG1

Opérations de commande pour Coffee

R1019, R1040, R1088

GG2

Opérations de commande pour Food

R1019, R1020, R1041, R1088

GG3

Opérations de commande pour Gifts

R1019, R1020, R1040, R1088

Les commandes APP HOLD, JOIN, et DEFINE sont :

APP HOLD baseapp
JOIN
 GGORDER.ORDER01.STORE_CODE IN GGORDER TO
   UNIQUE GGSTORES.STORES01.STORE_CODE
   IN GGSTORES AS J1
END
DEFINE FILE GGORDER
PRODUCT_CATEGORY/A15=IF (PRODUCT_DESCRIPTION IN
                     ('Biscotti','Croissant','Scone')) THEN 'Food'
                     ELSE IF (PRODUCT_DESCRIPTION IN
                     ('French Roast','Hazelnut','Kona')) THEN 'Coffee' ELSE 'Gifts';
END

La procédure suivante crée la source de données GGHDR :

TABLE FILE GGORDER
SUM
     FST.STORE_NAME
     FST.ADDRESS1
     FST.ADDRESS2
     FST.CITY
     FST.STATE
     FST.ZIP
BY STORE_CODE
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1041');
ON TABLE NOTOTAL
ON TABLE HOLD AS GGHDR FORMAT FOCUS INDEX 'STORE_CODE'
END

La procédure suivante crée la source de données GG1 :

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Coffee' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1040','R1088');
ON TABLE HOLD AS GG1 FORMAT FOCUS INDEX 'STORE_CODE'
END

La procédure suivante crée la source de données GG2 :

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Food' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1041','R1088');
ON TABLE HOLD AS GG2 FORMAT FOCUS INDEX 'STORE_CODE'
END

La procédure suivante crée la source de données GG3 :

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Gifts' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1088');
ON TABLE HOLD AS GG3 FORMAT FOCUS INDEX 'STORE_CODE'
END


Exemple : Etape 2 : Créer les Rapports sur les composants

La procédure suivante, GGHDR.FEX, crée le premier composant de rapport pour le Rapport coordonné de disposition composée à partir de la source de données GGHDR. Cela fonctionne comme un en-tête pour chaque page du Rapport de disposition composée. Le critère de tri partagé pour tous les composants de rapports est STORE_CODE. Sur chaque page du fichier de sortie PDF, cette procédure liste le nom et l'adresse d'un magasin :

TABLE FILE GGHDR
BY STORE_CODE NOPRINT
HEADING
"<STORE_NAME "
"<ADDRESS1 "
"<ADDRESS2 "
"<CITY , <STATE   <ZIP "
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=BLUE,$
ENDSTYLE
END

La procédure suivante, GGRPT1.FEX, crée le deuxième composant du rapport pour le Rapport coordonné de disposition composée. Pour la même valeur de code du magasin dans le rapport d'en-tête, elle affiche les données à partir de la source de données GG1 sur la catégorie Coffee :

TABLE FILE GG1
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE AS 'Store'
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
    COLOR=RED,$
ENDSTYLE
END

La procédure suivante, GGRPT2.FEX, crée le troisième composant du rapport pour le Rapport coordonné de disposition composée. Pour la même valeur de code du magasin dans le rapport d'en-tête, elle affiche les données à partir de la source de données GG2 sur la catégorie Food :

TABLE FILE GG2
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
    SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END

La procédure suivante, GGRPT3.FEX, crée le dernier composant du rapport pour le Rapport coordonné de disposition composée. Pour la même valeur de code du magasin dans le rapport d'en-tête, elle affiche les données à partir de la source de données GG3 sur la catégorie Gifts :

TABLE FILE GG3
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END


Exemple : Etape 3 : Construire le Rapport coordonné de disposition composée

La procédure suivante, GGCMPD.FEX, combine les quatre éléments dans un Rapport coordonné de disposition composée. Les rapports et le positionnement relatif pour chaque composant sont présentés dans le diagramme suivant :

La syntaxe Disposition composée coordonnée est :

SET HTMLARCHIVE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
UNITS=IN, $
SECTION=section1, LAYOUT=ON, MERGE=ON, ORIENTATION=PORTRAIT,
   PAGESIZE=Letter,  $
PAGELAYOUT=1, NAME='Page layout 1', text='Page layout 1',
   TOC-LEVEL=1, BOTTOMMARGIN=0.5, TOPMARGIN=0.5,  $
COMPONENT='report1', TEXT='report1', TOC-LEVEL=2,
   POSITION=(0.667 1.083), DIMENSION=(3.417 1.412),  $
COMPONENT='report2', TEXT='report2', TOC-LEVEL=2,
   POSITION=(0.837 2.584), DIMENSION=(* *),  $
COMPONENT='report3', TEXT='report3', TOC-LEVEL=2,
   POSITION=(-0.006 +0.084), DIMENSION=(* *),
   RELATIVE-TO='report2', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
COMPONENT='report4', TEXT='report4', TOC-LEVEL=2,
   POSITION=(+0.010 +0.080), DIMENSION=(* *),
   RELATIVE-TO='report3', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT='report1'
-INCLUDE GGHDR.FEX
SET COMPONENT='report2'
-INCLUDE GGRPT1.FEX
SET COMPONENT='report3'
-INCLUDE GGRPT2.FEX
SET COMPONENT='report4'
-INCLUDE GGRPT3.FEX
COMPOUND END

Sur la première page du fichier de sortie PDF, tous les composants ont des données et apparaissent sur la sortie du rapport :

Sur la deuxième page, le rapport GGRPT2.FEX n'a pas récupéré toutes les données pour le magasin dans l'en-tête. Toutefois, le composant Coffee est manquant. Notez que parce que le composant 3 et 4 sont positionnés par rapport-aux composants définis ci-dessus dans la syntaxe Disposition composée, les composants Food et Gifts se déplacent vers le haut plutôt que de laisser un espace vide où le composant Coffee aurait été :

A la page 5, le rapport d'en-tête n'a récupéré aucune donnée pour une valeur de code de magasins présente dans les trois autres composants. Une page reste générée pour le code de ce magasin. Puisque le deuxième rapport (rapport Coffee) est entièrement positionné dans la syntaxe Disposition composée, non relatif au premier composant (rapport d'en-tête), l'espace où le rapport d'en-tête aurait du se trouver reste vide :


Haut de page

x
Créer une table des matières avec des entrées de champ BY pour les rapports de disposition composée PDF

Dans cette section :

Comment :

Référence :

Si vous utilisez la syntaxe de disposition composée, vous pouvez générer une table des matières pour un rapport composé PDF.

La table des matières peut être présentée comme des signets PDF affichés par Adobe Reader®, ou comme une page de table des matières placée au début du document, ou les deux. Les entrées de table des matières et les signets fournissent des liens vers chaque composant et les critères de tri inclus. Ces liens positionnent le lecteur sur la page où le lien de la table des matières se trouve.

Incluez n'importe quel composant de graphique ou de rapport dans la table des matières à un niveau spécifique en définissant la description TOC et le niveau TOC dans la syntaxe de disposition composée pour le composant. En plus, les valeurs du champ BY pour tout composant de rapport peuvent être présentées au sein de la structure TOC hiérarchisée de un niveau au sein de l'entrée du rapport composant. Les entrées BYTOC sont prises en charge pour les composants rapport seulement (pas pour les composants graphique)

Les rapports composés PDF qui définissent la Table des Matières ou les signets basés sur les entrées de champ sont pris en charge pour les rapports avec coordonées (MERGE=ON) et sans coordonnées (MERGE=OFF). Pour les rapports avec coordonnées, la clé de tri principale est présentée en tant qu'entrée de niveau supérieur pour instances individuelles du rapport, et les clés secondaires sont présentées au sein des composants appropriés de la structure. Ces rapports coordonnés peuvent aussi être segmentés en différents documents par la clé de tri principale et distribués à l'aide de ReportCaster.



x
Fonctionnalités de la table des matières

La page de table des Matières (TOC) montre une synthèse du document, avec les numéros de page, et peut être imprimée avec le document. Les éléments de la table des matières permettent de naviguer facilement vers une section particulière pendant la visualisation du document en ligne. Les entrées peuvent créer des liens vers n'importe quel composant de sortie composée (page, rapport, ou graphique), vers tout objet (image, zone de texte) dans le rapport composé, et vers les valeurs de critères de tri verticales (valeurs de champ BY) dans chaque rapport sur les composants.

Le contenu actuel de la table des matières est représenté par un élément de texte dans la syntaxe de disposition composée. Lorsque vous utilisez une page de table des matières, vous pouvez :

Remarque : si la Table des matières dépasse de plus d'une page au moment de l'exécution, le contenu restant est exécuté avec les mêmes taille et dimensions que la première page jusqu'à ce que la TDM sorte en entier.



x
Syntaxe : Générer une table des matières dans un rapport de disposition composée PDF

Vous pouvez générer des signets, une page de table des matières, ou les deux en incluant BOOKMARKS et/ou l'objet TOC dans la syntaxe de disposition composée. Puis, dans les définitions de composants, spécifiez le niveau de la table des matières, la description et, si vous le souhaitez, les niveaux BYTOC.

Attributs TDM

COMPOUND LAYOUT PCHOLD FORMAT PDF
[OBJECT=BOOKMARKS, $]
[OBJECT=TOC, NAME='text1', 
   TEXT='<font face="font1" size=sz1>Table of Contents</font>',
   MARKUP=ON, TOC-NUMBERING={OFF|ON}, POSITION=(xy), [TOC-FILL=DOTS,]
   DIMENSION=(mn),
   font='font2', color={color|RGB(rgb)}, size=sz2, 
   METADATA=' TOCTITLE: Table of Contents', $]

où :

OBJECT=BOOKMARKS
Génère les signets PDF pour les entrées de table des matières spécifiées dans les déclarations COMPONENT.
OBJECT=TOC
Génère une table des matières pour les entrées de table des matières spécifiées dans les déclarations COMPONENT.
NAME='text1'
Spécifie un nom pour l'élément de page de la table des matières.
TEXT='<font face="font1" size=sz1>Table des matières</font>'
Spécifie le titre et les caractéristiques du texte pour le titre de la table des matières. Pour que cette information soit interprétée correctement, l'attribut MARKUP=ON doit être spécifié. Le texte n'est pas envoyé à la ligne et doit tenir dans la largeur de l'élément de texte général.
MARKUP=ON
Entraîne les étiquettes de balise utilisées avec le titre de la table des matières d'être interprétées comme des options de formatage, non comme texte.
TOC-NUMBERING={OFF|ON}
Spécifie si les entrées sur la page de table des matières sont numérotées. ON est la valeur par défaut.
POSITION=(x y)
Définit les coordonnées x et y de l'objet sur la page.
DIMENSION=(a b)
Définit la taille de la zone de limitation pour l'objet.
font='font2', color={color|RGB(r g b)}, size=sz2,
Spécifie les caractéristiques du texte pour le corps de la table des matières. S'ils sont omis, les attributs sont extraits de l'attribut TEXT.
TOC-FILL=DOTS
Commence la phrase par des points de suite de l'entrée jusqu'au numéro de page. Si cet attribut n'est pas inclus, l'entrée et le numéro de page sont séparées par des espaces vides.

Entrées de composant

COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] 
   POSITION=(xy),DIMENSION=(ab), $

où :

component1
Est un composant à inclure dans la table des matières.
title1
Est le titre du composant à utiliser en tant qu'entrée TOC.
TOC-LEVEL=n
Définit n comme niveau de Table des matières pour le rapport, graphique et l'objet de mise en forme de page. Cette option définit l'ordre hiérarchique des objets dans la table des matières.

0 = l'objet n'es pas affiché dans la table des matières.

1 = l'objet est affiché comme un élément de premier niveau dans la table des matières.

2 = l'objet est affiché comme un élément de deuxième niveau dans la table des matières et ainsi de suite.

BYTOC=m
Spécifie le nombre de champs BY à inclure dans l'entrée du composant actuel (m).
POSITION=(x y)
Définit les coordonnées x et y de l'objet sur la page.
DIMENSION=(a b)
Définit la taille de la zone de limitation pour l'objet.


x
Référence : Notes d'utilisation pour la table des matières

Notes principales

Notes BYTOC



Exemple : Créer les signets et la page de table des matières

L'exemple suivant a deux rapports sur les composants. Les deux signets PDF et une page de table des matières sont générés. Chaque composant est au niveau 1 de TOC et a deux niveaux de champs BY sous les entrées du niveau 1 :

COMPOUND LAYOUT PCHOLD FORMAT PDF
OBJECT=BOOKMARKS, $
OBJECT=TOC, NAME='text1', 
  TEXT='<font face="ARIAL" size=10>Table of Contents</font>',
  MARKUP=ON, TOC-NUMBERING=ON, POSITION=(0.854 0.854),
  DIMENSION=(7.000 9.500), font='ARIAL', color=RGB(0 0 0),
  size=10, METADATA=' TOCTITLE: Table of Contents', $
SECTION=S1, LAYOUT=ON, MERGE=OFF, ORIENTATION=PORTRAIT, $
PAGELAYOUT=1, $
COMPONENT=report1, TEXT='Sales By Product', TOC-LEVEL=1, BYTOC=2,
  POSITION=(1 1), DIMENSION=(* *), $
COMPONENT=report2, TEXT='Sales By Region', TOC-LEVEL=1, BYTOC=2,
  POSITION=(+0.00 +0.519), DIMENSION=(* *), RELATIVE-TO='report1',
  RELATIVE-POINT=BOTTOM-LEFT, POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT=report1
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY CATEGORY 
BY PRODUCT
BY REGION 
BY ST
HEADING
"Sales by Category"
ON TABLE HOLD FORMAT PDF
END
SET COMPONENT=report2
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY REGION 
BY ST
BY CATEGORY 
BY PRODUCT
HEADING
"Sales by Region"
ON TABLE HOLD FORMAT PDF
END
COMPOUND END

La sortie montre que chaque rapport sur les composants est au niveau 1 et a deux niveaux de critères de tri en-dessous du niveau 1 de la table des matières. Pour les rapports Ventes par produit, les champs BY sont Catégorie et Produit. Pour les rapports Ventes par région, les champs BY sont Région et Etat. Chaque entrée dans la table des matières est un lien vers la page contenant cette valeur :

En cliquant sur l'une des entrées de la page de table des matières ou dans le volet de signets, vous ouvrez la page contenant cette entrée. Par exemple, cliquez sur l'entrée Ventes par région/Sud-Est ouvre la page suivante :


Haut de page

x
Créer un rapport PDF ou PS composé

Comment :

Les rapports composés combinent des rapports multiples en un seul fichier PDF ou PS. Le premier rapport PDF ou PS définit le format du rapport concaténé, vous permettant de parsemer des rapports intermédiaires à d'autres formats en un seul rapport. Grâce aux rapports composés, vous pouvez rassembler des données à partir de différentes sources de données et combiner des rapports en un seul rapport qui exécute chaque requête et concatène la sortie en un seul fichier PDF ou PS.

Vous pouvez alors exécuter ou distribuer le rapport avec ReportCaster, qui affiche le rapport PDF composé dans Reader ou envoie le rapport PS composé directement à une imprimante. Pour plus d'informations à propos de ce produit, consultez la documentation ReportCaster.

Ceci est pris en charge avec les formats stylisés, tels que PDF, PS, EXL2K, ou EXL07.

Pour plus d'informations sur la création de rapports composés PDF de zoom en profondeur, consultez Création d'un composant de rapport PDF avec des liens de zoom transversal PDF. Pour plus d'informations sur la création de rapports composés Excel, consultez Créer un rapport Excel composé.



x
Syntaxe : Afficher des rapports composés

Pour un rapport composé qui peut contenir différents types de rapports, utilisez la syntaxe

SET COMPOUND= {OPEN|CLOSE} [NOBREAK]

ou

ON TABLE SET COMPOUND {OPEN|CLOSE}

Lorsque vous utilisez cette syntaxe, notez que vous devez aussi y inclure le code suivant pour identifier le format d'affichage de chacun des rapports à concaténer :

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT formatname

Si tous les rapports composant le rapport composé sont du même type, PDF ou PS, vous pouvez utiliser la syntaxe plus concise suivante

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT {PDF|PS} {OPEN|CLOSE} [NOBREAK]

où :

name
Est le nom du fichier généré. Le nom provient de la première requête dans le rapport composé. Si aucun nom n'est utilisé dans le premier rapport, le nom HOLD est utilisé.
OPEN
Est spécifié pour le premier rapport, et commence le processus de concaténation. Un rapport contenant l'attribut OPEN doit être au format PDF ou PS.
CLOSE
est spécifié pour le dernier rapport, et met fin au processus de concaténation.
NOBREAK
Est une phrase facultative qui empêche les sauts de page. Chaque rapport s'affiche sur une différente page par défaut.

Vous pouvez employer NOBREAK de manière sélective dans une requête pour contrôler quels rapports s'affichent sur une même page.

Remarque :



Exemple : Création d'un rapport PDF composé

Ce qui suit illustre la façon de combiner trois différents rapports PDF en un seul rapport en créant un rapport composé. Notez que:

Notez que dans cet exemple, tous les rapports sont définis au format PDF. Cependant, lorsque vous créez un rapport composé, seul le premier rapport doit être au format PDF ou PS. Les rapports subséquents peuvent être sous tout format stylisé. Pour consulter une illustration, référez-vous à Incorporer des graphiques dans un rapport composé.

Rapport 1 :

SET PAGE-NUM=OFF
TABLE FILE CENTORD
HEADING
"Sales Report"
" "
SUM LINEPRICE
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF OPEN NOBREAK
END

Rapport 2 :

TABLE FILE CENTORD
HEADING
"Inventory Report"
" "
SUM QUANTITY
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF NOBREAK
END

Rapport 3 :

TABLE FILE CENTORD
HEADING
"Cost of Goods Sold Report"
" "
SUM LINE_COGS
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF CLOSE
END

La sortie s'affiche sous forme de rapport PDF. Comme la syntaxe des rapports 1 et 2 contient la commande NOBREAK, les trois rapports s'affichent sur une seule page. (Sans NOBREAK, chaque rapport s'affiche sur une différente page).



x
Syntaxe : Incorporer des graphiques dans un rapport composé

Vous pouvez intégrer un graphique, tel qu'un logo ou un graphique WebFOCUS capturé comme fichier GIF, dans un rapport composé. Le fichier graphique doit être intégré dans un rapport particulier au sein de l'ensemble de rapports composés.

Pour sauvegarder un graphique comme image graphique, incluez la syntaxe suivante dans votre requête de graphique :

HOLD FORMAT GIF

Pour plus de détails sur la sauvegarde d'un graphique comme fichier d'image, consultez Création d'un graphique.

Pour intégrer un graphique dans un rapport composé, vous devez identifier le fichier d'image dans la déclaration de feuille de style du rapport dans lequel vous souhaitez inclure ce premier, ainsi que les spécifications de taille et de position, le cas échéant. Pour plus de détails sur l'incorporation et le positionnement de graphiques dans les rapports, consultez Ajout d'une image à un rapport.



Exemple : Combinaison de formats de rapport et de graphiques dans un rapport composé

Cette requête génère un rapport composé à partir de trois différents types de rapports (PDF, HTML et EXL2K), et intègre un graphique dans chaque rapport. Notez que chaque graphique est sauvegardé sous forme de fichier GIF dans la requête de graphique. Le graphique est alors identifié, dimensionné et positionné au sein de la déclaration Feuille de style (TYPE=REPORT, IMAGE=graphname...) du rapport dans lequel il est incorporé). Différentes versions de la syntaxe SET COMPOUND= (OPEN, NOBREAK, CLOSE) combinent les trois rapports sur une même page. Des lignes de code clé sont soulignées dans la requête suivante.

Rapport 1 :

SET GRMERGE = ON
GRAPH FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY HOLDER
ACROSS CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS SLSGRPH1 FORMAT GIF 
END
SET COMPOUND='OPEN NOBREAK' 
TABLE FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY CONTINENT
BY HOLDER
HEADING
"Investment Report"
" "
ON TABLE SET STYLE *
TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=SLSGRPH1.gif, POSITION=(4.5 0.5), SIZE=(3.5 2.5), $ 
ENDSTYLE
 
ON TABLE PCHOLD FORMAT PDF 
END

Rapport 2 :

GRAPH FILE TRADES
SUM AMOUNT
BY CONTINENT
ON GRAPH SET LOOKGRAPH PIE
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS TRDSGR1 FORMAT GIF 
END
SET COMPOUND=NOBREAK 
TABLE FILE TRADES
SUM AMOUNT AS 'Amount'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Trades Report"
" "
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $

TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=TRDSGR1.gif, POSITION=(4 3), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT HTML 
END

Rapport 3 :

GRAPH FILE SHORT
SUM BALANCE
BY CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET STYLE *
TYPE=DATA, COLOR=RED,$
ENDSTYLE 
ON GRAPH HOLD AS BALGR1 FORMAT GIF 
END
 
SET COMPOUND=CLOSE 
TABLE FILE SHORT
SUM BALANCE AS 'Balance'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Balance by Region"
" "
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $
 
TYPE=REPORT, IMAGE=BALGR1.gif, POSITION=(4 6), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT EXL2K 
END

La sortie est :


Haut de page

x
Créer un rapport Excel composé

Référence :

Les rapports Excel composés génèrent des rapports de feuilles de calcul multiples en utilisant le format de sortie EXL2K.

La syntaxe des rapports composés Excel est identique à celle des rapports composés PDF. Par défaut, chaque rapport sur les composants du rapport composé est placé dans une nouvelle feuille de calcul Excel (analogue à une nouvelle page PDF). Si vous utilisez le mot-clé NOBREAK, le rapport suivant se trouve après le rapport actuel dans la même feuille de calcul (ce qui revient à débuter le rapport sur la même page dans PDF).

La sortie, qu'elle soit envoyée au client avec PCHOLD ou enregistrée dans un fichier avec HOLD, est générée au format Archive Web de Microsoft. Ce format est étiqueté Page Web à fichier unique dans la fenêtre de dialogue Enregistrer sous. Excel propose les préfixes de fichier attribués par convention : .mht et .mhtml. WebFOCUS utilise le même suffixe que les rapports EXL2K, dont .xht. Comme la sortie est toujours un fichier unique, elle peut être distribuée facilement à l'aide de ReportCaster.

Les composants d'un rapport Excel composé peuvent être des rapports FORMULA ou PIVOT (ce qui est soumis à des limitations). Ils ne peuvent pas être des rapports avec table des matières (TOC).

Remarque : Excel 2002 (Office XP) ou supérieur doit être installé. Les rapports composés Excel ne fonctionnent pas avec des versions précédentes d'Excel car celles-ci ne prennent pas en charge le format de fichier Web Archive.



x
Référence : Directives pour utiliser les mots-clé OPEN, CLOSE et NOBREAK et SET COMPOUND

Comme pour PDF, les mot-clé OPEN, CLOSE et NOBREAK sont utilisés pour contrôler les rapports composés Excel. Ils peuvent être spécifiés avec la commande HOLD ou PCHOLD ou avec une commande SET COMPOUND distincte.

  • OPEN s'emploie dans le premier rapport d'une série de rapports sur les composants pour spécifier qu'un rapport composé soit créé.
  • CLOSE s'emploie pour désigner le dernier rapport dans un rapport composé.
  • NOBREAK spécifie que le rapport suivant doit être sur la même feuille de calcul que le rapport actuel. Si la feuille de calcul du rapport actuel n'est pas présent, le comportement par défaut implique de mettre le rapport suivant sur une autre feuille de calcul.

    NOBREAK peut s'afficher avec OPEN dans le premier rapport, ou bien tout seul dans un rapport entre les premiers et derniers rapports. (L'utilisation de CLOSE n'a aucune importance, car il se rapporte au positionnement du rapport suivant, et aucun rapport suit le dernier rapport dans lequel apparaît CLOSE).

  • Lorsqu'il est utilisé avec la syntaxe HOLD/PCHOLD, les mots-clés de rapport composé OPEN, CLOSE et NOBREAK doivent apparaître juste après FORMAT EXL2K, et avant tout mot-clé additionnel, tel que FORMULA ou PIVOT. Par exemple, vous pouvez spécifier :
    • ON TABLE PCHOLD FORMAT EXL2K OPEN
    • ON TABLE HOLD AS MYHOLD FORMAT EXL2K OPEN NOBREAK
    • ON TABLE PCHOLD FORMAT EXL2K NOBREAK FORMULA
    • ON TABLE HOLD FORMAT EXL2K CLOSE PIVOT PAGEFIELDS COUNTRY
  • Comme pour les rapports PDF composés, les mot-clé de rapport composé peuvent aussi être spécifiés en utilisant COMPOUND :
    • SET COMPOUND = OPEN
    • SET COMPOUND = 'OPEN NOBREAK'
    • SET COMPOUND = NOBREAK
    • SET COMPOUND = CLOSE


x
Référence : Directives pour produire des rapports composés Excel
  • Tableaux croisés dynamiques et NOBREAK. Les rapports de tableau croisé dynamique peuvent apparaître dans les rapports composés, mais ils ne peuvent pas être combinés avec un autre rapport sur la même feuille de calcul à l'aide de NOBREAK.
  • Désignation des noms de feuilles de calcul. Les noms de balise de feuille de calcul par défaut sont Feuille1, Feuille2, et ainsi de suite. Vous avez la possibilité de spécifier un autre nom de balise de feuille de style en utilisant le mot-clé TITLETEXT dans la feuille de style. Par exemple :
    TYPE=REPORT, TITLETEXT='Summary Report', $

    La longueur des feuilles de calcul dans Excel est limitée à 31 caractères. Vous ne pouvez pas utiliser les caractères spéciaux suivants : « : », « ? », « * », et « / ».

  • Noms de fichier et formats. Le nom de fichier de sortie (nom AS, ou HOLD par défaut) est obtenu du premier rapport du rapport composé (le rapport avec le mot-clé OPEN). Les noms de fichier de sortie des rapports subséquents sont ignorés.

    La syntaxe HOLD FORMAT utilisée dans le premier rapport sur les composants du rapport composé s'applique à tous les rapports subséquents du rapport composé, quel que soit leur format.

  • Comportement NOBREAK. Lorsque NOBREAK est spécifié, le rapport suivant s'affiche sur la ligne juste après la dernière ligne du rapport avec la commande NOBREAK. Si un espacement supplémentaire est nécessaire entre les rapports, une commande FOOTING ou ON TABLE SUBFOOT peut être mise dans le rapport sans NOBREAK, ou une commande HEADING ou ON TABLE SUBHEAD peut être mise dans le rapport suivant. Cela permet la plus grande souplesse, car si des lignes vierges ont été ajoutées par défaut, il ne serait pas possible de les supprimer.


Exemple : Création d'un rapport composé simple avec EXLK
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
SUM SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS EX1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
SUM RC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
SUM DC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K CLOSE
END

La sortie de chaque balise de la feuille de calcul Excel est :



Exemple : Création d'un rapport composé avec des tableaux croisés dynamiques et des formules
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
PRINT RCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PIV1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
PRINT SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PPPP FORMAT EXL2K PIVOT
PAGEFIELDS TYPE SEATS
CACHEFIELDS MODEL MPG RPM 
END
TABLE FILE CAR
SUM RCOST
BY COUNTRY BY CAR BY MODEL BY TYPE BY SEATS SUMMARIZE
ON MODEL SUB-TOTAL
ON TABLE HOLD AS XFOCB FORMAT EXL2K FORMULA
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
PRINT DCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS ONE FORMAT EXL2K CLOSE PIVOT
PAGEFIELDS RCOST
CACHEFIELDS MODEL TYPE SALES ACCEL SEATS
END

La sortie de chaque balise de la feuille de calcul Excel est :



Exemple : Création d'un rapport composé avec NOBREAK

Dans l'exemple suivant, les deux premiers rapports s'affichent sur la première feuille de calcul, et les deux derniers rapports s'affichent sur la deuxième feuille de calcul, parce que NOBREAK apparaît sur les premier et troisième rapports.

TABLE FILE GGSALES
HEADING
"Report 1: Coffee - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K OPEN NOBREAK
ON TABLE SET STYLE *
type=report, font=Arial, size = 10, style=normal, $
type=title, style=bold, $
type=heading,   size=12, style=bold, color=blue, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 2: Coffee - Actual "
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET STYLE *
type=report, font=Arial, size=10, style=normal, $
type=grandtotal,  style=bold, $
type=heading,  size=12, style=bold, color=blue, $
END
TABLE FILE GGSALES
HEADING
"Report 3: Food - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K NOBREAK
ON TABLE SET STYLE *
type=REPORT, font=Arial, size=10, style=normal, $
type=HEADING,  style=bold, size=12, color=blue, $
type=title, style=bold, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 4: Food - Actual"
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K CLOSE
ON TABLE SET STYLE *
type=report, font=Arial, size=10,  $
type=title, style=bold, $
type=heading,size=12, style=bold,  color=blue,$
type=grandtotal, style=bold,  $
END

La sortie est :


WebFOCUS