Retour à la ligne après AutoText

Bonjour à vous,

Voici qu'il m'a pris l'envie de charger un groupe d'auto-textes à partir d'une table de base de données. Tout se passe parfaitement bien, je retrouve mes petits avec leur clé d'accès, libellé court et texte de remplacement, tout bien.

Par contre lorsque je les utilise, j'obtiens systématiquement un retour à la ligne après le texte de remplacement. Quelqu'un a-t-il une idée ?

Lorsque j'utilise d'autres auto-textes, livrés avec LibreOffice, tout se passe correctement et le curseur reste bien sagement à côté du dernier caractère inséré.

Merci d'avance si vous pouvez me mettre sur une piste.

Thierry

_Annexes_ :

*Code de la fonction d'insertion*

' Une entrée AutoText se compose de :
' - Le code saisi par l'utilisateur                    - CodeFourniture
' - Un titre résumant le contenu de remplacement    - Désignation
' - Le contenu de remplacement                        - Désignation & PrixUnitaire,

Sub StoreAutoText(sDesignation As String, sPrixUnitaire As String, sCodeFourniture As String)
    DIM oGroup As Object
    Dim oEntry As Object
    Dim oTextRange As Object

' Définition du texte de remplacement. Par rapport à la désignation, j'ajoute le prix pour
' l'exploiter ensuite par une macro.
    oTextRange = createUnoService("com.sun.star.text.TextRange"
    oTextRange.String = sDesignation & " " & sPrixUnitaire

oGroup = oAutoTextContainer.getByName(sAutoTextGroupName)
    oEntry = oGroup.insertNewByName(sCodeFourniture, sDesignation, oTextRange )
End Sub

*Info LibreOffice*

Version: 5.4.5.1
Build ID: 79c9829dd5d8054ec39a82dc51cd9eff340dbee8
Threads CPU : 8; OS : Mac OS X 10.13; UI Render : par défaut;
Locale : fr-CH (fr_CH.UTF-8); Calc: group

Bonjour,

Peut-être que les autotextes téléchargés contiennent tous un retour ligne.

Pour vérifier, il suffit d'un éditer un. (Outils -> Autotextes ou Ctrl+F3).

Cordialement.

Bonjour,
qq pistes :
peut-être une propriété de oEntry ou oGroup à décocher (qui considérerait
que ton autotexte est au format paragraphe ? )
ce n'est qu'une supposition.
faire un xray sur ces 2 champs pour y voir plus clair ?
comparer l'xray avec un auto-texte fait manuellement.

Yves

Bonjour,

Peut-être que les autotextes téléchargés contiennent tous un retour
ligne.

Pour vérifier, il suffit d'un éditer un. (Outils -> Autotextes ou
Ctrl+F3).

Cordialement.

Bonjour à vous,

Voici qu'il m'a pris l'envie de charger un groupe d'auto-textes à
partir d'une table de base de données. Tout se passe parfaitement
bien, je retrouve mes petits avec leur clé d'accès, libellé court et
texte de remplacement, tout bien.

Par contre lorsque je les utilise, j'obtiens systématiquement un
retour à la ligne après le texte de remplacement. Quelqu'un a-t-il
une idée ?

C'est une bogue que j'ai toujours connue (avant 2006) et qui ne doit pas
être compliquée à corriger. Le saut de paragraphe est ajouté à tous les
autotextes en texte brut. Ceci interdit cette fonction pourtant pratique
pour éviter de polluer un document avec des surcharges locales si le
texte doit être préformaté.

Voir par exemple
https://bugs.documentfoundation.org/show_bug.cgi?id=53023, JBF signalant
en 2012 que cette bogue existait déjà dans la version Ooo 2.

C'est ce genre de truc qui rend le logiciel très vulnérable face à la
concurrence, car c'est insupportable.

Bonjour,

Merci de cette information. Je vais tenter de réactiver le bug, on ne sait jamais. Et je vais évaluer l'utilisation de la correction automatique, qui était à l'origine utilisée par l'application Word que je suis en train de remplacer.

Bonne fin de journée,

Thierry

