remplir un document writer et depuis la base de données.

Bonjour

j'utilise actuellement un document WRITER dont je remplis des champs avec le contenu d'un fichier CALC.

Pour des raisons de simplification au niveau de la saisie des données je vais utiliser plusieurs tables dans une base de données LibreOffice pour stocker ces mêmes informations en lieu et place de mon fichier CALC.

Cependant je ne vois pas comment faire remplir mon document Writer avec les données de la base. En effet le mode rapport qui est proposé dans la base de données ne semble pas le permettre, d'autant que ces données sont dans plusieurs tables.

Quelles sont les pistes. Faut il mettre en place une macro qui effectue ce travail ?

Merci d'avance pour vos réponses.

François-Marie BILLARD

Bonjour,

Cependant je ne vois pas comment faire remplir mon document Writer
avec les données de la base. En effet le mode rapport qui est proposé
dans la base de données ne semble pas le permettre, d'autant que ces
données sont dans plusieurs tables.

Quelles sont les pistes. Faut il mettre en place une macro qui
effectue ce travail ?

Est-ce que tes données sont susceptibles d'être rassemblées sous forme
d'une seule requête, ou sont elles actuellement organisées de telle
sorte que cela ne soit pas possible ?

Normalement, une requête devrait suffire, mais cela dépend en réalité de
ce que tu veux présenter dans ton document Writer.

Alex

Cependant je ne vois pas comment faire remplir mon document Writer
avec les données de la base. En effet le mode rapport qui est proposé
dans la base de données ne semble pas le permettre, d'autant que ces
données sont dans plusieurs tables.

Quelles sont les pistes. Faut il mettre en place une macro qui
effectue ce travail ?

Est-ce que tes données sont susceptibles d'être rassemblées sous forme
d'une seule requête, ou sont elles actuellement organisées de telle
sorte que cela ne soit pas possible ?

Normalement, une requête devrait suffire, mais cela dépend en réalité de
ce que tu veux présenter dans ton document Writer.

Alex

Et en complément de ce que dit Alex, dans ton document Writer, par Édition > Changer de base de données
tu peux connecter ta base enregistrée, et glisser/déposer les champs de la requête dans le document.
J.M

Bonjour

Et en complément de ce qu'indique Jean-Michel

Jean Michel PIERRE wrote

dans ton document Writer, par Édition > Changer de base de données
tu peux connecter ta base enregistrée, et glisser/déposer les champs de la
requête dans le document.

