[Résolu][Base] Saisie de champ en majuscules

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 !
niuxe
Fraîchement OOthentifié
Messages : 3
Inscription : 29 juil. 2019 21:08

[Résolu][Base] Saisie de champ en majuscules

Message par niuxe »

Bonjour tout le monde,

Je suis en train de me créer une petite base de données via base. Je rencontre quelques soucis. Là pour un champ, j'aimerai que la saisie soit en majuscule. Lorsque j'édite le formulaire, que j'édite le champ en question (panneau contrôle), je vais dans l'onglet "événements" et je sélectionne "à la perte du focus", je vais chercher une macro :

[img]h**ps://image.noelshack.com/minis/2019/31/1/1564435905-capture-d-ecran-de-2019-07-29-23-31-12.png[/img].
La modération vous a écrit: Pas d'image hébergée en dehors du forum : veuillez utiliser notre service de PJ.

Je la sélectionne et je teste. Mais voilà, elle n'a pas l'aire de fonctionner.

J'ai cherché sur le forum et je suis tombé sur ce sujet : https://forum.openoffice.org/fr/forum/v ... le#p252579

Le souci étant que je ne sais pas comment installer cette macro. Aussi, je pense devoir en créer pour moi (un peu plus tard). J'ai vu que les langages acceptées sont entres autres le Javascript et le Python. Ça tombe bien, je connais assez bien ces langages.

Si vous pouvez me donner un petit coup de main ce serait bien sympa.

Bonne journée.
Opensuse LEAP 15.0 / Libreoffice 6.1.5.2
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: insérer une macro de manière permanente

Message par Bidouille »

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://forum.openoffice.org/fr/forum/su ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Saisie de champ en majuscules

Message par jeanmimi »

Bonjour,
niuxe a écrit :Je la sélectionne et je teste. Mais voilà, elle n'a pas l'aire de fonctionner.
Dans le sujet dont tu donnes le lien, la Macro est activée par "Avant actualisation" et non pas par "A la perte du focus".
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Base] Saisie de champ en majuscules

Message par Hubert Lambert »

Bonjour,

Ci-joint un petit exemple.
Les macros python, associées à l'événement "Avant actualisation" :

Code : Tout sélectionner

def nom_en_maj(event):
    source = event.Source
    source.Text = source.CurrentValue.upper()

def prenom_en_cap(event):
    source = event.Source
    source.Text = source.CurrentValue.title() 
Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
plonge
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 297
Inscription : 09 sept. 2010 19:06

Re: [Base] Saisie de champ en majuscules

Message par plonge »

Bonjour,
Pour passer le texte frappé dans un champ en majuscule quelque soit son écriture.

Code : Tout sélectionner

Sub NomEnMaj	'passe le nom en majuscule quelque soit son écriture
Dim Ctl1 As String
Dim monCtrl1 As Object, oForm As Object
	maConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
	Statement = maConnexion.createStatement()	
	oForm = ThisComponent.DrawPage.Forms.getByName("Mon_Formulaire")
	monCtrl1 = oForm.getByName("Mon_Champ")
	Ctl1 = monCtrl1.Text
	Ctl1 = Ucase(Ctl1)
	monCtrl1.Text = Ctl1
	monCtrl1.commit
End Sub
A affecter à l'événement "Modifié" du champ concerné.
Cordialement
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341