[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Patrick



Le 13/05/2022 à 13:39, Bernard Siaud alias Troumad a écrit :

Merci ça marche !
Une question : pour la taille de 20 au tableau elements ?


Très bonne question !
En fait je ne sais plus, je ne me rappelle pas pourquoi. Il y a 
maintenant un petit moment que je l'ai fait !



Voici mon code et est-ce que je peux le donner ici : 
https://forum.openoffice.org/fr/forum/viewtopic.php?p=360542#p360542



Pourquoi pas ? c'est une bonne idée.



Sub choix

    dim i,j,taille,drap as integer
    dim mode as Variant
    dim PysField as object
    dim nomType as string
    dim newType as string
    dim elements(20)
    dim document   as object
    dim dispatcher as object

    rem mettre la liste des types souhaités
    mode = Array("impression", "complet")
    drap=0
    taille=Ubound(mode)

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    rem Chercher la variable "affichage"
    for i=0 to ubound(elements)
    if (instr(elements(i),"affichage")>0) then
    valeur= 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

    for j= 0 to taille
    if mode(j) = valeur then
        if jThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (j+1)

     endif
    endif

    next j

    if drap=0 then rem prendre en compte le plus grand et 
les cas non prévus
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (0)

    endif
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array()) REM mettre à jour l'affichage



    i=ubound(elements)
    endif
    next i

End Sub



--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Bernard Siaud alias Troumad

Merci ça marche !
Une question : pour la taille de 20 au tableau elements ?
Voici mon code et est-ce que je peux le donner ici : 
https://forum.openoffice.org/fr/forum/viewtopic.php?p=360542#p360542



Sub choix

    dim i,j,taille,drap as integer
    dim mode as Variant
    dim PysField as object
    dim nomType as string
    dim newType as string
    dim elements(20)
    dim document   as object
    dim dispatcher as object

    rem mettre la liste des types souhaités
    mode = Array("impression", "complet")
    drap=0
    taille=Ubound(mode)

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    rem Chercher la variable "affichage"
    for i=0 to ubound(elements)
    if (instr(elements(i),"affichage")>0) then
    valeur= 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

    for j= 0 to taille
    if mode(j) = valeur then
        if jThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (j+1)

     endif
    endif

    next j

    if drap=0 then rem prendre en compte le plus grand et 
les cas non prévus
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (0)

    endif
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array()) REM mettre à jour l'affichage



    i=ubound(elements)
    endif
    next i

End Sub

--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD&D maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.libreoffice.org


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Patrick

Bonjour Bernard,

voici la macro que j'utilise pour changer mon type de document "Sujet" 
ou "Correction"

Ma variable s'appelle : "Type"

sub ToggleType()
dim nomType as string
dim newType as string
dim elements(20)
dim document   as object
dim dispatcher as object

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    ' Chercher la variable "Type"
    for i=0 to ubound(elements)
    if (instr(elements(i),"Type")>0) then
            ' Récupérer la valeur du Type
            nomType = 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

            if (nomType = "Correction")then
                newType = "Sujet"
            else
                newType = "Correction"
            endif
                ' Changer la valeur de la variable
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= newType
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array())

    endif
    next i
End sub


Elle est très certainement perfectible.
Je n'ai pas encore l'habitude des macros de LO. j'étais plutôt expert 
dans VBA (il y a des années)


Bonne journée
Patrick


Le 13/05/2022 à 11:16, Bernard Siaud alias Troumad a écrit :

Bonjour

Le 12/05/2022 à 19:44, Patrick a écrit :
A priori oui, je n'ai pas fait de document maître, mais j'utilise les 
sections "masquées sous condition" pour faire comme tu le dis, une 
section contenant la correction.
Ma condition est basée sur une variable qui peut avoir deux valeurs 
{Sujet, Correction}
J'ai une macro associée à un bouton dans ma barre d'outils qui change 
la valeur (Sujet → Correction et vice-versa)
Je n'arrive pas à trouver comment repérer la variable dans une macro. 
Je souhaite la modifier, mais, je ne sais pas la trouver.


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Bernard Siaud alias Troumad

Bonjour

Le 12/05/2022 à 19:44, Patrick a écrit :
A priori oui, je n'ai pas fait de document maître, mais j'utilise les 
sections "masquées sous condition" pour faire comme tu le dis, une 
section contenant la correction.
Ma condition est basée sur une variable qui peut avoir deux valeurs 
{Sujet, Correction}
J'ai une macro associée à un bouton dans ma barre d'outils qui change 
la valeur (Sujet → Correction et vice-versa)
Je n'arrive pas à trouver comment repérer la variable dans une macro. Je 
souhaite la modifier, mais, je ne sais pas la trouver.

--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD&D maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.libreoffice.org


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-12 Par sujet Bernard Siaud alias Troumad

Bonsoir

Avec des liens vers les aides pour arriver à faire tout ce qui est dit.

Le 12/05/2022 à 19:44, Patrick a écrit :

La section est masquée si la variable = "Sujet", et est visible sinon.


Voir : https://help.libreoffice.org/4.4/Writer/Section/fr#Masquer

Cette condition à écrire est sous la forme :

variable EQ "Sujet"



J'ai donc essayé de faire un document maître avec deux fichiers pour 
tester.
Ça fonctionne bien, quand je change la valeur de la variable en 
"Sujet" les sections sont invisibles, et si je mets "Correction" elles 
sont visibles.

Mettre une variable : https://wiki.documentfoundation.org/Faq/Writer/045/fr
Le bouton macro n'est pas visible dans le document maître, mais il 
doit bien y avoir moyen de l'y mettre. ;-)


Pour ma part, ce sont deux documents différents. J'affiche la variable 
directement sur la première page :


"Document complet" ou "Document impression".



Donc pour répondre à ta question :
OUI il est possible de faire des sections dans chaque document, que tu 
regroupes dans un document maître, et que ces sections soient visibles 
ou non, en fonction de la valeur d'une variable.

C'est bon !
J'espère avoir pu apporter mes deux cents (comme disent les 
anglo-saxon !)

Et même plus !

Bonne soirée

Elle commence bien déjà !

Patrick


Merci

--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD&D maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.libreoffice.org


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy