Tri de colonnes

Dans cette section :

Comment :

Référence :

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.


Haut de page

x
Syntaxe : Trier les colonnes
ACROSS sortfield

où :

sortfield

Est le nom du critère de tri.


Haut de page

x
Référence : Notes d'utilisation pour le tri de colonnes


Exemple : Tri de colonnes avec ACROSS

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).


Haut de page

x
Contrôler l'affichage d'un titre ACROSS pour un champ unique

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.



x
Syntaxe : Contrôler l'affichage d'un titre ACROSS pour un seul champ
SET ACRSVRBTITL = {OFF|ON|HIDEONE} 
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}

où :

OFF

Supprime le titre lorsqu'il n'y a qu'un seul champ d'affichage. OFF est la valeur par défaut.

ON

Affiche le titre quand il ya un seul champ d'affichage.

HIDEONE

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 :

  • Les champs dans un en-tête ou pied de page.
  • Les champs dont l'affichage est supprimé avec la phrase NOPRINT.
  • Champs reformatés (normalement comptés deux fois).
  • Une commande COMPUTE référençant plusieurs champs.


Exemple : Afficher ou supprimer un titre de colonne ACROSS unique

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     


Exemple : Masquer un titre ACROSS avec HIDEONE

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    

Haut de page

x
Positionner des titres ACROSS sur une sortie de rapport

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 .



x
Syntaxe : Contrôler la position des noms de champ ACROSS
SET ACROSSTITLE = {ABOVE|SIDE}

où :

Au-dessus

Affiche les titres ACROSS au-dessus de leurs valeurs ACROSS. ABOVE est la valeur par défaut.

SIDE

Affiche les titres ACROSS à gauche de leurs valeurs ACROSS, au-dessus des colonnes BY.



x
Référence : Notes d'utilisation pour SET ACROSSTITLE
  • Lorsque la valeur ACROSS est renvoyée à la ligne, le titre ACROSS s'aligne avec la première ligne des valeurs ACROSS habillées.
  • Le titre ACROSS développe la largeur des colonnes BY. Si la valeur du titre ACROSS est plus grande que la largeur des colonnes BY sur la page actuelle, la valeur est tronquée. Le premier panneau peut avoir plus de champs BY que de panneaux suivants, si SET BYPANEL est défini à une valeur inférieure au nombre total de champs BY.
  • Ce paramètre ne va pas créer une nouvelle colonne dans le rapport pour l'emplacement du titre.
    • Si la requête n'a pas de champs BY, le titre ACROSS n'est pas déplacé.
    • Avec BYPANEL=OFF, le titre ACROSS n'est pas affiché dans les panneaux suivants.
  • WRAP n'est pas prise en charge pour ACROSSTITLE avec SET ACROSSTITLE=SIDE.


Exemple : Positionner le titre ACROSS sur la même ligne que les valeurs ACROSS

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 :



Exemple : Espacement de titre ACROSS

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 :



Exemple : Spécifier la couleur d'arrière-plan pour les valeurs ACROSS avec ACROSSTITLE=SIDE

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.


Haut de page

x
Utilisation de plusieurs champs de tri horizontal (ACROSS)

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.



Exemple : Tri avec des phrases horizontales (ACROSS) multiples

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

Haut de page

x
Basculer PRINT avec ACROSS

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.



x
Syntaxe : Compresser les lignes de rapport
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}

où :

NORMAL

ne compresse pas les lignes de rapport. NORMAL est la valeur par défaut.

COMPRESS

compresse les lignes de rapport en élevant les valeurs de données pour remplacer les valeurs manquantes dans un groupe de tri.



x
Référence : Notes d'utilisation pour SET ACROSSPRT


Exemple : Compresser une sortie de rapport avec SET ACROSSPRT

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

Haut de page

x
Masquage des colonnes nulles dans les groupes ACROSS

Dans cette section :

Comment :

Référence :

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.



x
Syntaxe : Masquer les colonnes ACROSS nulles
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}

où :

ON

Masque les colonnes avec des données manquantes dans des groupes ACROSS dans un saut de page généré par la commande BY.

OFF

Ne masque pas les colonnes. OFF est la valeur par défaut.



x
Référence : Notes d'utilisation pour le masquage des colonnes nulles dans les groupes ACROSS
  • L'alignement des éléments dans les en-têtes avec des colonnes de données (HEADALIGN) n'est pas pris en charge avec les rapports ACROSS.
  • Le masquage des colonnes ACROSS ne modifie pas les éléments placés dans les éléments d'en-tête avec des signes de localisation ou avec un positionnement explicite. Cela veut dire qu'une fois les colonnes de groupe ACROSS sont masquées, les éléments peuvent s'aligner sur les colonnes ACROSS différemment que prévu.


x
Référence : Fonctionnalités non prises en charge pour le masquage des colonnes ACROSS nulles
  • Technologies actives.
  • EXL2K FORMULA.
  • EXL2K PIVOT.
  • OVER.
  • HIDENULLACRS est uniquement pris en charge avec des sauts de page spécifiées dans des phrases PAGE-BREAK byfieldname ON ou des phrases PAGE-BREAK fieldname BY. Il n'est pas pris en charge avec :
    • champ BY valeur ROWS OVER.
    • champs FML FOR (champ FOR valeur OVER PAGE-BREAK).


x
Masquage des groupes et colonnnes ACROSS dans les sauts de page BY

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.



Exemple : Masquage des groupes ACROSS nuls

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 :



Exemple : Masquage des colonnes dans les groupes ACROSS

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 :



Exemple : Masquage des colonnes nulles avec les champs ACROSS multiples

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 :



x
Générer des lignes récapitulatives et utiliser l’option masquage des colonnes ACROSS nulles

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.



Exemple : Générer les totaux des colonnes et utiliser l’option masquage des colonnes ACROSS nulles

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 :



x
Utiliser les styles de colonne et l'option masquage des colonnes ACROSS nulles

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 :

  • BORDERS et BACKCOLOR se réadaptent afin de correspondre au panneau résultant ou à la mise en page après que les colonnes sont masquées.
  • Application d'un style spécifié pour une colonne désignée reste attachée à la colonne désignée et n'est pas affectée par les colonnes masquées. Par exemple, si la troisième colonne ACROSS est définie avec un style conditionnel, et la deuxième colonne ACROSS est masquée, le formatage reste dans la colonne qui a été initialement troisième, même si cette colonne devient la deuxième colonne dans la sortie.

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.



Exemple : Utiliser les styles de colonne et l'option masquage des colonnes ACROSS nulles

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 :



x
Masquage des colonnes ACROSS nulles dans une requête FML

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.



Exemple : Masquage des colonnes ACROSS nulles dans une requête FML

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