PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Champ table avec rupture répété l'entête
Champ table avec rupture répété l'entête
Débuté par g.L, 08 fév. 2024 11:43 - 11 réponses
Membre enregistré
132 messages
Posté le 08 février 2024 - 11:43
Bonjour a tous ,
j'ai créer un champ table avec des rupture et j'aimerai savoir si il est possible de re écrire l'entête avec les titre de colonne a chaque rupture ?

je précise qu'il s'agit d'un champ table dans une fenêtre et non dans un état :)
Membre enregistré
1 029 messages
Posté le 08 février 2024 - 15:24
Bonjour g.L
Répéter les titres, je ne sais pas car jamais essayé (et pas le temps pour le moment).
En revanche, sais-tu que tu peux placer un champs (par exemple un libellé) sur le Haut de Rupture, qui sera répété, et donc avoir un titre.
Cdlt
Membre enregistré
132 messages
Posté le 08 février 2024 - 16:17
Cédric_34 a écrit :
Bonjour g.L
Répéter les titres, je ne sais pas car jamais essayé (et pas le temps pour le moment).
En revanche, sais-tu que tu peux placer un champs (par exemple un libellé) sur le Haut de Rupture, qui sera répété, et donc avoir un titre.


Bonjour a toi oui j'ai vue ^^ je suis entrain de faire ça mais j'aimerai avoir mon titre de rupture et répété l'entête de mon champ table a chaque rupture un peut comme on peut le faire pour les etat*
Membre enregistré
1 029 messages
Posté le 08 février 2024 - 17:18
J'ai pas trop compris.
Une image serait plus parlante.

Sinon as-tu vu ceci :
Rupture dans un champ Table
https://doc.pcsoft.fr/?1013305
section :
Manipulation des champs présents dans les hauts et les bas de ruptures
(Bouton droit sur le haut de Rupture puis Code)
Cdlt
Membre enregistré
132 messages
Posté le 14 février 2024 - 11:09




Alors l'entête et en dégradé bleu noir
comme tu peux le voir sur la photo j'ai bien les titre sur mes rupture mais est il possible (sans trop ce compliquer la vie ou ralentire le code )
de répété l'entête a chaque rupture
c'est a dire ravoir exactement l'entête sous la rupture ou j'ai mon titre
en gros avoir un peut près ça






l'image a était modifier pour avoir le rendu j'ai pas réussis a le faire
Membre enregistré
1 029 messages
Posté le 14 février 2024 - 13:49
Bonjour g.L
Sympa le rendu.
Pour enrichir le forum, tu peux nous dire quelle méthode tu as mis en place finalement.
Merci pour ce retour.

J'essaierai de trouver la solution, il me semble que l'on peut y parvenir.
Cdlt
Message modifié, 14 février 2024 - 14:00
Membre enregistré
1 029 messages
Posté le 18 février 2024 - 10:01
Bonjour g.L
Voici le résultat qui je pense correspond à tes attentes.
En édition :





En exécution :





J'ai dans mon fichier Clients une rubrique nommée Société (rubrique Texte, clé avec doublon).
Lors de la création de la table verticale, à la fenêtre "Définition de la rubrique de tri (clé de parcours), j'ai sélectionné la rubrique "Société", puis à la fenêtre suivante "Fichier de données chargé en mémoire" (ce qui permet de placer des Ruptures).
------------------------------------------------------------------------------
La Table sur la fenêtre est nommée Table_Clients.
Dans la description de la Table, onglet "Style", élément : "Titre de colonne", j'ai défini Position : "Sans libellé".
Dans l'onglet "Contenu", Section "Ruptures", la case à cocher "Ruptures avec enroulé/déroulé" est cochée.
En cliquant sur le bouton "Editer les ruptures", dans la liste "Liaison possible", Windev me propose 2 lignes "Société", je bascule les 2 lignes vers la Liste "Liaison".
Dans la fenêtre "Description" de la table, onglet "contenu", j'ai donc "HautRupture1" et "HautRupture2".
------------------------------------------------------------------------------
Dans ma table, je sélectionne la ligne "BasRupture2" et je décoche "Visible" dans la description, onglet "IHM".
Même action pour la ligne ""BasRupture1".