Bonne suggestion, mais les deux objets sont riches et je ne vois pas trop ce qui pourrait spécifier le forçage d’un retour ligne.
Si tu as une indication plus précise, je suis preneur.

Sinon, la suggestion d’utiliser les auto-corrections m’intéresse, mais je n'ai pas encore trouvé comment alimenter ces trucs automatiquement. J’ai un peu plus de 100 articles à charger, je ne vais pas le faire à la main, d’autant que ça change assez souvent et que j’ai une jolie petite table Base qui contient tout ça bien au chaud.

Je vais aussi tenter un Xray d’un autotext existant, mais pour ça je dois le charger, donc faire un bout de code et là, c’est sieste !

A+, merci à tous,

Thierry

En analysant un peu comment fonctionnent les autotextes, je remarque qu'ils
sont stockés dans un fichier .BAU qui (une fois renommé en .zip) peut être
modifié manuellement au travers du fichier xml.
Le paramètre texte seulement est stocké dans le ficheir fichier
blocklist.xml via le paramètre : block-list:unformatted-text="true"
peut-être une piste pour te dépanner :wink:

Yves

Oui, je suis aussi dessus. blocklist.xml est un répertoire pointant vers les entrées réelles. Il me semble que l'identifiant abrégé et le Titre de l'auto-texte sont stockés là-dedans, et que le texte de remplacement est lui enregistré dans le répertoire dont le nom correspond au code abrégé.

J'ai pu vérifier que les strings de remplacement ne contiennent aucun <LF> ni indication de formatage, c'est du xml de bonne facture. Normalement, le système devrait donc appliquer le format par défaut, qui n'implique pas de retour à la ligne.

Comme j'ai maintenant accès à l'entier de la bibliothèque des auto-textes je vais comparer avec les exemples fournis qui, eux, ne font pas ce sacré <LF>. Manifestement, les exemples fournis sont bien plus touffus que mes misérables petites lignes toutes simples... J'ai même vu comment on fait pour accrocher une macro post-insertion. Mais là n'est pas le débat !

A part ça je sais charger les auto-textes par programme, mais l'interface de saisie manuelle ne semble pas/plus marcher, ni en version 6, ni en version 5.4.5... C'est moi qui vois les bleuets ? Pourtant j'en ai saisi un ou deux, il y a quelques jours, mais là je m'évertue, je persiste, je transpire, et je peste, rien. J'ai pu créer un nouveau groupe, lui donner un chemin et le fichier a été bien créé et mis en place. Mais ensuite, Niet, j'ai beau saisir tout bien comme il faut, le bouton <insert> reste inerte...

Enfin, à chaque jour suffit sa peine dit-on... Merci de ton aide, en tous cas !

Thierry

Bonjour,

Bonjour,

Peut-être que les autotextes téléchargés contiennent tous un retour
ligne.

Pour vérifier, il suffit d'un éditer un. (Outils -> Autotextes ou
Ctrl+F3).

Cordialement.

Bonjour à vous,

Voici qu'il m'a pris l'envie de charger un groupe d'auto-textes à
partir d'une table de base de données. Tout se passe parfaitement
bien, je retrouve mes petits avec leur clé d'accès, libellé court et
texte de remplacement, tout bien.

Par contre lorsque je les utilise, j'obtiens systématiquement un
retour à la ligne après le texte de remplacement. Quelqu'un a-t-il
une idée ?

Si tes AutoTextes sont des textes seuls (sans mise en forme), il y a effectivement un retour à la ligne qui est systématiquement ajouté.

C'est une bogue que j'ai toujours connue (avant 2006)

+1
Mais qui ne touche que les AutoTextes en texte seul. Les AutoTextes avec formatage fonctionnent correctement sans ajouter de retour à la ligne.

  et qui ne doit pas
être compliquée à corriger.

:smiley:
Cette bogue m’irritant aussi, j'ai cherché un peu. Mais je n'ai pas réussi à comprendre la différence de comportement entre les deux types d'AutoTexte. Si personne n'a réussi à résoudre ce bogue, c'est peut-être en partie parce qu'il s'agit d'une portion du code qui est très ancien et que personne ne sait exactement comment il fonctionne.

  Le saut de paragraphe est ajouté à tous les
