Vous pouvez trier des informations de rapport à l'aide de la phrase ACROSS. Cela crée des colonnes dans votre rapport. Le nombre total de colonnes ACROSS est égal au nombre total de valeurs de critère de tri ACROSS multiplié par le nombre total de champs d'affichage.
Une requête peut comprendre jusqu'à 128 phrases de tri qui consistent en une combinaison de phrases BY et ACROSS.
La limite sur le nombre de colonnes par phrase ACROSS est 1151, ce qui n'est possible qu'avec une seule phrase ACROSS. La limite est basée sur le nombre total de colonnes souhaitées dans une requête. Dans le cas de ACROSS, elle est de 1024 colonnes, ainsi que 127 colonnes de tri, au maximum. Le nombre total de colonnes ACROSS est égal au nombre total de valeurs de critère de tri ACROSS multiplié par le nombre total de champs d'affichage.
Le nombre maximal de champs d'affichage que votre rapport peut contenir dépend d'un ensemble de facteurs. En règle générale, si un critère de tri horizontal (ACROSS) contient de nombreuses valeurs de données, vous pouvez dépasser la largeur autorisée pour les rapports, ou bien créer un rapport qui est difficile à lire. Pour plus de détails, consultez Affichage de données de rapport.
Vous pouvez produire des totaux ou résumés de colonne pour les valeurs de critère de tri ACROSS avec ACROSS-TOTAL, SUBTOTAL, SUB-TOTAL, RECOMPUTE et SUMMARIZE. Pour plus de détails, consultez Inclusion de totaux et de sous-totaux.
PRINT LAST_NAME ACROSS DEPARTMENT
n'imprime MIS qu'une fois, suivi des noms de six employés.
L'exemple suivant illustre comment afficher le coût total de salaires de chaque service. Cette requête est triée horizontalement avec une phrase ACROSS.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT END
La sortie est :
DEPARTMENT MIS PRODUCTION --------------------------------- $108,002.00 $114,282.00
Notez que le tri horizontal affiche une colonne pour chaque critère de tri (service).
Comment : |
Avec la commande SET ACRSVRBTITL, vous pouvez contrôler l'affichage des titres de la colonne ACROSS lorsqu'un champ est affiché pour un groupe ACROSS. Le nombre de champs qui détermine si l'affichage du titre ACROSS est affecté par certaines composantes de la requête de rapport, tels que des champs calculés ou des champs dans les en-têtes.
La sortie n'est pas affectée par les commandes SET qui ajustent les traits de soulignement avec des titres, ajustent l'espace entre les colonnes, ou éliminent les colonnes ACROSS vides de la page. La taille du titre et le nombre de lignes qu'elle occupe n'affectent pas non plus la sortie.
SET ACRSVRBTITL = {OFF|ON|HIDEONE}
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}
où :
Supprime le titre lorsqu'il n'y a qu'un seul champ d'affichage. OFF est la valeur par défaut.
Affiche le titre quand il ya un seul champ d'affichage.
Supprime le titre lorsqu'il n'y a qu'un seul champ d'affichage, mais la requête contient une ou plusieurs des composants suivants :
La requête suivante contre la source de données GGSALES contient deux champs d'affichage DOLLARS. Le paramètre ACRSVRBTITL est désactivé (OFF) :
SET ACRSVRBTITL=OFF TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
Sur la sortie, il n'y a pas de titre de colonne qui indique ce que représente le nombre dans chaque colonne :
Region Midwest Northeast Southeast West ---------------------------------------------------- 11514345 11494543 11781285 11674908
Ce qui suit est la même requête avec ACRSVRBTITL=ON :
SET ACRSVRBTITL=ON TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
Sur la sortie, le titre Sales apparaît au-dessus de chaque valeur de champ dans le groupe ACROSS :
Region Midwest Northeast Southeast West Sales Sales Sales Sales ---------------------------------------------------- 11514345 11494543 11781285 11674908
La requête suivante contre la source de données GGSALES contient un champ d'affichage dans l'en-tête :
SET ACRSVRBTITL=OFF TABLE FILE GGSALES HEADING "Sales Report for <CATEGORY with ACRSVRBTITL=OFF" " " SUM DOLLARS AS Sales BY CATEGORY ACROSS REGION WHERE CATEGORY EQ 'Food' ON TABLE SET PAGE NOPAGE END
Avec le réglage ACRSVRBTITL=OFF, le champ dans l'en-tête compte et le titre ACROSS Sales n'est pas supprimé :
Sales Report for Food with ACRSVRBTITL=OFF Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Modifier ACRSVRBTITL à ON donne le même rapport :
Sales Report for Food with ACRSVRBTITL=ON Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Modifier ACRSVRBTITL à HIDEONE supprime le titre ACROSS Sales :
Sales Report for Food with ACRSVRBTITL=HIDEONE Region Midwest Northeast Southeast West Category ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Comment : Référence : |
Dans un rapport qui utilise la phrase de tri ACROSS pour trier des valeurs de tri horizontalement sur la page, par défaut deux lignes sont générées à la sortie de rapport pour les colonnes ACROSS. La première ligne affiche le nom du critère de tri (titre ACROSS), et le deuxième ligne affiche les valeurs de ce critère de tri (valeur ACROSS). Le nom de champ ACROSS est justifié à gauche au-dessus de la première valeur ACROSS.
Si vous souhaitez afficher à la fois le titre ACROSS et les valeurs ACROSS sur une seule ligne dans la sortie du rapport PDF, HTML, EXL2K, ou EXL07, vous pouvez exécuter la commande SET ACROSSTITLE = SIDE. Cette commande déplace les titres ACROSS à gauche des valeurs ACROSS. Par défaut, les titres sont justifiés à droite dans l'espace au-dessus des titres de champs. Vous pouvez modifier la justification du titre ACROSS en ajoutant l'attribut JUSTIFY à la déclaration de feuille de style pour le composant ACROSSTITLE. S'il n'y a pas de champs BY, la ligne d'en-tête qui est créée par défaut pour afficher le titre ACROSS n'est pas générée.
Cette fonctionnalité est conçue pour l'utilisation dans les requêtes qui ont des champs ACROSS et BY. Pour les requêtes avec des champs ACROSS sans champs BY, la commande est ignorée, et les titres ACROSS ne sont pas déplacés.
Notez que pour certains formats de sortie, vous pouvez contrôler si les titres de colonne sont soulignés en utilisant la commande SET TITLELINE. SET ACROSSLINE est un synonyme pour SET TITLELINE. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes .
SET ACROSSTITLE = {ABOVE|SIDE}
où :
Affiche les titres ACROSS au-dessus de leurs valeurs ACROSS. ABOVE est la valeur par défaut.
Affiche les titres ACROSS à gauche de leurs valeurs ACROSS, au-dessus des colonnes BY.
L'exemple suivant contre la source de données GGSALES a deux critères de tri ACROSS, CATEGORY et PRODUCT. SET ACROSSTITLE=SIDE déplace le titre ACROSS à gauche des valeurs ACROSS. Avec BYPANEL=ON, les titres ACROSS sont répétés au même emplacement dans chaque panneau suivant.
SET ACROSSTITLE=SIDE SET BYPANEL=ON TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, BORDER=LIGHT, $ TYPE=ACROSSVALUE, WRAP=ON, $ ENDSTYLE END
Le titre ACROSS Catégorie s'affiche à gauche des valeurs ACROSS Coffee, Food, et Gifts. Le titre ACROSS Product s'affiche à gauche des valeurs ACROSS Espresso, Latte, Biscotti, et ainsi de suite. Les titres ACROSS sont justifiés à droite au-dessus de l'espace occupé par les noms de champs BY Region, State et City. Notez que la valeur ACROSS Croissant est placée sur une deuxième ligne, et le titre ACROSS est aligné sur la ligne supérieure. L'image suivante montre panneau 1 :
L'image suivante montre panneau 2 :
L'exemple suivant contre la source de données GGSALES a deux champs BY et deux champs ACROSS. Cet exemple n'active pas les bordures et n'active pas l’enroulement des valeurs ACROSS. SET ACROSSTITLE=SIDE déplace le titre ACROSS à gauche des valeurs ACROSS. La commande SET =1 SET BYPANEL=1 répète seulement le premier champ BY dans le deuxième panneau. Pour empêcher que les titres ACROSS ne soient tronqués afin de correspondre au-dessus du champ BY dans le deuxième panneau, le premier champ BY a un nom AS qui est plus long que le nom par défaut :
SET ACROSSTITLE=SIDE SET BYPANEL=1 TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY ST AS 'State Code' BY CITY ACROSS CATEGORY AS 'Categories' ACROSS PRODUCT AS 'Products' WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, $ ENDSTYLE END
Voici le premier panneau :
En raison de la commande SET BYPANEL=1, l'espace disponible au-dessus des champs BY dans le second panneau est plus petit que l'espace dans le panneau initial. Le nom AS State Code ajoute un espace pour les titres ACROSS, si les titres ne sont pas tronqués sur le second panneau :
La requête suivante contre la source de données GGSALES place l'ensemble des titres ACROSS à côté des valeurs ACROSS et définit les styles de couleur de police correspondants et la couleur d'arrière-plan pour les titres des colonnes, et ACROSSTITLES, ACROSSVALUES, pour le texte blanc sur un arrière-plan gris.
SET ACROSSTITLE=SIDE TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE CATEGORY EQ 'Coffee' OR 'Food'; ON TABLE SET PAGE-NUM NOPAGE ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * SQUEEZE=ON,UNITS=IN,ORIENTATION=PORTRAIT,$ TYPE=REPORT,FONT='ARIAL',SIZE=10,BORDER=LIGHT,$ TYPE=ACROSSTITLE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=ACROSSVALUE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=TITLE,COLOR=WHITE, BACKCOLOR=GREY,$ ENDSTYLE END
La sortie a une couleur d'arrière-plan grise et le texte blanc pour les titres ACROSS, les valeurs ACROSS et les titres des colonnes.
Vous pouvez trier un rapport en utilisant plus d'un critère de tri. Lorsque plusieurs critères de tri sont utilisés, l'ordre de la phrase ACROSS détermine l'ordre de tri. La première phrase ACROSS définit le premier saut de tri, la deuxième phrase ACROSS définit le deuxième saut de tri, et ainsi de suite. Chaque tri successif est imbriqué dans celui qui le précède.
La requête suivante trie la somme des salaires actuels, premièrement par service puis par code de travail.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT ACROSS CURR_JOBCODE WHERE CURR_SAL GT 21500 END
La sortie est :
DEPARTMENT MIS PRODUCTION CURR_JOBCODE A17 B04 A15 A17 ------------------------------------------------------------------------ $27,062.00 $21,780.00 $26,862.00 $29,700.00
Comment : Référence : |
La commande PRINT génère un rapport d'une seule ligne pour chaque enregistrement récupéré à partir de la source de données après analyse de ceux qui échouent les tests IF ou WHERE. Lorsque PRINT est utilisé avec une phrase ACROSS, plusieurs colonnes générées peuvent être vides. Ces colonnes affichent le symbole de données manquant.
Pour éviter d'imprimer un rapport incomplet, vous pouvez utiliser la commande SET ACROSSPRT pour compresser les lignes du rapport. Le nombre de lignes est réduit dans chaque groupe de tri en permutant les valeurs non manquantes des lignes inférieures par les valeurs manquantes des lignes supérieures, et ensuite en supprimant toute ligne dont les colonnes ont des valeurs manquantes.
Puisque les données peuvent être déplacées vers plusieurs lignes de rapport, les opérations de lignes telles que ROW TOTAL et ACROSS-TOTAL dans un rapport compressé sont différentes de celles que l'on trouve dans un rapport non compressé. Les opérations de colonne ne sont pas attribuées en compressant les lignes de rapport.
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}
où :
ne compresse pas les lignes de rapport. NORMAL est la valeur par défaut.
compresse les lignes de rapport en élevant les valeurs de données pour remplacer les valeurs manquantes dans un groupe de tri.
La requête suivante contre la source de données GGSALES imprime l'unité de vente par produit sur région :
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT NORMAL
ON TABLE SET PAGE NOPAGE
END
Chaque ligne de rapport représente une vente dans une région, donc tout au plus une colonne dans chaque ligne a une valeur non manquante lorsque ACROSSPRT est réglée sur NORMAL.
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ----------------------------------------------------------------- Capuccino . 936 . . . 116 . . . 136 . . . . 1616 . . . 1118 . . . 774 . . . . 1696 . . . 1519 . . . 836 Espresso 1333 . . . 280 . . . 139 . . . . 1363 . . . 634 . . . 406 . . . . 1028 . . . 1014 . . . 885 . . . . 1782 . . . 1399 . . . 551
Réglez ACROSSPRT à COMPRESS élève les valeurs non manquantes pour remplacer les valeurs manquantes dans le même groupe BY et supprime les lignes qui comprennent toutes les valeurs manquantes.
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT COMPRESS
ON TABLE SET PAGE NOPAGE
END
La sortie est :
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ---------------------------------------------------------------- Capuccino . 936 1616 1696 . 116 1118 1519 . 136 774 836 Espresso 1333 1363 1028 1782 280 634 1014 1399 139 406 885 551
Les requêtes de rapport qui utilisent la phrase de tri ACROSS génèrent un groupe de colonnes (une pour chaque champ d'affichage dans la requête) sous chaque valeur du champ ACROSS. Dans de nombreux cas, certaines de ces colonnes ont seulement des valeurs manquantes ou nulles. Vous pouvez utiliser le paramètre HIDENULLACRS pour masquer l'affichage des groupes ACROSS ne contenant que des colonnes nulles sous les formats de sortie stylisée. S'il y a un champ BY avec une option PAGE-BREAK, les colonnes sont masquées sur chaque page de sortie générée par l'option PAGE-BREAK. Si la requête ne contient pas de sauts de page BY, les groupes ACROSS manquants du rapport entier sont masqués.
Le masquage des colonnes ACROSS nulles n'est pas pris en charge pour tous les formats de sortie avec style à part pour les options EXL2K PIVOT et EXL2K FORMULA. Il n'est pas pris en charge pour les technolgies actives.
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}
où :
Masque les colonnes avec des données manquantes dans des groupes ACROSS dans un saut de page généré par la commande BY.
Ne masque pas les colonnes. OFF est la valeur par défaut.
Le masquage des colonnes est surtout utile lorsqu'un critère de tri BY a l'option PAGE-BREAK, soit dans la phrase BY elle-même ou dans la phrase ON. Le changement de la valeur de champ BY détermine quand un saut de page est généré pour ce champ BY. Le changement de la valeur de champ BY définit les limites dans lesquelles les colonnes ACROSS sont masquées, même si la valeur de champ BY s'étend sur plusieurs pages physiques.
Il n'est pas possible de spécifier un champ BY particulier avec ce paramètre, donc si la requête a des champs BY multiples avec des sauts de page, le paramètre s'applique à tous. S'il n'y a pas de champs BY avec des sauts de page, une colonne ACROSS doit manquer au rapport complet afin d'être masquée.
Le groupe entier ACROSS est masqué soit lorsque la valeur ACROSS est manquante ou soit lorsque toutes les lignes des colonnes d'affichage sous la valeur ACROSS contiennent des valeurs nulles ou manquantes dans la valeur de champ BY fournie.
L'ensemble de pages généré pour une valeur de champ BY avec un saut de page est masqué si tous les groupes ACROSS dans cette valeur de champ BY sont masqués.
Lorsque des colonnes sont supprimées d'une page ou d'un panneau, les colonnes existantes se resituent pour remplir l'espace manquant.
La requête suivante contre la source de données GGSALES a un saut de page dans le champ BY nommé REGION et une phrase ACROSS dans le champ CITY. Les champs d'affichage dans chaque groupe ACROSS sont UNITS et DOLLARS :
SET HIDENULLACRS=OFF TABLE FILE GGSALES SUM UNITS DOLLARS BY REGION PAGE-BREAK BY ST ACROSS CITY WHERE CITY LE 'Memphis' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * TYPE=REPORT, FONT=ARIAL, SIZE=9,$ ENDSTYLE END
Avec SET HIDENULLACRS=OFF, toutes les colonnes s'affichent :
L'exécution de la requête avec SET HIDENULLACRS=ON élimine les groupes ACROSS pour les villes avec des données manquantes dans chaque région. Par exemple, la région Midwest n'a pas de colonnes pour Atlanta ou Boston :
Dans la requête suivante contre la source de données GGSALES, REGION est un champ BY avec une commande PAGE-BREAK, et PRODUCT est le champ ACROSS. La commande DEFINE crée un champ nommé SHOWDOLARS qui a des valeurs manquantes pour la colonne Espresso dans le groupe ACROSS Coffee :
SET HIDENULLACRS=OFF SET BYPANEL=2 DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES HEADING "Page <TABPAGENO " SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' WHERE CATEGORY EQ 'Coffee'; ON REGION PAGE-BREAK ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
L'exécution de la requête avec SET HIDENULLACRS=OFF affiche la colonne Espresso et toute autre colonne contenant des valeurs manquantes dans le groupe Coffee :
L'exécution de la requête avec SET HIDENULLACRS=ON masque les colonnes avec des données manquantes dans chaque région. Sur la page 1 (Midwest), les colonnes Capuccino et Espresso sont masquées, alors que sur la page 2 (Nord-Est), seulement la colonne Espresso est masquée :
La requête suivante contre la source de données GGSALES a deux champs ACROSS, PRODUCT et CATEGORY. Le champ BY avec le saut de page est REGION. La commande DEFINE crée un champ nommé SHOWDOLLARS qui comporte des valeurs manquantes pour la colonne Espresso dans le groupe ACROSS Coffee et pous le groupe ACROSS entier Gifts.
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso' OR CATEGORY EQ 'Gifts') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=8, $ ENDSTYLE END
L'exécution de la requête avec SET HIDENULLACRS=OFF affiche toutes les colonnes :
L'exécution de la requête avec SET HIDENULLACRS=ON masque le produit Espresso et la catégorie complète Gifts dans chaque région. Sur la page 1 (Midwest), le groupe Gifts et les colonnes Espresso et Capuccino sont masqués, alors que sur la page 2 (Nord-Est), le groupe Gifts et la colonne Espresso sont masqués :
Si un groupe complet ACROSS est masqué, les totaux générés pour la valeur de champ BY associée sont masqués aussi. Si l'une des colonnes de la valeur ACROSS contient des données non-manquantes, le groupe ACROSS s'affiche avec les colonnes non-manquantes.
Les éléments de synthèse reste attaché aux colonnes de groupe ACROSS. Si un groupe ACROSS est masqué, la valeur de synthèse associée est masquée, et les valeurs suivantes s'alignent avec leurs colonnes ACROSS.
Les lignes récapitulatives générées entre les séparateurs de champs BY s'affichent à la fin de la dernière page pour cette valeur de champ BY. Tous les groupes ACROSS qui contiennent toutes les données non nulles dans la valeur entière BY (même si elles étaient masquées sur certaines pages dans la valeur BY) s'affichent sur les lignes récapitulatives afin que les valeurs de synthèse associées peuvent être affichées.
Les totaux généraux peuvent contenir les colonnes ACROSS qui ont été masquées sur certaines pages dans une valeur de champ BY. Par conséquent, les totaux généraux sont toujours placés sur une nouvelle page et présentés pour tous les groupes et colonnes ACROSS affichés sur n'importe quelle page du rapport, indépendamment de ce qui était caché sur d'autres pages.
Les lignes récapitulatives définies pour les champs BY en dehors du saut de page BY le plus profond peuvent également contenir des colonnes ACROSS qui ont été masquées pour certains des champs BY internes. Pour cette raison, ces lignes récapitulatives présentent toujours toutes les colonnes ACROSS disponibles et sont présentées sur une nouvelle page.
Tous les totaux calculés dans les colonnes (ACROSSTOTAL, ROWTOTAL) seront masqués si tous les totaux des colonnes sont manquants.
Dans la requête suivante contre la source de données GGSALES, REGION est un champ BY avec une commande PAGE-BREAK, et PRODUCT est le champ ACROSS. La commande DEFINE crée un champ nommé SHOWDOLARS qui comporte des valeurs manquantes pour la colonne Espresso dans le groupe ACROSS Coffee. Les totaux des colonnes sont générés à la fin du rapport :
SET HIDENULLACRS=ON DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " WHERE CATEGORY EQ 'Coffee'; ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
Exécutez la requête masque les colonnes nulles dans chaque saut de page REGION et génère une page distincte pour les totaux des colonnes.
Ce qui suit montre les pages 1 à 3. Sur la page 1, les colonnes Espresso et Capuccino sont masquées. Sur les pages 2 et 3, la colonne Espresso est masquée :
Ce qui suit montre les pages quatre et cinq. Page 4, la colonne Espresso est masquée. Page 5 est la page des totaux. La colonne Espresso est masquée puisqu'elle était masquée sur chaque page de détails. Cependant, Capuccino n'est masquée puisqu'elle apparaît sur certaines pages :
Le style de colonne reste attaché à la colonne d'origine, que la colonne reste ou non au même endroit dans la sortie de rapport en raison du masquage des colonnes nulles. En particulier :
Pour en savoir plus au sujet de l'identification de colonnes, consultez Désignation de composants de rapport dans la syntaxe de feuille de style WebFOCUS.
Dans la requête suivante contre la source de données GGSALES, REGION est un champ BY avec une commande PAGE-BREAK et PRODUCT est le champ ACROSS. La commande DEFINE crée un champ nommé SHOWDOLLARS qui a des valeurs manquantes pour la colonne Capuccino dans la région Midwest, la colonne Thermos dans la région Nord-Est, la colonne Scone dans la région Sud-Est, et toute la région Ouest. Des totaux de colonne, des totaux de ligne, et un sous-total pour chaque région sont générés.
Quelques-unes des colonnes sont attribuées des couleurs d'arrière-plan :
Voici la requête :
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF ((PRODUCT EQ 'Capuccino' AND REGION EQ 'Midwest') OR (PRODUCT EQ 'Coffee Grinder' AND REGION EQ 'Northeast') OR (PRODUCT EQ 'Scone' AND REGION EQ 'Southeast') OR (REGION EQ 'West')) THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT ON REGION SUBTOTAL AS '*TOTAL' ON REGION PAGE-BREAK HEADING " Page <TABPAGENO "HEADING " Capuccino Missing in Coffee Group " WHEN REGION EQ 'Midwest'; HEADING " Coffee Grinder Missing in Gifts Group " WHEN REGION EQ 'Northeast'; HEADING " Scone Missing in Food Group " WHEN REGION EQ 'Southeast'; WHERE CATEGORY EQ 'Coffee' OR 'Food' ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE ROW-TOTAL AS 'TOTAL' ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN,PAGESIZE='Letter',SQUEEZE=ON,ORIENTATION=PORTRAIT,$ TYPE=REPORT,HEADPANEL=ON,GRID=OFF,FONT='ARIAL',SIZE=6,$ TYPE=HEADING, style=bold, size=8,$ TYPE=DATA, COLUMN = C5, BACKCOLOR=WHEAT,$ TYPE=DATA, COLUMN = P5, BACKCOLOR=THISTLE,$ TYPE=DATA, COLUMN = N7, BACKCOLOR=MEDIUM GOLDENROD,$ TYPE=DATA, COLUMN = B3, BACKCOLOR=GOLDENROD,$ TYPE=DATA, COLUMN = SHOWDOLLARS(6), BACKCOLOR=silver,$ ENDSTYLE END
Exécutez le rapport avec SET HIDENULLACRS=OFF affiche toutes les colonnes. Une page est générée pour la région Ouest et les sous-totaux sont calculés, même si toutes les valeurs sont manquantes :
Exécutez le rapport avec SET HIDENULLACRS=ON, affiche :
La sortie est :
Une requête FML a toujours un champ FOR qui définit l'ordre des lignes spécifiques. Le champ FOR ne peut pas être utilisé pour déclencher le masquage des colonnes ACROSS nulles. Cependant, la requête peut également avoir un champ BY avec une option PAGE-BREAK et cela peut être utilisée pour masquer les colonnes ACROSS nulles.
La requête suivante FML contre la source de données GGSALES a un champ BY nommé REGION avec l'option PAGE-BREAK et un champ ACROSS nommé QTR. Le champ FOR est PRODUCT. La commande DEFINE crée le champ QTR et contient les valeurs manquantes pour Q4 dans la région Midwest, Q2 dans la région Nord-Est, et pour tous les trimestres dans la région Sud-Est.
SET HIDENULLACRS=ON DEFINE FILE GGSALES QTR/Q=DATE; SHOWDOLLARS/D12CM MISSING ON = IF REGION EQ 'Midwest' AND QTR EQ 'Q4' THEN MISSING ELSE IF REGION EQ 'Northeast' AND QTR EQ 'Q2' THEN MISSING ELSE IF REGION EQ 'Southeast' THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS BY REGION ACROSS QTR FOR PRODUCT 'Biscotti' AS 'Biscotti' LABEL R1 OVER 'Capuccino' AS 'Capuccino' LABEL R2 OVER 'Latte' AS 'Latte' LABEL R3 OVER 'Mug' AS 'Mug' LABEL R4 OVER 'Coffee Pot' AS 'Coffee Pot' LABEL R5 OVER RECAP R6/D12.2=R1+R2+R3+R4+R5; AS '' ON REGION PAGE-BREAK 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=TITLE, STYLE=BOLD,$ TYPE=ACROSSTITLE, STYLE=BOLD,$ ENDSTYLE END
L'exécution de la requête avec SET HIDENULLACRS=OFF génère toutes les colonnes et une page pour toutes les régions, y compris les régions du Sud-Est où toutes les valeurs sont manquantes :
L'exécution de la requête avec SET HIDENULLACRS=ON masque la colonne Q4 pour la région Midwest, Q2 pour la région Nord-Est et la page entière pour la région Sud-Est:
WebFOCUS |