Rapport ou publipostage ?

Bonjour,

j'ai besoin de vos lumières...

Win7 64b - LibO 4.1.6.2 (pas de MAJ possible)

Je dois produire un état comptable mensuel qui, à terme, pourra
reprendre jusqu'à 30.000 lignes. Cet état sera établi à partir d'une
feuille Calc (CSV également possible). J'ai la maîtrise du contenu des
données source.

Cet état liste des lignes comptables regroupées selon un code présent
dans les données. Des totalisations sont effectuées selon ce regroupement.

Comme c'est un état comptable, il est demandé de faire figurer les
totaux en chiffres et en lettres.

L'utilisateur ne sera pas un féru de bureautique.

Je vois deux possibilités sous LibreOffice :

(1) Par publipostage

Je peux établir l'état en utilisant le mode "catalogue" si bien démontré
par Pierre-Yves dans cet article :
https://forum.openoffice.org/fr/forum/viewtopic.php?p=110902
(merci à lui)

Problèmes :
1a - Mon problème ici est la rupture de page sur le code de
regroupement. Mes neurones ne voient pas comment faire... J'ai essayé
d'adapter le mode catalogue mais sans succès jusqu'à présent.
1b - Plus embêtant, si j'en crois les messages reçus sur cette liste à
propos du publipostage, le volume à traiter (30.000 lignes = env.
2500-3000 pages) me semble peu compatible avec les performances du
publipostage.

(2) Par le module Base et un rapport

J'ai testé sur un micro-ensemble de données et ça fonctionne
correctement. Le rapport s'appuie sur une requête qui génère les
regroupements.

Problèmes :
2a - Comment Base/le rapport se comportera-t-il avec une source de
données de 30.000 enregistrements ? Je n'ai pas d'expérience sur de tels
volumes.
2b - Je ne sais pas comment insérer les montants en lettres dans le
rapport. J'ai une macro qui fait ça pour Writer mais comment fait-on le
lien dans le rapport ? Je pense qu'il faudrait créer une fonction
personnalisée mais comment...

En résumé, j'ai deux questions : (a) comment gérer les ruptures de page
dans un publipostage et (b) comment insérer l'appel d'une macro dans un
rapport ?

Merci pour vos remarques et suggestions.

Amicalement,

Bonjour Marie-Jo,

En effet, je ne me risquerais pas à un publipostage de 30000 lignes...

C'est ce que je suis dit...

Il faudrait importer le code de la macro dans ta base. Mais je ne suis
pas certaine qu'il sera approprié aux champs.

Je vais voir ça.

Merci pour vos remarques et suggestions.

Autre solution simple : pourquoi ne pas utiliser la fonctionnalité
Sous.totaux de Calc ?
Elle gère tout y compris les sauts de pages.
Restera juste à ajouter les montant en lettre...
Une piste peut être

Ah ah ! Tiens, ça c'est une idée. Je vais tester.

Merci !

Re,

Autre solution simple : pourquoi ne pas utiliser la fonctionnalité
Sous.totaux de Calc ?
Elle gère tout y compris les sauts de pages.
Restera juste à ajouter les montant en lettre...
Une piste peut être

En y repensant, comme le classeur change chaque mois (un nouveau
classeur), ça voudrait dire :

-- soit refaire chaque mois la configuration sur le nouveau classeur
-- soit créer un classeur client et y créer la structure qui va bien.
Mais avec des liens vers 30.000 lignes, cela ne risque-t-il pas d'être
louuuurd ?

Si ! Fort risque de plantage.

Bonjour JF,

Bonjour,

j'ai besoin de vos lumières...

Win7 64b - LibO 4.1.6.2 (pas de MAJ possible)

Je dois produire un état comptable mensuel qui, à terme, pourra
reprendre jusqu'à 30.000 lignes. Cet état sera établi à partir d'une
feuille Calc (CSV également possible). J'ai la maîtrise du contenu des
données source.

