Bonjour,
Je travaille au service Agriculture de la DDT de la Drôme et nous souhaitons étudier la migration de certains de nos tableaux de suivis partagés dans Grist.
Pour test, j’ai déjà migré dans Grist l’instruction de l’éligibilité des exploitants aux aides de la Pac :
Plus habitué aux SGBD type Access ou Posgresql, j’ai utilisé Grist sans utiliser le principe des références (simples ou multiples), mais plutôt avec des pseudo-liaisons (LookupOne et LookupRecords sur un identifiant commun entre les tables) pour rapatrier des données de diverses tables dans une table principale d’instruction.
Nous faisions un peu la même chose (en moins puissant) dans des tableurs avec RechercheV.
L’idée (simplifiée) :
- une table principale avec identifiant (n° Pacage) + champs d’instruction (saisis lors de l’instruction) + champs rapatriés de plusieurs autres tables
- autres tables (identifiant : n° Pacage), plusieurs lignes par Pacage possibles
Ces « autres tables » sont des extractions csv du logiciel national de la PAC. Elles devront être mises à jour régulièrement dans Grist
Pour l’instant pour une mise à jour d’une extraction csv, j’efface toutes les données de la table et les remplace par les nouvelles données.
(je verrai plus tard si c’est possible d’automatiser)
Dans mon modèle déjà testé, cela fonctionne parfaitement bien avec les Lookup :
- du plus simple : ex : Exploitants_sa.lookupOne(pacage=$pacage).forme_juridique_sa
- ou plus élaboré (lookupRecords) avec rapatriement de données de plusieurs champs de plusieurs lignes pour un même Pacage.
D’où mes questions, car j’ai sûrement loupé quelque-chose dans le concept des références de Grist :
- Comment utiliser un champ de type Référence si on veut pouvoir faire des « liens » avec plusieurs autres tables. J’ai pensé créer plusieurs champs Référence (un pour chaque liaison avec la table concernée) mais cela me semble lourd car il faut que je recopie le numéro Pacage dans chaque champ pour autant de liaisons nécessaires
Est-ce la seule solution ? - de plus, en cas de mise à jour des « autres tables », si j’efface/remplace les lignes ou que j’écrase: ça bugue car Grist perd la liaison avec l’Id de ligne.
- dans notre cas d’utilisation de Grist, devons nous rester avec la « méthode » Lookup ?
En vous remerciant pour votre expertise.
Bien cordialement
Emmanuel Guiset

