[Résolu][Base] Fermer un formulaire automatiquement

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 !

[Résolu][Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 19 Jan 2012 11:31

Bonjour à tous,

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/forum/viewtopic.php?f=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 :

Code : Tout sélectionner   AgrandirRéduire
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 édition par masirkkisoi le 20 Jan 2012 13:53, édité 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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar Piaf » 19 Jan 2012 14:20

re Bonjour

ça devrait le faire

Code : Tout sélectionner   AgrandirRéduire
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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 19 Jan 2012 14:25

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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar Dude » 19 Jan 2012 17:48

Salut,

masirkkisoi a écrit:Oui mais est-ce possible de généraliser la fermeture à n'importe quel formulaire ?

Et bien, tu passes le nom de ton formulaire en paramètre. Où est le problème ?
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20733
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 20 Jan 2012 08:55

Salut Dude,

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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar jeanmimi » 20 Jan 2012 09:26

Le nom du formulaire courant, ou pas, est celui sous lequel tu l'as enregistré dans ta base.
En reprenant le code
Code : Tout sélectionner   AgrandirRéduire
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 édition par jeanmimi le 20 Jan 2012 09:41, édité 1 fois.
LibreOffice Version : Version: 6.2.4.2 (x64) (1 juin 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14882
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 20 Jan 2012 09:31

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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar jeanmimi » 20 Jan 2012 09:44

Oui, pour illustrer, j'ai inséré un bouton dans les 2 formulaires cités ci-dessus pour fermer le formulaire.
Pièces jointes
refacturationSIH-4.odb
(305.08 Kio) Téléchargé 136 fois
LibreOffice Version : Version: 6.2.4.2 (x64) (1 juin 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14882
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 20 Jan 2012 09:51

Merci de te pencher sur mon problème mais ce n'est pas ce que je veux.

J'aimerais que le formulaire se ferme quand le 2eme s'ouvre et non un bouton fermer.

Désolée d'être exigente :? c'est possible que je m'exprime mal aussi... :(
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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar jeanmimi » 20 Jan 2012 10:22

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 : Version: 6.2.4.2 (x64) (1 juin 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14882
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 20 Jan 2012 10:38

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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Messagepar pancho » 20 Jan 2012 12:06

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
LibreOffice v4.2.7 , Linux Mint 17 , PostgreSQL
pancho
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 13 Jan 2012 11:55

Re: [Base] Fermer un formulaire automatiquement

Messagepar jeanmimi » 20 Jan 2012 12:26

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 édition par jeanmimi le 20 Jan 2012 12:46, édité 1 fois.
LibreOffice Version : Version: 6.2.4.2 (x64) (1 juin 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14882
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Messagepar Piaf » 20 Jan 2012 12:32

Bonjour

peut être une solution donnée par jerome bourgeois dans http://user.services.openoffice.org/fr/forum/viewtopic.php?f=26&t=18473

Code : Tout sélectionner   AgrandirRéduire
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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Messagepar jeanmimi » 20 Jan 2012 12:42

du bouton
Ici, la demande est sans bouton
LibreOffice Version : Version: 6.2.4.2 (x64) (1 juin 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14882
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Messagepar Piaf » 20 Jan 2012 13:03

bonjour
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
(19.85 Kio) Téléchargé 326 fois
 

A+
Dernière édition par Piaf le 20 Jan 2012 14:14, édité 3 fois.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Messagepar masirkkisoi » 20 Jan 2012 13:38

Non Piaf tu as tout à fait compris :wink: Encore mercis pour votre aide les gens je ne sais pas se que je ferais sans vous !

Je teste et je vous dis quoi. :D

 Ajout : Je viens de tester et je dis Amen ! :super: Merci beaucoup ça marche nikel chrome ! 
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)
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 10 Jan 2012 16:20
Localisation : 2eme étoile à gauche aprés Tatooine


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)