DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Table
  • Présentation
  • Comment le faire ?
  • Ajouter une rupture dans un champ Table
  • Haut et bas de rupture
  • Comment remplir un champ Table avec ruptures ?
  • Manipulation des champs présents dans les hauts et les bas de ruptures
  • Comment le faire ?
  • Exemple
  • Calculs automatiques dans les ruptures d'un champ Table
  • Manipulation des hauts et bas de rupture
  • Pour initialiser les hauts/bas de ruptures
  • Propriétés associées aux hauts / bas de ruptures
  • Fonctions WLangage spécifiques aux champs Table avec ruptures
  • Gestion des ruptures dans les champs Table par programmation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Une rupture dans un champ Table permet d'effectuer un regroupement de lignes selon un ou plusieurs critères.
Par exemple, il est possible de regrouper :
  • les clients par pays et par ville,
  • les produits selon leur famille, ...
WINDEV La mise en place d'un total sur une rupture permet d'effectuer automatiquement un calcul (somme, comptage, moyenne) pour toutes les lignes d'une rupture donnée. Par exemple, un total sur une rupture permet de calculer le chiffre d'affaires généré par client.
Les ruptures dans un champ Table sont disponibles pour :
  • les champs Table fichier chargés en mémoire,
  • les champs Table par programmation.
  • WEBDEV - Code ServeurWEBDEV - Code NavigateurPHP les champs Table en mode Classique, Ajax et Navigateur.
WINDEV Remarques :
Comment le faire ?

Ajouter une rupture dans un champ Table

Pour ajouter une rupture dans un champ Table :
  1. Affichez la description du champ Table (option "Description" du menu contextuel).
  2. Dans l'onglet "Contenu", cliquez sur le bouton Icône d'ajout de rupture. La fenêtre de gestion des ruptures apparaît.
    Remarque : Les ruptures ne sont pas disponibles sur les champs Table fichier à accès direct.
  3. Sélectionnez la rubrique sur laquelle la rupture doit être effectuée. Il est possible de sélectionner plusieurs rubriques pour effectuer plusieurs ruptures. Les rubriques proposées diffèrent en fonction du type du champ Table :
    • Champ Table fichier chargé en mémoire :
      • parcours automatique : la rubrique de parcours, la colonne liée à la rubrique de parcours et les colonnes liées à aucune rubrique sont proposées. Si la rubrique de parcours correspond à une clé composée, les composantes de cette clé composée, les colonnes liées à ces composantes et les colonnes liées à aucune rubrique sont proposées.
      • parcours programmé : les rubriques du fichier de données et les colonnes liées à ces rubriques sont proposées.
    • Champ Table fichier lié à une requête :
      • parcours automatique : la rubrique de parcours, les colonnes liées à cette rubrique de parcours et les colonnes liées à aucune rubrique sont proposés. Si la rubrique de parcours n'est pas spécifié (option "<Automatique>"), les rubriques triées de la requête, les colonnes liées à ces rubriques et les colonnes liées à aucune rubrique sont proposées.
      • parcours programmé : les rubriques de la requête, les colonnes liées à ces rubriques et les colonnes liées à aucune rubrique sont proposées.
    • Champ Table par programmation : toutes les colonnes du champ Table sont proposées.
  4. Les ruptures sont réalisées selon leur ordre d'affichage. Modifiez si nécessaire cet ordre à l'aide des boutons fléchés à droite du tableau.
  5. Validez.

Haut et bas de rupture

Lors de l'ajout d'une nouvelle rupture, un haut et un bas de rupture sont automatiquement ajoutés au champ Table. Si le champ Table possède plusieurs ruptures, il y a autant de hauts et de bas de ruptures que de ruptures.
Les hauts et bas de rupture apparaissent en édition dans le champ Table.
Pour modifier les caractéristiques de ces hauts et bas de rupture (nom, visibilité, couleur de fond, ...), il suffit d'afficher leur fenêtre de description (option "Description" du menu contextuel).
Chaque haut et bas de rupture est associé à l'événement "Affichage d'une ligne". Cet événement est exécuté lorsqu'un nouveau haut ou bas de rupture est affiché dans le champ Table.
Ces hauts et bas de rupture peuvent contenir des champs. Ces champs sont manipulables par programmation. Des événements WLangage sont associés aux hauts de rupture.
WINDEV Les sommes, moyennes et comptages sont automatiques dans les ruptures du champ Table. Les champs des hauts et bas de ruptures peuvent afficher ces calculs. Pour plus de détails, consultez Calculs automatiques dans les ruptures de table.
Remarques :
  • WINDEVAndroidiPhone/iPad Dans la description du champ Table (onglet "Contenu"), il est possible de paramétrer si les ruptures doivent afficher ou non un bouton permettant d'enrouler/dérouler la rupture (option "Ruptures avec enroulé/déroulé").
  • WEBDEV - Code ServeurWEBDEV - Code NavigateurPHP Dans la description du champ Table (onglet "Contenu"), si le remplissage est de type "Chargé en mémoire", les ruptures peuvent être enroulées/déroulées par un simple clic dans le fond de la rupture (option "Ruptures enroulables/déroulables par simple clic dans le fond").
  • WINDEVAndroidiPhone/iPad Dans la description du champ Table, il est possible de paramétrer l'image utilisée pour dessiner les boutons "+" et "-" dans les ruptures des tables. Il faut pour cela sélectionner l'élément "Rupture, cadre en création" dans l'onglet "Style" de la table puis cliquer sur le bouton "Image Plus/Moins des ruptures".
  • WINDEVAndroidiPhone/iPad Un haut de rupture peut être toujours visible. Dans ce cas, lors du défilement, le bandeau de la rupture ne sera pas déplacé. Pour rendre un haut de rupture toujours visible :
    • Sélectionnez le haut de rupture et affichez sa description (option "Description" du menu contextuel).
    • Dans l'onglet "UI", cochez l'option "Haut de rupture toujours visible".

