[Résolu][Base] Rapport ouvert avec une liste de formulaire

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 !
mimi6505
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 18 avr. 2012 09:00

[Résolu][Base] Rapport ouvert avec une liste de formulaire

Message par mimi6505 »

Bonjour,

Travaillant sur ma base, je souhaiterais ouvrir un rapport « ListingFonction » à partir d'une liste déroulante sur mon formulaire « Menu_General ».

Malheureusement, je bute sur une « Erreur d'exécution Basic : Type : com.un.star.conbtainer NoSuchElementExcept » sur cette ligne :

Code : Tout sélectionner

ctrlListeChoix = oForm.getByName("ListeRap")
J'ai beau tout vérifier, le nom de ma liste déroulante est bon.

Ce que je ne comprends pas :marto: , c'est qu'en créant un formulaire test « TestFormulaireDeRecherche » avec uniquement une zone de liste et un bouton, toujours pour ouvrir le même rapport, la procédure passe cette ligne mais bute sur une autre « Erreur d'exécution Basic : Propriété ou méthode non-trouvée : reports» et elle s'arrête sur cette ligne :

Code : Tout sélectionner

.Filter="""Option"" ='" & ChoixOption & "'"
Sur cette ligne je ne suis pas certain de ma méthode. :oops:

Désolé si je piétine, mais j'avance tout doucement dans l'évolution des macros.

Je vous laisse ma base ci-dessous.

Pourriez-vous me dire où se situe mon problème ?

D'avance, merci. :super:

mimi6505

Openoffice.org 3.2.1
Windows XP Professionnel
Pièces jointes
CANDIDATURES.odb
(466.86 Kio) Téléchargé 193 fois
Dernière modification par mimi6505 le 30 avr. 2012 10:31, modifié 2 fois.
Apache OpenOffice 3.4 sur Windows XP Professionnel
JPL
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 17 mars 2012 11:16
Contact :

Re: [Base] Ouvrir un rapport avec un liste dans un formulair

Message par JPL »

Bonjour,

pour progresser plus rapidement dans l'écriture de macros, je vous invite à découvrir l'extension Access2Base.

Après installation, il vous suffira d'écrire l'instruction

Code : Tout sélectionner

OpenReport("nom-du-rapport")
pour obtenir l'ouverture du rapport désigné. Il est même superflu de respecter la casse.

La documentation de cette instruction est ici, accompagnée de beaucoup d'autres.

En espérant que ceci pourra vous aider.
Kubuntu 22.04 / LibO 7.6
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO) - Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par Piaf »

Bonjour

teste cette macro sur le bouton de TestFormulaireDeRecherche

Code : Tout sélectionner

Sub Rapport(oEv as Object)
Dim oForm as Object, ctrlListeChoix as Object, maConnexion as Object, oRapport as Object
Dim ChoixOption as string, strSQl as String
 	oForm = oEv.Source.Model.Parent	
	ctrlListeChoix = oForm.getByName("ListeRap")
	If ctrlListechoix.currentvalue<>"" then	
		ChoixOption = ctrlListeChoix.currentvalue
	Else
		MsgBox("Vous devez sélectionner une entrée dans la liste",64)
		Exit sub
	End If
       strSQL = "SELECT ""Postulant"".*, ""Options"".""Option"", ""TableTitre"".""Titre"", ""Options"".""ID"", ""TableTitre"".""IdTitre"", ""PostulantsOptions"".""ID_Postulant"" FROM ""PostulantsOptions"", ""Postulant"", ""Options"", ""TableTitre"" WHERE ""PostulantsOptions"".""ID_Postulant"" = ""Postulant"".""ID"" AND ""PostulantsOptions"".""ID_Option"" = ""Options"".""ID"" AND ""PostulantsOptions"".""ID_titres"" = ""TableTitre"".""IdTitre"" AND ""Options"".""Option"" ='" &  ChoixOption &"'"'
       maConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
       maConnexion.queries.getByName("RequêtePourRapport").Command = strSQL
       oRapport = ThisDataBaseDocument.ReportDocuments.getByName("ListingFonction").open()
    End Sub
Un peu de mal à tester, je n'ai pas Windows et tu fais appel à une dll dans ton code.

Pour JPL : Base a ces propres spécificités, et je ne suis pas certain que vouloir en faire un clone d'Access aide à les comprendre.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
mimi6505
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 18 avr. 2012 09:00

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par mimi6505 »

Re-bonjour,

Merci à JPL car je sais que cela vient d'une bonne intention. :super:

A Piaf, merci, ce code fonctionne très bien sur le bouton du formulaire de test, MAIS, j'ai essayé de le placer sur le bouton du formulaire "Menu_General", malheureusement, il bute toujours sur la même ligne, à savoir :

Code : Tout sélectionner

ctrlListeChoix = oForm.getByName("ListeRap")
Je n'en vois pas la raison, alors qu'à part le nom et la mise en page du formulaire, les 2 zones de liste sont identiques.

Mais ton code fonctionne très bien.

Merci
Apache OpenOffice 3.4 sur Windows XP Professionnel
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par Dude »

Salut,
Piaf a écrit :Un peu de mal à tester, je n'ai pas Windows et tu fais appel à une dll dans ton code.
+1 Ton fichier est inexploitable en l'état sur plateforme Linux ou MacOS.

Si tu as à maximiser une fenêtre, tu poses du code Basic : http://user.services.openoffice.org/fr/ ... =maximiser
mimi6505 a écrit :Je n'en vois pas la raison, alors qu'à part le nom et la mise en page du formulaire
Regarde le navigateur de formulaire, ListeRap est dans un formulaire nommé "Formulaire" et non dans "MenuGeneral".
Tu devrais utiliser XRay pour voir où tu te trouves et appeler les bonnes méthode et propriété de tes objets.
JPL
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 17 mars 2012 11:16
Contact :

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par JPL »

A propos de:
Dude a écrit:
Ton fichier est inexploitable en l'état sur plateforme Linux ou MacOS.
Si tu as à maximiser une fenêtre, tu poses du code Basic : viewtopic.php?f=8&t=2836&hilit=maximiser
depuis OpenOffice 3.3 les objects de type com.sun.star.comp.framework.Frame.ContainerWindow ont les propriétés IsMaximized et IsMinimized qui, quand mises à la valeur TRUE, resp. maximisent et minimisent la fenêtre correspondante.
En outre ceci fonctionne également sous Windows + OO et sous Linux avec LibreOffice. Je n'ai pas essayé avec MacOS.

Cordialement.
Kubuntu 22.04 / LibO 7.6
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO) - Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par Piaf »

Bonsoir
Dude a écrit :Ton fichier est inexploitable en l'état sur plateforme Linux ou MacOS.
il faut donc se donner la peine d'aller voir le fichier en question, dans lequel on peut voir

Code : Tout sélectionner

Declare Function ShowWindow Lib "user32" _
    (ByVal lHwnd As Long, _
    ByVal lCmdShow As Long) As Boolean
je ne pense pas que la librairie user32 soit implémentée dans Linux (et j'ose espérérer qu'elle ne le sera jamais) ni dans MacOS
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
mimi6505
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 18 avr. 2012 09:00

Re: [Base] Rapport ouvert avec une liste de formulaire

Message par mimi6505 »

Bonjour,

Merci à vous trois, je vais prendre les conseils de chacun et essayer d'évoluer en fonction de ceux-ci. :P

Bonne journée.

mimi6505 :super:
Apache OpenOffice 3.4 sur Windows XP Professionnel
Répondre