[Résolu][Writer] Affichage section selon case à cocher

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

[Résolu][Writer] Affichage section selon case à cocher

Message par dyscus »

Bonjour à toutes et à tous,

Je souhaiterai afficher ou masquer du texte avec une case à cocher.

J'ai une macro qui fonctionne parfaitement avec une liste déroulante, mais je souhaiterai désormais que ce résultat obtenu soit adapté avec une case a cocher en lieu et place de la liste déroulante.

Le fait de mettre le texte_non_apparent avec les deux sections invisible m'arrange vraiment pour la mise en en page.

Je vous adresse un fichier exemple ainsi que la macro ci-dessous à toutes fins utiles.

Code : Tout sélectionner

Sub Afficher(oEv as Object)
Dim oDoc as Object, lesSections as Object, oForm as Object
	oDoc = thisComponent
	oForm = oDoc.DrawPage.Forms.GetByName("Formulaire")
	lesSections = oDoc.TextSections
		Select Case oEv.Source.Model.CurrentValue
			Case "texte_apparent"
				lesSections.getByName("texte_apparent").IsVisible = True
				lesSections.getByName("texte_non_apparent").IsVisible = False

			Case "texte_non_apparent"
				lesSections.getByName("texte_apparent").IsVisible = False
				lesSections.getByName("texte_non_apparent").IsVisible = False
		
		End Select							
End Sub
J'ai effectué quelques recherches sur le forum sans trouver précisément le résultat escompté.

En vous remerciant de toute l'aide apporté.

Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par dyscus le 13 juin 2018 11:03, modifié 1 fois.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Affichage section selon case à cocher

Message par Dude »

dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

Re: [Writer] Affichage section selon case à cocher

Message par dyscus »

Je viens de regarder ce sujet avec attention.

Néanmoins, il ne correspond pas à la demande, ce dernier identifie le nombre de case a cocher et restitue le résultat dans une fenêtre alerte.

En ce qui concerne ma problématique, j'ai déjà effectué la création des 2 sections (texte_apparent et texte_non_apparentet) je cherche juste à remplacer la liste déroulante par une case a cocher.

Merci tout de même.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Affichage section selon case à cocher

Message par Dude »

L'exemple montre comment récupérer la valeur d'une case à cocher.
Le contrôle est de type ControlCheckBoxModel.
L'utilisation de XRay t'aurait montré qu'il a une propriété State qui renvoie un booléen.

Pour le reste, il faudrait peut être faire un minimum d'effort et fournir un document adapté.
Celui que tu mets en ligne est avec une liste déroulante.
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

Re: [Writer] Affichage section selon case à cocher

Message par dyscus »

Malheureusement, cela ne résout pas ma problématique, je n'ai pas les capacités de programmation et d'analyse pour adapter le contrôle case a cocher au lieu de la liste déroulante dans la macro.

J'ai fourni ce fichier en ligne confectionné à tatillon par mes soins, afin de démontrer le résultat attendu.

Cela ne m'aurait pas coûté beaucoup plus cher d'insérer une simple case a cocher a la place de la liste déroulante mais ne m'aurait pas permis au final de vous démontrer le résulta final attendu.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Affichage section selon case à cocher

Message par Dude »

dyscus a écrit :Cela ne m'aurait pas coûté beaucoup plus cher d'insérer une simple case a cocher a la place de la liste déroulante
Et donc, tu penses que c'est à moi de faire ce document ? :evil:
dyscus a écrit :je n'ai pas les capacités de programmation et d'analyse pour adapter le contrôle case a cocher
Il me semble t'avoir donné tous les éléments pour faire cette adaptation.
dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

Re: [Writer] Affichage section selon case à cocher

Message par dyscus »

Je pense que nous avons un problème de communication tous les deux.

Je n'ai pas besoin que l'on me fasse les choses, je ne suis pas un assisté de la vie...

J'ai trouvé une solution que je vais adapter à ma problématique.

Je la posterai par la suite en espérant vivement que cela serve à quelqu'un d'autre dans le futur sans passer par tout un patacaisse ;)

Bonne journée.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits
dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

Re: [Writer] Affichage section selon case à cocher

Message par dyscus »

J'ai à tatillon trouvé la solution que je joints sur le post.

Elle est sans doute perfectible dans le code de la macro, néanmoins elle aura le mérite de fonctionner en espérant qu'elle serve un jour.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Résolu][Writer] Affichage section selon case à cocher

Message par Piaf »

Bonjour
Malgré le Résolu,

Code : Tout sélectionner

Sub Afficher(oEv as Object)
Dim oDoc as Object, lesSections as Object, maSection as Object
	oDoc = thisComponent
	lesSections = oDoc.TextSections
	maSection = lesSections.getByName("texte_apparent")
	If oEv.Source.Model.state = 0 Then
		maSection.IsVisible = True
	Else
		maSection.IsVisible = False
	End If
	ThisComponent.CurrentController.Frame.ContainerWindow.setFocus
End Sub 
me parait suffisant et plus simple :)
La dernière ligne est nécessaire sous ma version de LibO pour un affichage correct du contrôle, elle n'est pas nécessaire sous AOO.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
dyscus
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 11 juin 2018 12:33

Re: [Résolu][Writer] Affichage section selon case à cocher

Message par dyscus »

Merci bien pour ce complément.

Bonne soirée.
Version LibreOffice : Version: 4.1.3.2
Version OS : WIN 7 pro 32 bits