Si la base est "enregistrée" (i.e. "référencée", ces notions étant
présentées ici:
https://wiki.documentfoundation.org/FR/FAQ/Writer/129)
il n'est pas nécessaire de passer par Édition > Changer de base de données.

Tu peux alors directement afficher la base dans la fenêtre des sources
de données puis glisser/déposer les champs dans le document.

Cordialement
Pierre-Yves

Bonjour

non, je ne pense pas qu'une seule requête me donne tout d'un coup. Par contre peut être pourrais je construire une table temporaire via une macro puis ouvrir le document Writer correpsondant ?

Par contre je ne sais pas par quel bout prendre le problème;

Merci

François-Marie

Suite...

contact wrote

non, je ne pense pas qu'une seule requête me donne tout d'un coup. Par
contre peut être pourrais je construire une table temporaire via une
macro puis ouvrir le document Writer correpsondant ?

Par contre je ne sais pas par quel bout prendre le problème;

Mon premier bout serait quand même l'organisation des données.
Je pars de l'hypothèse que si les données ont vocation à se retrouver
dans la même page du document writer c'est qu'elles ont des éléments
permettant de les relier.

Autre raison à ma réaction: le fait que justement tu passes du
tableur à une base de données relationnelle. Cela suppose que
les données sont organisées pour pouvoir être mises en relation
(typiquement aller rechercher des libellés ou montant dans
des tables, gérer des occurrences multiples, etc.).

Je ne veux pas jouer les rabat-joie ni les donneurs de leçons
mais essayer d'aider à ce que tu ne perdes pas trop de temps.

Tu ne nous précises pas si tu pratiques déjà la programmation
des macros (et notamment dans l'environnement de la base
de données), ni le SQL.

Quoiqu'il en soit... c'est pour moi le dernier bout par lequel aborder
cette question, compte tenu de ce que nous connaissons...

Cordialement
Pierre-Yves

Suite et précisions,

en effet toutes ces données sont liées entre elles et je suis à même de les regrouper via des requêtes SQL. Quand à la programmation de macro je n'en suis pas un fin connaisseur mais mon expérience de la programmation en général devrai me permettre d'y arriver.

A ce jour je dispose de la gestion de mes données via le module base de libreoffice (cette partie est bien avancée au niveau des tables et des formulaires) et du fichier writer qui couplé à une feuille de calcul me permet un publipostage.

Pour coupler les deux j'ai envisagé deux pistes

soit en injecter les résultats des mes requêtes SQL dans les champs du document writer, je pensais que les rapports dans le module base le permettais.

soit en mettant à jour ma feuille de calcul liée à mon document writer puis en faisant un publipostage avec ces données.

Il me semble que ce soit possible en utilisant les macros.

En effet je suis conscient du temps nécessaire pour développer ce projet mais je fait régulièrement manuellement ce regroupement de données suivi de l'édition du document Writer et souhaiterais automatiser l'ensemble.

cordialement

François-Marie

Bonjour

contact wrote

en effet toutes ces données sont liées entre elles et je suis à même de
les regrouper via des requêtes SQL.

Du coup tu peux faire directement le publipostage sur ces requêtes.
Et il est aussi possible de fonder un rapport sur une requête.

A priori *pas besoin* de macro.

Si vraiment tu veux aller dans cette voie je te joins un ancien
exemple simple montrant comment:
-"remonter" depuis un formulaire jusqu'à la connexion
-manipuler des contrôles de formulaire
-manipuler les tables
-exécuter une requête

L'exemple permet, depuis un formulaire, de sélectionner une
table puis de la copier. La nouvelle table prend le nom initial
précédé de "Copie de".

CopierTableDepuisFormulaire.odb
<http://nabble.documentfoundation.org/file/n4061590/CopierTableDepuisFormulaire.odb>

Cordialement
Pierre-Yves

Bonjour François-Marie,

A ce jour je dispose de la gestion de mes données via le module base
de libreoffice (cette partie est bien avancée au niveau des tables et
des formulaires) et du fichier writer qui couplé à une feuille de
calcul me permet un publipostage.

Au lieu de coupler ton fichier Writer à Calc, tu peux créer un document
Writer contenant directement les champs qui t'intéresse, dont l'origine
peut être une table, une requête ou une vue (pour les moteurs de db
ayant un support des vues).

Ce document Writer, comme cela a déjà été indiqué, peut contenir les
champs soit en passant par le menu Insertion > Champ > Autres, soit en
ouvrant le navigateur de sources de données, choisissant la
table/requête/vue, puis en glissant/déposant les champs à l'endroit où
tu veux qu'ils apparaissent dans le document. Ensuite, tu peux
sauvegarder ce document en tant que modèle.

Lorsque tu voudras éditer ton "rapport", tu ouvres un nouveau document
en te servant du modèle, puis tu fais un publipostage. Ici, tu as deux
possibilités : soit tu fais Ctrl-P pour imprimer, et on te demanderas si
tu veux faire un publipostage sur la base de la source de données
prédéfinie, soit tu peux lancer l'outil de publipostage, qui te guide
avec un assistant (qui, selon les versions de LO, était plus ou moins
buggué, mais ça s'est un peu arrangé depuis avec la LO4).

Pour ma part, je préfère investir mon temps dans la création d'un modèle
et de la requête/vue correspondante, parce que je trouve que l'assistant
souffre d'une absence de flexibilité (en dehors des bugs connus).

Alex

Merci à tous pour ces pistes je vais regarder tout cela tranquillement et faire des essais.

Cordialement

François-Marie