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

Le
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 à le faire par code
et non avec l'onglet style des propriétés du champ.

Merci par avance

Icho
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #18940791
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
(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
Icho
Le #18940771
On 20 mar, 09:35, 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 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
(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
Romain PETIT
Le #18941381
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
Icho
Le #18942571
On 20 mar, 10:31, 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é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
Romain PETIT
Le #18942691
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
Icho
Le #18942851
On 20 mar, 13:21, 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 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
Publicité
Poster une réponse
Anonyme