Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD12] Afficher les entetes de colonne d'un champ table en programmation

6 réponses
Avatar
icho78
Bonjour,

J'aimerais connaitre le code pour afficher les titres de colonne d'un
champ table par programmation, et afficher ces titres avec le style
tube.

Je me permet d'insister sur le fait que je cherche =E0 le faire par code
et non avec l'onglet style des propri=E9t=E9s du champ.

Merci par avance

Icho

6 réponses

Avatar
Romain PETIT
a exprimé avec précision :
Bonjour,



Bonjour,

J'aimerais connaitre le code pour afficher les titres de colonne d'un
champ table par programmation, et afficher ces titres avec le style
tube.



Je me permet d'insister sur le fait que je cherche à le faire par code
et non avec l'onglet style des propriétés du champ.



Je ne sais pas ce qu'est le style tube, mais tu peux par exemple
utiliser la syntaxe suivante :
MaTable.MaColonne..Libellé = gCadrage("CH","Texte cadré en haut
centré) + RC+ gCadrage("CB",gPoliceTaille(12)+gPoliceGras()+"Texte
cadré en bas, centré, police 12, en gras")

Attention, si par la suite tu veux récupérer le texte seul du libellé,
il va falloir gérer la suppression des caractères utilisés par Windev
pour la mise en forme
(du style
<ESC>CCH(<30>Texte<30>)<RC><ESC>CCB(<30><ESC>PT12.000000T<ESC>PG+Texte2<30>)
(ou alors utiliser la propriété ..Note pour stocker le libellé en texte
brut).

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Icho
On 20 mar, 09:35, Romain PETIT wrote:
a exprimé avec précision :

> Bonjour,

Bonjour,

> J'aimerais connaitre le code pour afficher les titres de colonne d'un
> champ table par programmation, et afficher ces titres avec le style
> tube.
> Je me permet d'insister sur le fait que je cherche à le faire par cod e
> et non avec l'onglet style des propriétés du champ.

Je ne sais pas ce qu'est le style tube, mais tu peux par exemple
utiliser la syntaxe suivante :
MaTable.MaColonne..Libellé =  gCadrage("CH","Texte cadré en haut
centré) + RC+ gCadrage("CB",gPoliceTaille(12)+gPoliceGras()+"Texte
cadré en bas, centré, police 12, en gras")

Attention, si par la suite tu veux récupérer le texte seul du libell é,
il va falloir gérer la suppression des caractères utilisés par Wind ev
pour la mise en forme
(du style
<ESC>CCH(<30>Texte<30>)<RC><ESC>CCB(<30><ESC>PT12.000000T<ESC>PG+Texte2<3 0>­)
(ou alors utiliser la propriété ..Note pour stocker le libellé en t exte
brut).

A+

--
Romain PETIT
contact :http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windevhttp://www.mesnews.net/http://fr.wik ipedia.org/wiki/Newsgroup



Bonjour Romain,

je vais regarder de près ton code, mais je vais être malgré tout plus
clair.

Mes titres existent bien dans les propriétés du champ Table, mon souci
est que la barre de titre du champ table n'apparait pas, mais je
voudrais mettre son affichage uniquement en code.

Icho
Avatar
Romain PETIT
Icho a présenté l'énoncé suivant :
je vais regarder de près ton code, mais je vais être malgré tout plus
clair.



Ok, compris. Tu veux pouvoir afficher/masquer le titre des colonnes.
Ce n'est pas possible directement, l'astuce va donc consister à
utiliser la propriété multiligne du titre de colonne.
- Modifie le style de la table pour que l'élément "cadre titre de
colonne" ait une hauteur minimale (1 pixel)
- vérifier que les titres de colonne soient multilignes (onglet détail
de la table)
- Ensuite, c'est la modification du libellé qui va automatiquement
faire apparaitre ou disparaitre ce cadre :


c est un entier
sNomtable est une chaîne = "Table1"
sNomColonne est une chaîne
// On sauvegarde d'abord les libellés dans la propriété ..note (ou dans
une variable tableau par exemple)
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
sNomColonne = TableEnumèreColonne(sNomtable,c)
{sNomtable+"."+sNomColonne, indChamp}..Note =
{sNomtable+"."+sNomColonne, indChamp}..Libellé
FIN

Info("Afficher...")
// Pour afficher, on ré-affecte le libellé AVEC UN RC (ou plus selon la
hauteur désirée)
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
sNomColonne = TableEnumèreColonne(sNomtable,c)
{sNomtable+"."+sNomColonne, indChamp}..Libellé =
{sNomtable+"."+sNomColonne, indChamp}..Note+RC
FIN

Info("masquer")
// pour masquer,, les libellés sont effacés
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
sNomColonne = TableEnumèreColonne(sNomtable,c)
{sNomtable+"."+sNomColonne, indChamp}..Libellé = ""
FIN


A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Icho
On 20 mar, 10:31, Romain PETIT wrote:
Icho a présenté l'énoncé suivant :

> je vais regarder de près ton code, mais je vais être malgré tout plus
> clair.

Ok, compris. Tu veux pouvoir afficher/masquer le titre des colonnes.
Ce n'est pas possible directement, l'astuce va donc consister à
utiliser la propriété multiligne du titre de colonne.
- Modifie le style de la table pour que l'élément "cadre titre de
colonne" ait une hauteur minimale (1 pixel)
- vérifier que les titres de colonne soient multilignes (onglet détai l
de la table)
- Ensuite, c'est la modification du libellé qui va automatiquement
faire apparaitre ou disparaitre ce cadre :

c est un entier
sNomtable est une chaîne = "Table1"
sNomColonne est une chaîne
// On sauvegarde d'abord les libellés dans la propriété ..note (ou dans
une variable tableau par exemple)
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
        sNomColonne = TableEnumèreColonne(sNomtable,c)
        {sNomtable+"."+sNomColonne, indChamp}..Note =
{sNomtable+"."+sNomColonne, indChamp}..Libellé
FIN

Info("Afficher...")
// Pour afficher, on ré-affecte le libellé AVEC UN RC (ou plus selon la
hauteur désirée)
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
        sNomColonne = TableEnumèreColonne(sNomtable,c)
        {sNomtable+"."+sNomColonne, indChamp}..Libellé =
{sNomtable+"."+sNomColonne, indChamp}..Note+RC
FIN

