Base comme outil de CRM

lundi 13 mars 2017, par ID

On a dit, pas forcément à tort, que Base est un peu le parent pauvre de la suite LibreOffice. De fait, le module de base de données est moins performant, semble-t-il que celui de la suite de MsOffice. Mais Base fait partie intégrante de LibreOffice et sa prise en main est plutôt facile surtout depuis les dernières versions.

Quand j’ai commencé à développer ma base de données clients, je voulais surtout mettre un peu les doigts dans Base et voir comment cela fonctionnait. Il n’y a donc pas eu de cahier des charges, et le développement s’est fait au fil de l’eau. Ce qui explique, d’ailleurs, qu’il y a deux trois trucs mineurs qui ne fonctionnent pas comme cela devrait.

Et, comme je ne suis pas franchement développeuse et que ma connaissance du SQL est basique, voire moins, je n’ai utilisé que les fonctionnalités de Base en particulier et de LibreOffice en général pour mettre en place le module qui fonctionne bien merci.

 L’objet de la base

Ma base de données comporte, et c’est le point de départ, une table avec les coordonnées des clients à partir de laquelle tout se découle, ensuite il y a une table factures qui permet d’en gérer le suivi, de l’émission au paiement, une table devis et une table suivi clients pour la gestion des autres documents échangés (ou non) avec eux plus diverses autres tables pour les listes déroulantes : civilité, états des documents, moyens de paiement, etc.

Formulaires
Le formulaire principal et son sous-formulaire sous forme tabulaire.

Au moment de la création de ma base de données, je pensais ne gérer que le suivi des factures, le premier formulaire créé a donc un sous-formulaire pour la gestion des factures, car, idéalement, pour un client donné on est susceptible d’en générer plus d’une.

Après cela, se sont greffés, au fur et à mesure, les autres modules qui fonctionnent tous de la même façon : formulaire principal avec les coordonnées des personnes et des entreprises plus sous-formulaire. Rien que de très banal et à la portée de n’importe quel utilisateur. L’essentiel étant que les tables soient créées avant les formulaires et que les sous-formulaires soient générés en même temps que leur formulaire principal [1].

 Les fonctionnalités de la base

Boutons
Les boutons ouvrent les modèles de document.

Sur la capture d’écran précédente, on voit qu’il y a un bouton Facture qui ouvre mon modèle de facture fait sous Writer (j’en ai un aussi sous Calc mais c’est moins pratique). Le formulaire de suivi, a aussi des boutons qui ouvrent soit des modèles de document (conventions par exemple), soit la feuille de calcul qui me permet de gérer le temps passé pour certaines prestations, soit carrément le dossier clients. Les notes du sous-formulaire me servent aussi à noter le nombre de personnes formées, passant, à établir plus facilement le bilan pédagogique annule réclamé par la direction du contrôle de la formation continue.

Dans tout ça aucune macro : uniquement des fonctionnalités proposées par Base.

Pour rechercher une personne, j’utilise simplement le bouton de recherche (les jumelles) de Base qui ouvre une boite de dialogue dans laquelle on peut entrer ce que l’on veut : pas de requête SQL à écrire.

Recherche dans Base
Rechercher un enregistrement dans Base à partir d’un formulaire.

 Comment ça marche avec les autres modules de LibreOffice ?

Dans l’application du document, ici Writer, j’affiche la Source de données, menu Affichage > Source de données ou raccourci clavier Ctrl + Maj + F4. En pratique, j’ai ajouté le bouton à ma barre d’outils. Je recherche l’enregistrement en utilisant le bouton ad hoc (les jumelles) qui m’ouvre la même boite de dialogue que dans Base.

Recherche dans Writer
Pour trouver un enregistrement dans une table à partir de Writer.

Ensuite, je sélectionne l’enregistrement en cliquant tout à gauche de la colonne, puis sur le bouton Données dans les champs. Et hop, les données sélectionnées s’affichent au bon endroit dans les champs du document.

Sélection d’un enregistrement dans Writer
Sélectionner puis ajouter les données dans les champs.

Et, comme pour les données de facture ou de devis, je fais pareil avec les tables équivalentes. En fait, je n’utilise pas la fonctionnalité de recherche dans ces cas-là puisque, quand je dois faire une facture ou un devis, ce sont toujours les derniers enregistrements des tables qui sont concernés.

Ça fonctionne aussi bien avec Writer qu’avec Calc, mais, dans Calc, les enregistrements se posent en ligne et tout l’enregistrement, impossible de choisir les champs et leur emplacement. Je devais donc avoir une feuille supplémentaire qui affichait ces données et la facture qui les utilisait, une banale liaison du type : =Cellule source. À partir du moment où il m’a semblé utile d’envoyer des factures au format pdf hybride (donc avec le fichier xml pour un traitement automatique), cette formule ne pouvait pas fonctionner.

Ça tient bien la route car mes factures sont très simples et qu’il n’y a pas de lien avec une base de données de produits ni de calculs complexes. Au besoin, je peux ajouter une annexe avec des détails supplémentaires : la première page indique le nombre de jour facturés, la suivante les dates, comme pour les factures de téléphone en fait.

Modèle de facture
La facture avec ses différentes zones.

 Pour conclure

Pour tout dire, au début j’avais vaguement honte de ma ch’tite base de données qui me paraissait un peu minable. Mais, après avoir vu chez des clients qui ont des volumes de facture nettement plus importants que les miens des gestions de facture nettement moins bien, j’ai revu ma position et je suis plutôt fière du résultat qui est tout à fait fonctionnel.


Pour compléter : Le guide LibreOffice Base et HSQLDB pour utiliser Base avec une connexion externe HSQLDB pour sécuriser les bases de données.


[1En effet, je ne sais toujours pas, j’ai honte, enfin pas vraiment, ajouter un sous-formulaire à un formulaire existant.