Dans le code de la table, dans l'évènement "Fin d'initialisation de Table_Clients" :
TableEnrouleTout(MoiMême)
------------------------------------------------------------------------------
Sur La ligne "HautRupture1" de la table, j'ai placé 1 libellé avec, dans la description, onglet "Liaison", la rubrique "Société" du fichier "Clients".

Sélectionner la ligne "HautRupture1".
Dans Description :
onglet "Style", cadre "Aucun", Couleur de Fond "Vert"

Dans Code, évènement "Affichage d'une ligne de HautRupture1 ..." :
HautRupture2..Enroulé = Faux
-----------------------------------------------------------------------------
Attention à bien définir la largeur des colonnes avant de placer les libellés car sinon c'est fastidieux à reprendre.
Sur La ligne "HautRupture2", j'ai placé 3 libellés avec, dans la description, onglet "Général", Libellé :
pour le premier libellé : SOCIETE
Second libellé : NOM
Troisième libellé : DATE

Sélectionner la ligne "HautRupture2".
Dans Description :
onglet "Style", cadre "Aucun", Couleur de Fond : dégradé Vert-Bleu
-----------------------------------------------------------------------------
Un champs Image (largeur = 25, Hauteur = 22) permet de cacher et d'empêcher l'accès au + qui permet de d'enrouler/dérouler le "HautRupture2".
J'ai essayé avec un champs forme "Rectangle" (mais on voit le cadre sur un dégradé).
L'image est définie, dans l'onglet "Style", "Cadre Extérieur", Cadre = Aucun, "couleur de Fond" avec le même dégradé Vert-Bleu que le cadre de la rupture "HautRupture2".

Si je n'ai rien oublié, ça devrait fonctionner.
Cdlt
Membre enregistré
132 messages
Posté le 19 février 2024 - 14:45
Super cédric merci pour ton retour je vais essayer ça de mon coté j'ai pour habitude de toujours remplir mes tableau par programmation je vais essayer de reproduire ce que tu as fais :)

Pour le rendu que j'ai :

1) crée un champ table par programmation
2) dans l'onglet Style de la description de la table :
- Element : titre de colonne ; Position : Au centre en gras 10 uw Segeo UI
- Element: Cadre de titre de colonne ; Couleur fond Dégradé premiere couleur :RVB(0,0,0), deuxieme couleur: RVB (17,157,255) pas de cadre

3) Définir la rupture
Ma colonne Col_NomCléPirmaire me sert a faire la rupture elle contient le nom du fichier + ça cléPrimaire ( NomFichier+"."+clePrimaire)
ce qui me permet d'avoir une rupture par clef parcouru sur le fichier





Comme Sur cette image le nom du fichier est Action et la clePrimaire c'est IdJeuechelle et IdCause

4) programmer le remplisage du tableau
ensuite programmer votre boucle pour afficher les ligne dans le tableau
POUR TOUT js de JSON..Membre[1]
nligne= TableAjouteLigne(TABLE_ListeErreurInt,NomFichier+"."+clePrimaire,cleUniqueDuFichier+" : "+js[cleUniqueDuFichier],fichierLier+"."+cleSecondaire,NomFichier+"."+clePrimaire+": "+js[clePrimaire])
bornProgression++
JAUGE_Simple = bornProgression
/* LIB_Progress = bornProgression +" / "+JAUGE_Simple..BorneMax */
FIN
titre est une chaîne = "ERREUR ENTRE : "+NomFichier+"=>"+clePrimaire+" ET : "+fichierLier+"=>"+cleSecondaire+" cardi : "+FKRegle+""
TableauAjoute(tableauIdLigneRupt,nligne)
TableauAjoute(tabTitreRupt,titre)