Comment remplir un champ Table avec ruptures ?

Dans le cas des champs Table fichier, l'ajout des enregistrements est automatiquement en fonction du fichier ou de la requête associée. Le tri est réalisé selon la rubrique de parcours.
Dans le cas des champs Table par programmation, les ajouts de données sont réalisés avec la fonction TableAjouteLigne. Pour obtenir un champ Table trié selon les ruptures définies, il est nécessaire d'utiliser la fonction TableTrie.
Exemple : Champ Table par programmation : Une rupture a été définie sur les colonnes Pays et Ville :
// Remplissage du champ Table
TableAjouteLigne(TABLE_Ruptures, "FRANCE", "Montpellier", "TEXTE1", "Texte1")
TableAjouteLigne(TABLE_Ruptures, "FRANCE", "Paris", "TEXTE2", "Texte2")
TableAjouteLigne(TABLE_Ruptures, "FRANCE", "Montpellier", "TEXTE3", "Texte3")
TableAjouteLigne(TABLE_Ruptures, "FRANCE", "Lille", "TEXTE4", "Texte4")

TableAjouteLigne(TABLE_Ruptures, "ESPAGNE", "Madrid", "TEXTE1", "Texte1")
TableAjouteLigne(TABLE_Ruptures, "ESPAGNE", "Barcelone", "TEXTE3", "Texte3")
TableAjouteLigne(TABLE_Ruptures, "ESPAGNE", "Barcelone", "TEXTE4", "Texte4")

TableAjouteLigne(TABLE_Ruptures, "ALGERIE", "Alger", "TEXTE5", "Texte5")
TableAjouteLigne(TABLE_Ruptures, "ALGERIE", "Oran", "TEXTE6", "Texte6")
TableAjouteLigne(TABLE_Ruptures, "ALGERIE", "Alger", "TEXTE7", "Texte7")
TableAjouteLigne(TABLE_Ruptures, "ALGERIE", "Chlef", "TEXTE8", "Texte8")
TableAjouteLigne(TABLE_Ruptures, "ALGERIE", "Alger", "TEXTE9", "Texte9")

TableAjouteLigne(TABLE_Ruptures, "ESPAGNE", "Madrid", "TEXTE2", "Texte2")

// Tri du contenu du champ Table selon les ruptures
TableTrie(TABLE_Ruptures, TABLE_Ruptures.Pays.Nom, TABLE_Ruptures.Ville.Nom)
Manipulation des champs présents dans les hauts et les bas de ruptures

Comment le faire ?

Pour manipuler les champs présents dans les hauts et les bas de ruptures
  • soit manipulez chaque champ de tous les hauts / bas de rupture :
    <Nom Champ>.<Nom Propriété> = <Valeur>
    ou
    <Nom Table>.<Nom Haut/Bas de rupture>.<Nom Champ>.<Nom Propriété> = <Valeur>
  • soit manipulez chaque champ d'une rupture donnée :
    <Nom Table>[<Indice>].<Nom Champ>.<Nom Propriété> = <Valeur>

    <Indice> correspond au numéro de la ligne de la rupture.
Remarques :
  • Ces lignes de code doivent être présentes dans l'événement "Affichage d'une ligne" du haut / bas de rupture.
  • Cas particulier : champ Interrupteur : un champ Interrupteur possédant plusieurs options et placé dans les hauts et les bas de ruptures ne peut pas être affecté par programmation. Si plusieurs cases à cocher sont nécessaires dans les hauts et les bas de ruptures, il est conseillé d'utiliser un champ Interrupteur par coche.

Exemple

Ce code permet d'afficher dans le champ "LIB_Pays", le nom du pays affiché dans la colonne Pays. Ce code est saisi dans le code d'affichage d'une ligne de HautRupture :
// Code d'affichage de la rupture
// Récupère l'indice de la rupture (ici RUPT_HautDeRupture) 
IndiceRupture est un entier = TableIndiceRupture(RUPT_HautDeRupture)

