Stop à la création automatique des colonnes des tables groupées

Hello,
J’ai une table de registre des besoins financiers qui permet à chacun d’ajouter un besoin via un formulaire pour un produit et une année donnée. Quand le besoin est renseigné une nouvelle fois sur le même produit et la même année, j’aimerai que l’on ne voit que ce besoin.
C’est ce que j’ai réussi à faire grâce à une table groupée de la table de registre et une formule de lookupRecords trié en fonction de la date du besoin. Ca fonctionne bien mais à chauqe fois que je modifie quelque chose, Grist va recréer tout un tas de colonnes superflues à cette table groupée : par exemple count, group et besoin (qui sommera bêtement les valeurs financières du group, ce qui n’a aucun sens d’un point de vue métier).

Je supprime donc manuellement ces colonnes mais elles reviennent régulièrement. Certaines de ces colonnes arrivent aussi avec des noms similaires à mes colonnes ou avec des erreurs de calculs.

J’ai ce problème sur une dizaine de tables groupées donc le problème est conséquent et j’aimerai pouvoir dire à Grist d’arrêter de créer automatiquement ces colonnes sur cette table de référence.

Est-ce possible ?
cc @nicolas.imbert

Merciii :slight_smile:

Salut Mathieu,

En effet, même si tu supprimes des colonnes par défaut dans une table groupée, quand tu rajoutes une nouvelle vue de cette table groupée, elles se recréent… Par ailleurs, si tu as plusieurs vues de la même table groupée, chaque colonne que tu rajoutes se rajoute à l’autre vue (ce qui est logique quelque part, puisque c’est la même donnée source, mais c’est tricky car via l’UI on a l’impression d’ajouter une nouvelle table groupée).

Il y a eu une demande ici de pouvoir choisir de ne pas ajouter les colonnes par défaut à une table groupée : Option to create summary tables without adding "default" columns · Issue #708 · gristlabs/grist-core · GitHub

Il y a autre chose : si tu as 2 tables groupées (regroupées sur des champs différents, donc 2 tables source distinctes), si tu rajoutes à la 2e table groupée une colonne de même nom qu’une colonne de la première table groupée, sa formule va s’appliquer dans la première…ce qui peut générer des erreurs. C’est ce qui est remonté ici : Columns in different summary tables with same name affect each other · Issue #361 · gristlabs/grist-core · GitHub

Enfin, dans le cas où tu conserves les colonnes sommées d’une table groupée (ce qui n’est semble-t-il pas ton cas ici), la suppression de la colonne « group » entraîne des erreurs dans les colonnes de somme de la table groupée (donc dans toutes les vues de cette table)… Il vaut donc mieux garder cette colonne masquée.

Pour ton cas, si faire une table groupée te permet « juste » davoir la liste de besoins uniques, tu pourrais peut-être utiliser une table classique avec une colonne formule pour récupérer les valeurs uniques :


liste = Registre.lookupRecords().Besoin
liste_unique = list(dict.fromkeys(liste))

if ($id - 1) < len(liste_unique):
  return liste_unique[$id -1]

Et les colonnes lookup (ce que tu as déjà) pour obtenir les valeurs du besoin le plus récent :
Registre.lookupOne(Besoin=$Besoin, order_by="-Annee").Montant

Document d’exemple ici : Ex - valeurs uniques d'une liste - Grist

Par contre il faut ajouter des lignes vides en amont, pour « accueillir » les nouvelles valeurs (pas d’ajout automatique de ligne contrairement à une table groupée). Cependant avec un CTRL+Entrée ça va vite. Ca te permettrait d’avoir des tables indépendantes…mais c’est aussi un travail de tout refaire !

Espérant avoir pu t’apporter quelques éléments,
Bonne journée :slight_smile:

1 « J'aime »

Merci ! Supers explications ! je vais voir vers quoi je penche mais je trouve ça encore un peu bancale…

J’espère que l’équipe de dev Grist saura nous apporter une meilleure solution.

1 « J'aime »

Avec plaisir :slight_smile: Oui, ces tables groupées sont clairement améliorables… Si tu as des propositions pour rendre tout cela plus simple et intuitif, n’hésite-pas !