Formatage des cellules View Pro

J’ai beau relire la doc dans tous les sens, je ne trouve pas comment formater les cellules.
J’ai importé des données par VP SET VALUES ; il y a une colonne de dates qui affiche la date sous la forme DD/MM/AAAA h:mm:ss ; pour info, si je copie colle ailleurs, la date un entier.
Dans le même genre, les données numériques sont affichées calées à gauche et avec une virgule ; pour info, un test rapide montre que c’est bien un nombre mais l’alignement gauche n’est pas pertinent…
Je sais formater avec le menu mais je ne trouve rien pour le faire par programmation.
Les commandes relatives aux feuilles de style ne s’occupent pas de ce formatage.
Une piste svp ?

https://doc.4d.com/4Dv18/4D/18/Format-de-cellule-4D-View-Pro.300-4522286.fr.htmlLa page de format dans la doc>

Au pire, tu réécris l’info dans ta cellule en appliquant un format :idea:

J’écris les données avec VP SET VALUES et une collection de collection (au passage, c’est très rapide, contrairement à ce que j’avais observé en écrivant les colonnes une par une il y a quelques mois).

Il faut donc que je relise la colonne avec VP GET VALUES puis que je les réécrive avec VP SET VALUE et un format, une par une ?
VP GET VALUES me donne une collection (sur une colonne ; ça me va) mais VP SET VALUES nécessite une collection de collections ; il faut bricoler à la main, un peu capilotracté…

J’avais pas vu le S à VP SET VALUE_S_ :oops:

J’aurais eu tendance à penser qu’on pouvait définir un objet avec une propriété “format” mais cela n’est pas le cas dans le doc du moins… :frowning:

Pour l’instant, je n’ai pas d’autres solutions.

Bonjour,

: Bernard ESCAICH

VP GET VALUES me donne une collection (sur une colonne ; ça me va)
mais VP SET VALUES nécessite une collection de collections ; il faut
bricoler à la main, un peu capilotracté…
VP GET VALUES renvoie normalement une collection de collection utilisable directement avec VP Set values. Je n’ai pas réussi à reproduire votre problème, mais si vous recevez une collection simple c’est un bug.

: Bernard ESCAICH

Il faut donc que je relise la colonne avec VP GET VALUES puis que je
les réécrive avec VP SET VALUE et un format, une par une ?
Non, vous pouvez utiliser les commandes de style: VP SET DEFAULT STYLE, VP SET CELL STYLE, VP ADD STYLESHEET pour appliquer un format à un range de cellule.

Pourquoi la commande VP SET VALUES est-elle limité par rapport à VP SET VALUE ? ne pourrait-on pas avoir une collection d’objets identique dans les 2 cas avec la possibilité d’avoir le format spécifié directement dans l’objet :?: Ça simplifierait la chose non ?

: Fabrice MAINGUENE

VP GET VALUES renvoie normalement une collection de collection
OK, j’avais mal regardé :evil:

: Fabrice MAINGUENE

Non, vous pouvez utiliser les commandes de style: VP SET DEFAULT
STYLE, VP SET CELL STYLE, VP ADD STYLESHEET pour appliquer un format
à un range de cellule.
J’ai trouvé mais un exemple sur cette https://doc.4d.com/4Dv18/4D/18/Format-de-cellule-4D-View-Pro.300-4522286.fr.htmlpage> ne serait pas de trop.
Merci !

En fouillant, je vois que la fenêtre de déboggage a un peu de mal avec les tris :
[]33539998;“Your comment here…”[/]
Les nombres sont triés comme de l’alpha…

Je n’arrive pas à comprendre comment fonctionnent les styles de VP.
J’ai appliqué l’exemple de la doc avec VP ADD STYLESHEET et je le relis immédiatement avec VP Get stylesheets mais je ne trouve pas le style créé?

Comment utilise-t-on ces styles manuellement ?
J’ai fouillé tous les menus…

Comment utilise-t-on ces styles par programmation ? Je ne trouve pas non plus ; dans la https://doc.4d.com/4Dv18/4D/18/Objets-style-et-feuilles-de-style-4D-View-Pro.300-4522245.fe.htmldoc>, on voit une propriété name ; ça ne donne rien…

Bonjour,

VOici un exemple d’utilisation de stylesheet. Il faut créer le stylesheet avec la commande VP ADD STYLESHEET et l’appliquer à vos cellules grâce à l’attribut name de l’objet style:
<code 4D>
// Create the border style
$style:=New object
$style.font:=“18pt Arial”
$style.backColor:="#FF1493"

// create your stylesheet in the document
VP ADD STYLESHEET (“ViewProArea”;“Table”;$style)

// Apply the style
VP SET CELL STYLE (VP Cells (“ViewProArea”;1;1;10;10);New object(“name”;“Table”))
</code 4D>

Pour trouver plus d’exemples d’utilisation de style par programmation, vous pouvez aller sur le blog:
https://blog.4d.com/customize-the-style-of-your-4d-view-pro-documents/Customize the style of your 4D View Pro documents/>

Merci de votre réponse ; j’avais appliqué ce que vous indiquez.
C’est bien décrit dans le blog ; ce serait mieux que la doc soit complète et mentionne cette partie :
//Apply the style
VP SET CELL STYLE(VP Cells(“ViewProArea”;1;1;10;10);New object(“name”;“Table”))

Je voudrais un format date et je n’arrive pas à le faire fonctionner.
J’ai écrit
<code 4D>
$style.formatter:=“dd/mm/aa”
VP ADD STYLESHEET (“vpArea”;“formatDate”;$style)
ou
$style.formatter:=vk pattern short date
VP ADD STYLESHEET (“vpArea”;“formatDate”;$style)

</code 4D>
Aucun des deux ne me donne ce que j’attends : dd/mm/aaaa.

Qu’est-ce qui m’échappe ?

<code 4D>
$style.formatter:=vk pattern short date
VP SET CELL STYLE ($range_o;$style)

</code 4D>
fonctionne bien ; pourquoi l’utilisation de la feuille de style ne fonctionne-t-elle pas ?
=> elle me donne dd/mm/aaaa h:mm:ss

J’ai bien sûr vérifié que ça fonctionne avec, par exemple, $style.font:=“18pt Arial”
C’est le formatage des dates qui me pose problème (de compréhension ?).

: Bernard ESCAICH

Je voudrais un format date et je n’arrive pas à le faire fonctionner.
J’ai écrit

Code 4D :
1 $style.formatter:=“dd/mm/aa”
2 VP ADD STYLESHEET(“vpArea”;“formatDate”;$style)
3 ou
4 $style.formatter:=vk pattern short date
5 VP ADD STYLESHEET(“vpArea”;“formatDate”;$style)
6

Aucun des deux ne me donne ce que j’attends : dd/mm/aaaa.

Qu’est-ce qui m’échappe ?

Déjà le “formatter” n’est pas bon. le format “a” n’existe pas en View Pro. Pour formater une année, il faut utiliser “y”. Du coup ça donne:

<code 4D>
$style.formatter:=“dd/mm/yy”
2 VP ADD STYLESHEET(“vpArea”;“formatDate”;$style)
</code 4D>

Lorsque j’applique cette feuille de style à une cellule j’obtiens bien une date au format “dd/mm/yy”.
Pouvez vous ajouter à votre code la ligne avec laquelle vous appliquez la feuille de style?

Merci de votre aide, ça commence à rentrer…