Cet état liste des lignes comptables regroupées selon un code présent
dans les données. Des totalisations sont effectuées selon ce regroupement.

Comme c'est un état comptable, il est demandé de faire figurer les
totaux en chiffres et en lettres.

L'utilisateur ne sera pas un féru de bureautique.

Je vois deux possibilités sous LibreOffice :

(1) Par publipostage

Je peux établir l'état en utilisant le mode "catalogue" si bien démontré
par Pierre-Yves dans cet article :
https://forum.openoffice.org/fr/forum/viewtopic.php?p=110902
(merci à lui)

Problèmes :
1a - Mon problème ici est la rupture de page sur le code de
regroupement. Mes neurones ne voient pas comment faire... J'ai essayé
d'adapter le mode catalogue mais sans succès jusqu'à présent.
1b - Plus embêtant, si j'en crois les messages reçus sur cette liste à
propos du publipostage, le volume à traiter (30.000 lignes = env.
2500-3000 pages) me semble peu compatible avec les performances du
publipostage.

Ne pourrais tu pas appliquer un style à ce code de regroupement ? Avec un saut de page avant ?
En effet, je ne me risquerais pas à un publipostage de 30000 lignes...

(2) Par le module Base et un rapport

J'ai testé sur un micro-ensemble de données et ça fonctionne
correctement. Le rapport s'appuie sur une requête qui génère les
regroupements.

Problèmes :
2a - Comment Base/le rapport se comportera-t-il avec une source de
données de 30.000 enregistrements ? Je n'ai pas d'expérience sur de tels
volumes.
2b - Je ne sais pas comment insérer les montants en lettres dans le
rapport. J'ai une macro qui fait ça pour Writer mais comment fait-on le
lien dans le rapport ? Je pense qu'il faudrait créer une fonction
personnalisée mais comment...

En résumé, j'ai deux questions : (a) comment gérer les ruptures de page
dans un publipostage et (b) comment insérer l'appel d'une macro dans un
rapport ?

Il faudrait importer le code de la macro dans ta base. Mais je ne suis pas certaine qu'il sera approprié aux champs.

Merci pour vos remarques et suggestions.

Autre solution simple : pourquoi ne pas utiliser la fonctionnalité Sous.totaux de Calc ?
Elle gère tout y compris les sauts de pages.
Restera juste à ajouter les montant en lettre...
Une piste peut être

Marie-jo

Re,

Re,

Autre solution simple : pourquoi ne pas utiliser la fonctionnalité
Sous.totaux de Calc ?
Elle gère tout y compris les sauts de pages.
Restera juste à ajouter les montant en lettre...
Une piste peut être

En y repensant, comme le classeur change chaque mois (un nouveau
classeur), ça voudrait dire :

-- soit refaire chaque mois la configuration sur le nouveau classeur
-- soit créer un classeur client et y créer la structure qui va bien.
Mais avec des liens vers 30.000 lignes, cela ne risque-t-il pas d'être
louuuurd ?

Et une petite macro :wink:

Marie-Jo

Bonjour Jean-François

Jean-Francois Nifenecker wrote

Je dois produire un état comptable mensuel qui, à terme, pourra
reprendre jusqu'à 30.000 lignes

J'espère que les commanditaires n'envisagent pas d'imprimer un
tel document tous les mois... et en combien d'exemplaires...
pour être lu combien de fois... ?

Quoiqu'il en soit ni le publipostage ni Base ne me semblent répondre
dans l'état actuel.

Je n'ai pas de solution toute faite (fête...) à partager mais la solution
me semble être la création/manipulation directe du xml.

PHP, Python, etc. permettent cela et les ressources devraient être
faciles à trouver.

Cordialement
Pierre-Yves

Bonjour Pierre-Yves,

J'espère que les commanditaires n'envisagent pas d'imprimer un
tel document tous les mois... et en combien d'exemplaires...
pour être lu combien de fois... ?

