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 :
Dans un rapport coordonné de disposition composée, si au moins un composant contient des données pour une valeur de champ de tri spécifique, une page est générée pour cette valeur, bien que certains des composants puissent être manquants. Pour plus d'informations sur les rapports coordonnés de disposition composée avec des données manquantes, consultez Rapports coordonnés de disposition composée avec des données manquantes
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.
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.
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ù :
Remarque : LAYOUT=ON est actuellement la seule option applicable.
Remarque : la valeur par défaut est OFF.
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.
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ù :
Remarque : la sytaxe est requise même si le rapport ne contient qu'une seule page.
PAGELAYOUT=1, $
PAGELAYOUT=ALL, $
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 :
Par exemple, le rapport suivant n'affiche aucune données :
SET COMPONENT='DfltCmpt1' TABLE FILE SYSCOLUM SUM TBNAME NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
SET COMPONENT='DfltCmpt1' TABLE FILE GGSALES SUM UNITS NOPRINT BY PCD NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
Notez que la manière recommandée pour créer un thème de conception avec du texte qui se répèté et des images sur une zone principale de la page est de placer les objets de dessin sur la zone principale de la page. Pour plus d'informations, consultez Dessiner des objets avec la syntaxe Développeur de documents.
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ù :
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.
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.
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 = (* *).
Remarque : les parenthèses doubles sont requises.
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 :
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 :
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 :
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 :
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.
OBJECT=LINE, POSITION=(x1 y1), ENDPOINT=(x2 y2), [BORDER=b,] [BORDER-COLOR=c,] [BORDER-STYLE=s,]$
Optionnellement, les attributs de bordure BORDER, BORDER-COLOR, et BORDER-STYLE suivent la syntaxe BORDER suivante, comme le montre l'exemple suivant :
OBJECT=LINE, POSITION=(1 1), ENDPOINT=(8 1), BORDER=HEAVY, BORDER-COLOR=RED, BORDER-STYLE=DASHED, $
OBJECT=BOX, POSITION=(x y), DIMENSION=(xdim ydim), BACKCOLOR=c, [BORDER=b,] [BORDER-COLOR=bc,] [BORDER-STYLE=bs,] $
Conseil : la couleur d'arrière-plan, en l'ocurrence c, spécifie la couleur avec laquelle la boîte est remplie et peut s'agir de n'importe quelle couleur valide. Par exemple, jaune ou RGB(200 200 200).
Comme dans la syntaxe BORDER, les côtés individuels de la boîte peuvent être stylisés séparément. Par exemple :
OBJECT=BOX, POSITION=(1 1), DIMENSION=(2 3), BACKCOLOR=YELLOW, BORDER=HEAVY, BORDER-TOP-COLOR=RED, BORDER-BOTTOM-COLOR=BLUE, $
Notez que, comme avec la syntaxe BORDER, les attributs de lignes ou de boîtes qui ne sont pas explicitement spécifiés ont les attributs par défaut suivants :
Vous pouvez mettre en forme le texte affiché dans l'objet de texte en incorporant des balises de marquage dans la portion texte de l'objet de texte. Un rapport comprenant des balises de marquage dans un objet de texte est un rapport de marquage. Un rapport de marquage peut être généré en tant que fichier de sortie PDF, DHTML, ou PPT. WebFOCUS prend en charge un sous-ensemble de balises HTML et ses propres balises de numérotation de page. Pour activer ces balises de marquage (afin qu'elle soient traitées en tant qu'éléments de mise en forme à défaut d'être affichées en tant que texte), ajoutez l'attribut MARKUP=ON à l'objet de la chaîne. Pour plus d'informations, consultez Balises de marquage de mise en forme de texte pour un objet de texte.
Pour dessiner une chaîne de texte statique (x y), entrez la syntaxe suivante :
OBJECT=STRING, POSITION=(X Y), TEXT='any text you like', [MARKUP={ON|OFF},] [FONT=f,] [SIZE=sz,] [STYLE=st,] [COLOR=c,] [WRAP=ON, DIMENSION=(xdim ydim),] [LINESPACING=linesoption ,] $
où :
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 moins (-), par exemple, (+.25 +0), la coordonnée est relative aux marges gauche ou supérieure de la page.
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.
LINESPACING={SINGLE|1.5LINES|DOUBLE}
ou
LINESPACING=type(value)
où :
Type | Valeur | Exemple |
---|---|---|
MULTIPLE | Le pourcentage par lequel augmenter ou diminuer l'espacement des lignes. | LINESPACING=MULTIPLE(1.2) augmente l'espacement des lignes de 20 pourcent. |
MIN | L'espacement minimal des lignes (dans l'unité spécifiée par le paramètre UNITS) devait correspondre aux dimensions de la police sur la ligne. | LINESPACING=MIN(0.5) fournit un espacement minimal de 0.5 pouce lorsque UNITS=IN. |
EXACT | L'espacement des lignes fixes (dans l'unité spécifié par le paramètre UNITS) que WebFOCUS n'ajuste pas. | LINESPACING=EXACT(.3) fournit un espacement fixe de 0.3 pouce lorsque UNITS=IN. |
Vous pouvez facultativement spécifier les attributs FONT, SIZE, et COLOR, comme vous le feriez pour tout objet textuel dans un rapport. Par exemple :
OBJECT=STRING, POSITION=(1 1), TEXT='Hello world!', FONT=TIMES, SIZE=12, STYLE=BOLD, COLOR=RED, $
Remarque : la position d'une chaîne est mesurée à partir du côté inférieur gauche pour permettre aux chaînes d'hauteurs différentes d'être alignées avec une ligne de base commune. Toutefois, si le paramètre WRAP=ON existe, cela indique que la chaîne devrait être renvoyée à la ligne par une boîte de délimitation dont le côté supérieur-gauche est à (x y) et dont les dimensions sont (xdim ydim). Dans ce cas, le côté supérieur-gauche de la chaîne de texte est placé au point (x y).
OBJECT=IMAGE, IMAGE=file, POSITION=(x y), DIMENSION=(xdim ydim), $
Remarque : le fichier image name=file peut être tout fichier image valide dans un rapport PDF. POSITION est utilisé comme image conventionnelle, de façon similaire à une image conventionnelle, et DIMENSION est utilisé comme remplacement pour l'attribut SIZE d'une image convetionnelle.
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).
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
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.
Justification à gauche :
<left>text</left>
Justification à droite :
<right>text</right>
Justification au centre :
<center>text</center>
Justification complète :
<full>text</full>
Alignement en haut :
<top>text</top>
Alignement au millieu :
<mid>text</mid>
Alignement en bas :
<bottom>text</bottom>
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ù :
Est le lien hypertexte vers lequel se diriger lorsque le texte est sélectionné.
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 :
Si un formatage spécifique de l'objet texte n'est pas requis, n'insérez pas de balises de marqueurs, et indiquez MARKUP=OFF.
MARKUP=OFF, TEXT='Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report', $
Ceci affiche ce qui suit
Page 1 of 100 of Sales Report
Si un formatage spécifique de l'objet texte est requis, indiquez obligatoirement MARKUP=ON. Avec MARKUP=ON, indiquez WRAP=OFF et ne placez aucune balise de formatage entre les variables de numéro de ligne au sein de la chaîne. Les balises peuvent être placées autour de la chaîne Page n sur m complète. Le code suivant produit une chaîne de numéro de page sans les espaces supplémentaires :
MARKUP=ON, WRAP=OFF, TEXT='<font face="ARIAL" size=10><i>Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report </i>', $
Ceci affiche ce qui suit
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.
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 :
‘Ce paragraphe a un espacement triple (LINESPACING=MULTIPLE(3)) :’
Le marquage pour cette mise en forme est :
<b><font face="Arial" size=12>This paragraph is triple-spaced (LINESPACING=MULTIPLE(3)):</font></b>
Notez toutefois que l'image a été redimensionnée pour correspondre à la page afin que la police apparaisse plus petite :
<full>Our ... </full>
<i>primary</I>
La sortie est :
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 :
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 :
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.
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.
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
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
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 :
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.
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.
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ù :
Entrées de composant
COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] POSITION=(xy),DIMENSION=(ab), $
où :
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.
Notes principales
Notes BYTOC
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 :
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é.
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ù :
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 :
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).
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.
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 :
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.
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.
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).
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 « / ».
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.
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 :
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 :
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 |