Info("masquer")
// pour masquer,, les libellés sont effacés
POUR c=1 _A_ TableOccurrence(sNomtable,toColonne)
        sNomColonne = TableEnumèreColonne(sNomtable,c)
        {sNomtable+"."+sNomColonne, indChamp}..Libellé = ""
FIN

A+

--
Romain PETIT
contact :http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windevhttp://www.mesnews.net/http://fr.wik ipedia.org/wiki/Newsgroup



Re Romain,

Merci de ces explications, et j'ai bien coompris le principe. Ton code
est efficace.

mais y a t'il moyen de ne pas énumérer les colonnes qui ont été
masquées dans le champ table ? Je conserve en mémoire de la table une
douzaines d'informations mais je n'en affiche que 3.

Merci beaucoup

Icho
Avatar
Romain PETIT
Après mure réflexion, Icho a écrit :

mais y a t'il moyen de ne pas énumérer les colonnes qui ont été
masquées dans le champ table ? Je conserve en mémoire de la table une
douzaines d'informations mais je n'en affiche que 3.



A priori, non.
Il y a bien TableIndiceColonne qui permet de savoir si la colonne est
invisible mais il faut utiliser le nom de la colonne en paramètre (donc
l'énumération est nécessaire).
Si tu sais que tes colonnes visibles s'aretent au rang N° 3, tu finis
ta boucle sur 3 au lieu de TableOccurrence(sNomtable,toColonne).

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Icho
On 20 mar, 13:21, Romain PETIT wrote:
Après mure réflexion, Icho a écrit :

> mais y a t'il moyen de ne pas énumérer les colonnes qui ont été
> masquées dans le champ table ? Je conserve en mémoire de la table u ne
> douzaines d'informations mais je n'en affiche que 3.

A priori, non.
Il y a bien TableIndiceColonne qui permet de savoir si la colonne est
invisible mais il faut utiliser le nom de la colonne en paramètre (donc
l'énumération est nécessaire).
Si tu sais que tes colonnes visibles s'aretent au rang N° 3, tu finis
ta boucle sur 3 au lieu de TableOccurrence(sNomtable,toColonne).

A+

--
Romain PETIT
contact :http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windevhttp://www.mesnews.net/http://fr.wik ipedia.org/wiki/Newsgroup



Merci pour tout, je vais changer l'ordre des colonnes dans le
champtable pour ne travailler que sur les 3 premières.

Icho