En gros j'ai plein de traitement avant pour récupérer la requête la changer en JSON (plus rapide pour parcourir chaque ligne ^^ )
ici mon JSon..membre[1] correspont a l'ensemble des ligne contenu dans une rupture (je fais un boucle pour lire chaque fichier lire chaque liaison de ce fichier et pour chaque liaison faire une requète pour récuperer les erreur .. dans les grande ligne

du coup une fois que j'ai parcouru toutes les lignes de JSon..Membre j'écris le titre de ma rupture que je met dans un tableau ainsi que l'indice de la ligne de la rupture

pour ensuite une fois tout les fichier parcouru ecrire les titre avec ceci

SI TableauOccurrence(tableauIdLigneRupt)>-1 ALORS

y=1
POUR TOUT elt de tableauIdLigneRupt

titreRuptur = TableIndiceRupture(RUPT_HautRupture1,elt)
SI titreRuptur <> 0 ALORS
TABLE_ListeErreurInt[titreRuptur].LIB_TitreRupt = tabTitreRupt[y]+" ; Nombre d'erreur : "+(elt-nbligneRupt)
FIN
nbligneRupt = elt
y++
FIN


FIN


et voici le style de la rupture






couleur dégrader => RVB(255,255,255) ; RVB(133,158,179)
Membre enregistré
132 messages
Posté le 19 février 2024 - 14:54
Dans ta solution je viens de voir que du coup tes titre de colonne sont des libellé du coup tu ne peux pas redimensionner tes colonne ? enfin si tu redimensionne la colonne j'imagine que tu peux avoir ta première colonne qui fais la taille de tes deux premier libellé non ?

visuellement c'est ce que je veux mais au niveau utilisation et ui c'est pas ça ^^ ta réponse est très bien c'est ce qui me fallait mais j'ai besoin de pouvoir redimensionner mes colonne
je suis chiant je sais ^^ merci pour ta réponse si je trouve un truc qui me permet de faire la même avec la redimenssion des colonne je reviendrai ici
Message modifié, 19 février 2024 - 14:56
Membre enregistré
1 029 messages
Posté le 20 février 2024 - 02:45
Pour moi la réponse est simple, il faut réajuster les colonnes par programmation.
Dans l'exemple décrit ci dessus, pour le code de la colonne Société, dans l'évènement "Redimensionnement de la colonne Société" :
Libellé2..Largeur = Société..Largeur - 50 // j'enlève 50 car il y a le +- que j'ai caché
Libellé3..X = Société..Largeur + 7 // +7 car mon libellé 3 n'est pas accolé au séparateur de colonne (à adapter)
Libellé4..X = Société..Largeur + Nom..Largeur + 5 //le libellé de la 3eme colonne est positionné en additionnant les largeurs des colonnes précédentes

Libellé 2 représente "SOCIETE", Libellé 3 représente "Nom" et Libellé 4 pour "Date".
Ceci permet de redimensionner la première colonne, il faut faire de même avec les autres colonnes et le tour est joué.
Cdlt
Membre enregistré
132 messages
Posté le 20 février 2024 - 11:57
Merci Cédric que partage ma solution final merci pour ton aide :)

Rendu :





code dans des redimension colonne :















Code d'initiation de la page :





J'ai mis une taille minim car sinon parfois ma deuxième colonne s'écrasé entièrement

Code redimension de la page :





j'ai mis la largeur de l'image qui cache le + et - = a la largeur de ma table car si tu clique n'importe ou sur la rupture ça ferme ou ouvre la rupture alors l'image doit prendre toute la largeur sinon tu pourra quand même réduire la rupture ^^

et j'ai ajouter la parti redimension de la fenêtre car parfois je passe en grand écran puis en petit ça dépend de ce que je fais en même temps donc je voulais que ça s'adapte aussi si je redimensionne ma fenêtre
Membre enregistré
132 messages
Posté le 20 février 2024 - 14:02
pourquoi ce pouce négatif ?*