autotextes en texte brut. Ceci interdit cette fonction pourtant pratique
pour éviter de polluer un document avec des surcharges locales si le
texte doit être préformaté.

Voir par exemple
https://bugs.documentfoundation.org/show_bug.cgi?id=53023, JBF signalant
en 2012 que cette bogue existait déjà dans la version Ooo 2.

C'est ce genre de truc qui rend le logiciel très vulnérable face à la
concurrence, car c'est insupportable.

Pour ma part, je trouve les AutoCorrections beaucoup + efficaces que les AutoTextes en texte seul. La procédure :
- Outils > AutoCorrection > Options d'AutoCorrection > onglet Remplacer
- indiquer dans la zone Remplacer le code déclenchant l'AutoCorrection
- indiquer dans la zone Par le texte devant remplacer le code
- cliquer sur Nouveau
- OK
Bien sûr il faut faire attention que le code ne soit pas un texte que l'on souhaite utiliser, car contrairement à l'AutoTexte qui nécessite l'appui de F3 pour se déclencher, l'AutoCorrection se déclenche dès que la chaîne de caractères est tapée (suivie d'une d'une espace, d'une ponctuation ou d'un retour à la ligne).

A+

Laurent BP

Grand merci pour ces précisions.
J'arrive aussi à la conclusion que l'auto correction serait une bonne approche.
Mais :
- L'autotext permet d'accrocher une macro après l'insertion du texte de remplacement. J'aime bien cette fonction. L'autocorrection ne permet pas cela (apparemment).
- Surtout, je charge mes AutoTextes par une macro, ils viennent d'une table de base de données de Base. Je n'ai pas encore trouvé la moindre indication qui me permette d'en faire autant pour les AutoCorrections.

Donc, si quelqu'un a la moindre idée qui permette d'alimenter le dictionnaire d'auto correction par une macro, je suis preneur, même la plus petite piste sera bienvenue.

En parallèle je vais tenter d'appliquer un format à mes textes, si je me dépatouille ça pourrait marcher.

Je continue à creuser, de toutes façons, et je rapporterai ici si je trouve quelque chose...

A+

Thierry

Bonsoir,

Oui, je suis aussi dessus. blocklist.xml est un répertoire pointant vers les entrées réelles. Il me semble que l'identifiant abrégé et le Titre de l'auto-texte sont stockés là-dedans, et que le texte de remplacement est lui enregistré dans le répertoire dont le nom correspond au code abrégé.

Tu trouveras dans le code source de LibreOffice les fichiers XML servant à construire les fichiers BAU :
https://opengrok.libreoffice.org/xref/core/extras/source/autotext/lang/fr/

J'ai pu vérifier que les strings de remplacement ne contiennent aucun <LF> ni indication de formatage, c'est du xml de bonne facture. Normalement, le système devrait donc appliquer le format par défaut, qui n'implique pas de retour à la ligne.

Cf. bogue 53023 indiqué par Jean-Yves
https://bugs.documentfoundation.org/show_bug.cgi?id=53023

Comme j'ai maintenant accès à l'entier de la bibliothèque des auto-textes je vais comparer avec les exemples fournis qui, eux, ne font pas ce sacré <LF>. Manifestement, les exemples fournis sont bien plus touffus que mes misérables petites lignes toutes simples... J'ai même vu comment on fait pour accrocher une macro post-insertion. Mais là n'est pas le débat !

Il faut créer des AutoTextes avec prise en compte du format (donc pas Texte seul) pour ne pas avoir de pb de LF. Tu te faire un exemple pour voir le code XML généré. Pour un AutoTexte en texte seul, si le LF ajouté est rédhibitoire, il faut passer au AutoCorrection (cf. mon précédent message).