Si, si. Tous les mois (et il y en a un deuxième du même acabit). Ce sera
lu exactement zéro fois. Mais c'est une obligation légale et pourra
servir en cas de contestation. Vive l'e-Administration.

Quoiqu'il en soit ni le publipostage ni Base ne me semblent répondre
dans l'état actuel.

Pour le publipostage je m'en doutais. Pour Base je n'ai jamais imprimé
d'états de ce volume. Test grandeur nature en fin de mois. Le cas
échéant, je peux scinder l'état en 54 sous-états (et une macro pour les
chaîner).

Je n'ai pas de solution toute faite (fête...) à partager mais la solution
me semble être la création/manipulation directe du xml.

PHP, Python, etc. permettent cela et les ressources devraient être
faciles à trouver.

OK, merci pour les pointeurs.

Bonjour

Je m'aperçois n'avoir pas répondu au point "lancement de
macro writer dans base".

Si finalement tu utilises un rapport Base, une solution simple
à mettre en oeuvre serait... d'utiliser une macro writer dans
writer :slight_smile:

- Insérer dans le rapport Base le contrôle qui contiendra le montant en
lettres
sans lui affecter de champ de données

- Générer le rapport (le contrôle sera vide)

- Enregistrer le rapport généré comme odt. Les contrôles devraient se
présenter dans des tableaux. Il suffit de repérer les cellules intéressantes
(celle où se trouve le montant numérique, celle où doit figurer le montant
en lettres), de faire le calcul et mettre à jour la cellule cible.

Dans l'exemple simplifié joint, les cellules sont dans les tableaux
"Pied_de_page_de_groupe". Le programme ne fait ici que recopier
la valeur mais il suffira d'ajouter ta conversion.

RTout9.odt <http://nabble.documentfoundation.org/file/n4129711/RTout9.odt>

Cordialement
Pierre-Yves

Bonjour Pierre-Yves,

Si finalement tu utilises un rapport Base, une solution simple
à mettre en oeuvre serait... d'utiliser une macro writer dans
writer :slight_smile:

- Insérer dans le rapport Base le contrôle qui contiendra le montant en
lettres
sans lui affecter de champ de données

- Générer le rapport (le contrôle sera vide)

- Enregistrer le rapport généré comme odt. Les contrôles devraient se
présenter dans des tableaux. Il suffit de repérer les cellules intéressantes
(celle où se trouve le montant numérique, celle où doit figurer le montant
en lettres), de faire le calcul et mettre à jour la cellule cible.

Dans l'exemple simplifié joint, les cellules sont dans les tableaux
"Pied_de_page_de_groupe". Le programme ne fait ici que recopier
la valeur mais il suffira d'ajouter ta conversion.

RTout9.odt <http://nabble.documentfoundation.org/file/n4129711/RTout9.odt>

Merci Pierre-Yves. Je m'étais posé la même question : un rapport génère
un document Writer, donc on "devrait" pouvoir insérer un appel de macro.
La solution proposée devrait fonctionner, en effet, mais me semble
complexe à mettre entre les mains d'un utilisateur ordinaire. Néanmoins,
je vais tester.

Merci encore,

Bonsoir,

des nouvelles...

Je dois produire un état comptable mensuel qui, à terme, pourra
reprendre jusqu'à 30.000 lignes. Cet état sera établi à partir d'une
feuille Calc (CSV également possible). J'ai la maîtrise du contenu des
données source.

la première source de données "grandeur réelle" m'ayant été fournie
(13.000 enregistrements), voici les chiffres suite à la réalisation du
rapport sous Base :

LibO 4.1.6.2 sous Win7 64b
Fichier source au format .ods
Rapport sous Base, s'appuyant sur une requête.

Durée de préparation du rapport : 3 minutes
Exportation en PDF : 2 minutes (80 Mo, le pdf)

Bref, ces valeurs me vont. On verra ce que donneront des sources plus
volumineuses.

Merci à ceux qui ont commenté.
Amicalement,