Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum 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 !
17 messages
• Page 1 sur 1
masirkkisoi
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine
J'explique mon (nième) soucis, j'aimerais que quand j'ouvre un formulaire via un bouton (code fonctionnel) le premier formulaire se ferme ainsi la navigation sera plus simple pour l'utilisateur.
J'ai essayé de bidouiller avec les aides qu'il y a sur ce suprême de code :http://user.services.openoffice.org/fr/ ... =15&t=6355 mais je n'ai réussi à rien.
Quelqu'un a t'il une idée ?
Voici le code de ma macro qui permet d'ouvrir un formulaire :
REM ***** Ouvrir un formulaire et ferme l'ancien *****
Sub OuvrirFormulaire(evt As Object)
Dim dbDoc As Object, lesFormulR As Object, docFormulaire2 As Object
Dim bouton As Object, nomFormulaire As String
ConnecterSource() 'connection a la BDD
bouton = evt.Source
'on récupère le nom du formulaire à ouvrir qui se trouve dans le champ complément d'information du bouton
nomFormulaire = bouton.Model.tag
dbDoc = ThisDatabaseDocument
lesFormulR = dbDoc.FormDocuments
If lesFormulR.hasByName(nomFormulaire) Then
docFormulaire2 = lesFormulR.getByName(nomFormulaire)
docFormulaire2.open
Else
MsgBox ("Formulaire inconnu : " & nomFormulaire, 16)
End If
DeconnecterSource() ' Deconnection de la BDD
End Sub
'*****************************************************************************************************
Dernière modification par masirkkisoi le 20 janv. 2012 12:53, modifié 1 fois.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)
OpenOffice 3.2 Windows 2003 (configuration par obligation)
Sub OuvertureFermeture( oEvent as variant )
ThisDatabaseDocument.FormDocuments.getByName( "nom_du_formulaire_à_ouvrir" ).open
ThisDatabaseDocument.FormDocuments.getByName("nom_du_formulaire_à_fermer").close
end sub
tirer du suprême de code [Base]ouverture et fermeture d'un formulaire
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Oui mais est-ce possible de généraliser la fermeture à n'importe quel formulaire ? Comme c'est le cas pour mon ouverture où il y a 1 macro pour tous les Forms.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)
OpenOffice 3.2 Windows 2003 (configuration par obligation)
je comprends mais comment récupérer le nom du formulaire courrent ? (celui où se trouve le bouton pour ouvrir le 2eme formulaire) J'ai lancé une recherche avec les mots clés : "récupérer nom formulaire" mais elle n'a pas aboutie.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)
OpenOffice 3.2 Windows 2003 (configuration par obligation)
REM ****** Ouverture et fermeture du formulaire "NouveauCompteMandatement") *****
Sub OuvertureFermetureNouveauCompteMandatement( oEvent as variant )
ThisDatabaseDocument.FormDocuments.getByName( "NouveauCompteMandatement" ).open
ThisDatabaseDocument.FormDocuments.getByName("NouveauCompteMandatement").close
end sub
REM ****** Ouverture et fermeture du formulaire "NouveauCompteOrdonnateur") *****
Sub OuvertureFermetureNouveauCompteOrdonnateur( oEvent as variant )
ThisDatabaseDocument.FormDocuments.getByName( "NouveauCompteOrdonnateur" ).open
ThisDatabaseDocument.FormDocuments.getByName("NouveauCompteOrdonnateur").close
end sub
etc ...
et tu affectes la bonne Macro au bouton à cliquer
Dernière modification par jeanmimi le 20 janv. 2012 08:41, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Ok donc si je comprend bien il faut que je fasse une macro "fermeture" pour chaque formulaire que je veux fermer ? Je voulais juste savoir s'il était possible d'en faire qu'une seule pour tous les formuliares.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)
OpenOffice 3.2 Windows 2003 (configuration par obligation)
J'aimerais que le formulaire se ferme quand le 2eme s'ouvre et non un bouton fermer
Ça doit être possible par Outils > Personnaliser et choisir l'Événement idoine, mais question : comment le formulaire qui s'ouvre va connaitre le nom de celui qui doit être fermé ?
Un clic sur un bouton te semble trop compliqué pour les utilisateurs ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Ce n'est pas le formulaire qui s'ouvre qui est concerné mais celui qui se ferme, non ? Car le bouton qui permet d'ouvrir le 2eme formulaire est sur celui qui doit se fermer.
jeanmimi a écrit :
Un clic sur un bouton te semble trop compliqué pour les utilisateurs ?
Ce n'est pas ça mais je trouve plus facile de naviguer quand la fenêtre se ferme au moment où l'on ouvre une nouvelle, comme par exemple quand tu ouvres "Poste de Travail" sur ton bureau et que tu clique sur C, la fenêtre Poste de Travail est remplacée par la fenêtre que tu viens d'ouvrir.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)
OpenOffice 3.2 Windows 2003 (configuration par obligation)
Bonjour,
Pour fermer un formulaire lorsque l'on clique sur un bouton, il existe une solution sans macro.
Dans les propriétés du bouton :
- Champ Action : choisir "ouverture d'un document ou d'une page web"
- Champ URL : .uno:CloseWin
Certes, mais ici, la demande est la fermeture automatique d'un formulaire ouvert lorsqu'un deuxième formulaire s'ouvre.
Donc, pas de bouton, mais j'aime bien ta solution sans Macro
Dernière modification par jeanmimi le 20 janv. 2012 11:46, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Sub OuvrirFormulaire(evt As Object) '*** assignée au déclenchement du bouton
Dim lesFormulaires As Object, leFormulaire As Object
Dim bouton As Object, appel As String, courant as String
bouton = evt.Source
appel = split(bouton.Model.tag,";",2)(0)
if instr(1,bouton.Model.tag,";") then courant = split(bouton.Model.tag,";",2)(1)
lesFormulaires = ThisDatabaseDocument.FormDocuments
if lesFormulaires.hasByName(appel) then
leFormulaire = lesFormulaires.getByName(appel)
leFormulaire.open
else
MsgBox("Formulaire inconnu : " & appel, 16)
exit sub
end if
GererBarresOutils(appel)
if thisDatabaseDocument.FormDocuments.hasByName(courant) then FermerFormulaire(courant)
End Sub
Sub FermerFormulaire(nomFormulaire) '*** appelée par OuvrirFormulaire
thisDataBaseDocument.FormDocuments.getByName(nomFormulaire).close
End sub
en renseignant le complément d'information du bouton avec le nom du formulaire à ouvrir, celui du formulaire à fermer séparer par un point virgule;
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
masirkkisoi a écrit :quand j'ouvre un formulaire via un bouton
je parlais de ce bouton.
ce que j'ai compris de la demande:
on a un Bouton de commande sur un formulaire qui déclenche l'ouverture d'un second formulaire.
on voudrait que ce bouton déclenche effectivement l'ouverture du second formulaire et en plus ferme le premier.
mais j'ai peut être mal compris
Ajout : un petit exemple Pour illustrer mon propos.
OvertureFermeture.odb
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Piaf le 20 janv. 2012 13:14, modifié 3 fois.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64