A part ça je sais charger les auto-textes par programme, mais l'interface de saisie manuelle ne semble pas/plus marcher, ni en version 6, ni en version 5.4.5... C'est moi qui vois les bleuets ? Pourtant j'en ai saisi un ou deux, il y a quelques jours, mais là je m'évertue, je persiste, je transpire, et je peste, rien. J'ai pu créer un nouveau groupe, lui donner un chemin et le fichier a été bien créé et mis en place. Mais ensuite, Niet, j'ai beau saisir tout bien comme il faut, le bouton <insert> reste inerte...

Je ne reproduis pas, aussi bien avec les AutoTexte fournis qu'avec ceux que j'ai créés : Ctrl+F3, je navigue dans les bibliothèques, je sélectionne l'AutoTexte et le bouton Insérer est bien dispo et fonctionne comme attendu. Ma version sur Ubuntu :
Version: 5.4.5.1
Build ID: 79c9829dd5d8054ec39a82dc51cd9eff340dbee8
Threads CPU : 8; OS : Linux 4.13; UI Render : par défaut; VCL : gtk2;
Locale : fr-FR (fr_FR.UTF-8); Calc: group

A+

Laurent BP

Bonsoir,

Merci pour ces références. Depuis ce message j’ai progressé, et je suis aussi arrivé au souci de non-formatage comme facteur déclenchant.

En parallèle le mécanisme manuel fonctionne à nouveau, sans que je sache vraiment pourquoi… Peut-être que je n’avais pas sélectionné le texte de remplacement, je ne vois que cela. Ce qui n’était pas très malin de ma part, soit dit en passant.

Ce qui me retient de passer franchement à l’AutoCorrection tient en deux points :
Avec l’AutoTexte, je peux déclencher une macro après insertion et ça peut m’arranger
Je veux absolument que ces textes, AutoTextes ou dictionnaire d'AutoCorrection, soient chargés automatiquement (macro), pas manuellement. Et pour l’AutoCorrection, je ne sais simplement pas où trouver par où commencer. Par contre ça marche a minima pour les AutoTextes, et je pense pouvoir comprendre l’entièreté de ce que je dois faire pour le faire tourner.

Sur le fond, je ne suis pas sûr que le comportement que j’observe soit vraiment un bug, c’est peut-être considéré comme une feature, ce qui expliquerait que rien n’ait été entrepris pour le corriger, apparement.

Donc, suite au prochain numéro, de toutes façons je mettrai ici ce que je découvrirai, si j’arrive à percer les mystères de ces mécanismes…

Merci pour ton appui,

A+,

Thierry

Autre caractéristique importante, l'insertion des autotextes active les
champs (je ne vois pas comment faire avec l'autocorrection). Pour se
confectionner une bible de paragraphes courants avec automatisation, par
exemple, accord en genre et en nombre ou insertion de variables, je ne
vois pas comment faire avec l'autocorrection, surtout quand l'autotexte
peut contenir plusieurs pages, pour certains contrats, par exemple.

Dans beaucoup d'activités : commerciale, juridiques, techniques, une
bible de paragraphes courants aide grandement à la confection de
documents personnalisés cohérents, en allégeant la charge mentale des
rédacteurs.

Selon les situations, il est préférable que le contenu soit formaté ou
pas. Avec LibreOffice, on n'a pas le choix !

Librement.

Bonjour à vous,

Un petit état des lieux :

  * Je veux utiliser les autotextes, précisément pour des raisons
    analogues à celles de Jean-Yves
  * Je ne charge pas les autotextes manuellement, mais à l'aide d'une
    macro qui parcourt une table Base. De ce côté-là tout va bien aussi
    longtemps que je me borne au texte simple.
  * Je peux parcourir les fichiers .bau pour les explorer.
  * Je viens de découvrir l'utilisation de SetPropretyValue, comme quoi
    il n'est jamais trop tard pour apprendre !

En résumé, je vois parfaitement la différence entre deux auto-textes saisis manuellement, avec ou sans formatage ; mais je dois maintenant comprendre quelle propriété déclenche la génération des fichiers .xml complémentaires de Style notamment, qui évitent le fichu retour à la ligne.

Donc, si vous avez une suggestion je suis toujours preneur, sinon je vous tiendrai informés de mes progrès.

Merci de votre patience, à bientôt j'espère (signe de succès !),

Thierry