// Fixe la valeur du libellé contenu dans la rupture
TABLE_CLIENTS[IndiceRupture].LIB_PAYS = "Pays : " + TABLE_Articles.COL_NomPays
Calculs automatiques dans les ruptures d'un champ Table
WINDEV
Il est possible d'ajouter des calculs automatiques (somme, comptage et moyenne) dans les hauts et bas de rupture.
Pour mettre en place les calculs automatiques :
  1. Insérez un champ Libellé ou un champ de saisie dans le haut/bas de rupture. Ce champ va contenir le calcul automatique.
  2. Affichez la fenêtre de description du champ (option "Description" du menu contextuel).
  3. Dans l'onglet "UI", dans la zone "Dans une rupture, afficher", cliquez sur le lien "Aucun calcul" ou sur la description du calcul (si un calcul automatique a déjà été défini). La fenêtre de description d'un calcul automatique s'affiche.
  4. Sélectionnez le calcul à effectuer. Vous pouvez choisir :
    • "La somme de" : le champ affichera la somme par rupture.
    • "La moyenne de": le champ affichera la moyenne sur la rupture.
    • "Le nombre (comptage) de" : le champ comptera le nombre d'éléments par rupture.
  5. Sélectionnez l'élément sur lequel le calcul doit être effectué. Il est possible d'effectuer le calcul sur une colonne du champ Table.
  6. Validez les différentes fenêtres.
Astuces :
  • Selon le type d'information calculé, pensez à modifier le masque de saisie du champ qui affiche le calcul.
  • N'hésitez pas à utiliser la technologie des "eye magnet" sur les champs de saisie affichant des calculs dans les ruptures. Il sera ainsi possible de mettre en évidence un calcul (par exemple affichage d'un CA insuffisant en rouge).
Manipulation des hauts et bas de rupture

Pour initialiser les hauts/bas de ruptures

Il est possible de manipuler tous les hauts/bas de rupture :
<Nom Haut/Bas de rupture>.<Nom Propriété> = <Valeur>
Remarque : Ces lignes de code doivent être présentes dans l'événement "Affichage d'une ligne" du haut/bas de rupture.
Exemple : Code permettant de modifier la hauteur des hauts de rupture :
HautRupture1.Hauteur += 10

Propriétés associées aux hauts / bas de ruptures

Les propriétés associées aux hauts / bas de ruptures sont les suivantes :
EnrouléPermet de connaître et de modifier l'état "enroulé" d'une rupture.
HauteurPermet de connaître et de modifier la hauteur d'un haut ou d'un bas de rupture.
WEBDEV - Code Serveur Non disponible.
NomRenvoie le nom d'un haut/bas de rupture.
TypeRenvoie le type d'un élément.
VisiblePermet de savoir si un haut/bas de rupture est visible, et de rendre un haut/bas de rupture visible.

Pour connaître la liste complète des propriétés disponibles, consultez Propriétés disponibles sur les ruptures (Table).
Fonctions WLangage spécifiques aux champs Table avec ruptures
Les fonctions suivantes peuvent être utilisées pour manipuler les ruptures dans les champs Table :
TableDérouleDéroule :
  • une branche d'un champ Table hiérarchique précédemment enroulée.
  • une rupture d'un champ Table précédemment enroulée.
  • une fenêtre de détail affichée pour une ligne.
TableDérouleToutDéroule :
  • toute la hiérarchie (tous les noeuds) d'un champ Table hiérarchique.
  • toutes les ruptures d'un champ Table.
TableEnrouleEnroule :
  • une branche d'un champ Table hiérarchique précédemment déroulée.
  • une rupture d'un champ Table précédemment déroulée.
  • une fenêtre de détail affichée pour une ligne.
TableEnrouleToutEnroule :
  • toute la hiérarchie (tous les noeuds) d'un champ Table hiérarchique.
  • toutes les ruptures d'un champ Table.
TableIndiceRuptureRenvoie l'indice du haut et du bas de rupture d'une rupture donnée dans un champ Table.
WINDEV
Gestion des ruptures dans les champs Table par programmation
Les ruptures dans les tables peuvent être créées et manipulées par programmation grâce aux fonctions suivantes :
RuptureAjouteAjoute une rupture dans un champ Table ou dans un champ Zone Répétée.
RuptureSupprimeSupprime une rupture dans un champ Table ou dans un champ Zone répétée.
RuptureSupprimeToutSupprime toutes les ruptures présentes dans un champ Table ou un champ Zone répétée.
L'ajout d'une rupture dans une table est réalisé grâce à la fonction RuptureAjoute. La rupture créé correspond à une variable de type Champ qui peut ensuite être manipulé avec les mêmes propriétés WLangage qu'une rupture créée sous l'éditeur.
Exemple :
// Ajout d'une rupture verte sur la date dans un champ Table
x est un Champ
x <- RuptureAjoute(TABLE_Commande.COL_DATE, "RuptDate", ruptHaut, 50) 
x.CouleurFond = VertFoncé // Colorie en vert la rupture
Liste des exemples associés :
Le champ Table avec rupture Exemples unitaires (WINDEV) : Le champ Table avec rupture
[ + ] Utilisation du champ Table avec rupture.
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/09/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale