Bonjour à toutes et tous,
Ce sujet fait suite à un sujet posté dans la section base > viewtopic.php?t=69357.
Après avoir fait tester le système qui m'avait été proposé à la personne qui utilisera principalement la base, elle me demande des évolutions. Je post ici car je ne pense pas qu'il soit possible de faire ce que je souhaite sans macro.
Actuellement, quand je clic sur le bouton "Liste des évènements" sur le formulaire "Accueil", un "controle" (ou fenêtre, je ne sais pas comment cela s'appelle) s'ouvre pour nous demander les noms et prénoms de l'agent dont nous recherchons les évènements.
Malheureusement, quand je clic sur annuler, un message d'erreur s'affiche et la fenêtre "basic" s'ouvre en sélectionnant la ligne concernée (variable d'objet non définie). De même, quand je clic sur "OK" sans avoir mis d'information dans les valeurs, une page blanche s'ouvre sans information. Je suppose que c'est tout à fait normal, mais j'aurais besoin de faire évoluer cela.
J'aurais souhaité modifier un peu le fonctionnement pour obtenir un "useform" (il me semble que c'est le nom) qui me permette de sélectionner l'agent dans une liste déroulante, ou alors de sélectionner tous les agents sans avoir de filtre et qui ne m'ouvre pas "basic" quand on annule car j'ai cliquer au mauvais endroit (par exemple).
En résumé, quand je clic sur "Liste des évènements", une fenêtre s'ouvre pour me demander de choisir l'agent dans une liste (mise à jour avec la table agents) ou de cocher une case (par exemple) qui griserai la liste déroulante pour sélectionner tous les agents. Et un bouton ok pour visualiser le rapport.
Le rapport concerné est "Ra_evenements" lui-même basé sur la requête R_evenements.
Je vous joint la base et une image du message d'erreur.
Merci d'avance pour vos retours.
[Résolu] [Base] Ouvrir un rapport filtré sur le résultat souhaité d'un formulaire
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 !

Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Membre hOOnoraire
- Messages : 106
- Inscription : 11 sept. 2024 15:31
- Localisation : Pas loin du Canada
[Résolu] [Base] Ouvrir un rapport filtré sur le résultat souhaité d'un formulaire
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Seb1258 le 27 nov. 2024 11:49, modifié 1 fois.
Libre office 7.3.7.2 < Obligation de version 
Windows 10 Pro

Windows 10 Pro
-
- IdOOle de la suite
- Messages : 25979
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Salut,
Un "useform", je ne sais pas ce que c'est. Dans Base, on parle de formulaire.
Je n'ai pas pris la peine d'étudier ton document qui au vu de sa taille est trop complexe.
Il t'appartient de fournir un ODB limité à la seule problématique.
Il faut ouvrir un rapport en utilisant en paramètre une clause WHERE.
On utilisera alors la propriété .Command pour lui passer le SQL qui va bien :
Un "useform", je ne sais pas ce que c'est. Dans Base, on parle de formulaire.
Je n'ai pas pris la peine d'étudier ton document qui au vu de sa taille est trop complexe.
Il t'appartient de fournir un ODB limité à la seule problématique.
Il faut ouvrir un rapport en utilisant en paramètre une clause WHERE.
On utilisera alors la propriété .Command pour lui passer le SQL qui va bien :
Code : Tout sélectionner
Sub Main(oEvt as Object)
oDoc = ThisDatabasedocument()
oForm = oEvt.Source.Model.Parent
nId = oForm.getByName("IdAd").CurrentValue
sSQL = "SELECT ""tadherents"".*, CONCAT( CONCAT( ""Nom"", ' ' ), " & _
" ""Prenom"" ) ""Adh"" FROM ""tadherents"" WHERE ""IdAd"" =" & nId
oCnx = oDoc.CurrentController.ActiveConnection
oCnx.queries.getByName("rRapport").Command = sSQL
oRapport = oDoc.ReportDocuments.getByName("rapAdherents").open()
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Membre hOOnoraire
- Messages : 106
- Inscription : 11 sept. 2024 15:31
- Localisation : Pas loin du Canada
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Bonjour Dude,
Malheureusement le résultats ne correspond pas à ce que j'attendais. Sur la base que tu fournie, il faut se situer sur l'enregistrement désiré et cliquer sur rapport (si je ne me trompe pas) afin d'obtenir le rapport correspondant à l'adhérent. Pour ma part, le bouton se situe sur le formulaire accueil où il n'y as pas d'enregistrement. De plus, je souhaite (si c'est possible) pouvoir sélectionner un agent ou tous les agents, je n'ai pas trouvé comment faire dans ton exemple.
Je te joins la base que j'utilise en supprimant un maximum d'informations afin que ce soit plus claire.
Dans mon esprit (et ce n'est apparemment pas le bonne façon de voir) un useform pourrait ressembler à ça (modèle sur tableur et désolé si je n'ai pas le bon vocabulaire technique, je m'y emploi):
Concernant cette partie, ne connaissant vraiment pas bien libreoffice j'ai préféré mettre la base complète sur le forum (comme je fais depuis le début) car je ne sais pas du tous s'il peut y avoir des interactions avec des éléments que je n'aurai pas mis dans une base simplifiée. Je te joint une base simplifiée qui ne contient que les éléments que j'estime être liés au problème.
Concernant cette partie, je te remercie pour le code fourni (même si je n'y comprend pas grand chose voir rien du tous) et pour la base modèle que tu as fournie.
Malheureusement le résultats ne correspond pas à ce que j'attendais. Sur la base que tu fournie, il faut se situer sur l'enregistrement désiré et cliquer sur rapport (si je ne me trompe pas) afin d'obtenir le rapport correspondant à l'adhérent. Pour ma part, le bouton se situe sur le formulaire accueil où il n'y as pas d'enregistrement. De plus, je souhaite (si c'est possible) pouvoir sélectionner un agent ou tous les agents, je n'ai pas trouvé comment faire dans ton exemple.
Je te joins la base que j'utilise en supprimant un maximum d'informations afin que ce soit plus claire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.3.7.2 < Obligation de version 
Windows 10 Pro

Windows 10 Pro
-
- IdOOle de la suite
- Messages : 25979
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Ca c'est une boîte de dialogue.
S'il n'y a pas d'enregistrement comment comptes-tu récupérer quelque chose ?
Tu fais un second rapport qui inclue tous les agents.
-
- Membre hOOnoraire
- Messages : 106
- Inscription : 11 sept. 2024 15:31
- Localisation : Pas loin du Canada
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Étant donné que le mec appelait ça un useform et que le titre c'est "interactive useform", j'ai cru que c'était le nom. Au moins tu vois de quoi je parle maintenant.
Actuellement, quand je clic sur le bouton ça marche déjà. Je ne vois pas pourquoi ça pose problème du coup ? Les enregistrement sont récupérés sur une requête déjà existante dans ma base.
L'intérêt d'avoir tous sur un même bouton est de simplifié l'utilisation (la personne qui utilisera la base n'est pas à l'aise avec la bureautique). Donc j'ai vraiment besoin de cette possibilité.
Si je comprends ce que tu me dis c'est impossible de faire ce que je demande ?



Merci d'avance.
Libre office 7.3.7.2 < Obligation de version 
Windows 10 Pro

Windows 10 Pro
-
- Grand Maître de l'OOffice
- Messages : 17187
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Bonjour,
Si ça convient, il te restera plus qu'à faire afficher le Rapport ou l'État par une Macro.
Dans l'exemple joint, en appliquant une méthode décrite par Piaf, le clic sur le bouton Liste des évènements ouvre un formulaire qui permet de sélectionner un Agent dans une liste déroulante et par clic sur le bouton Afficher l'Agent sélectionné de visualiser les évènements qui le concernent.
Si ça convient, il te restera plus qu'à faire afficher le Rapport ou l'État par une Macro.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- IdOOle de la suite
- Messages : 25979
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Orthographie déjà correctement le terme et fais une recherche : viewtopic.php?t=68104&hilit=userform
En quoi avoir deux boutons avec un libellé explicite et lançant deux rapports complétement différents vont-ils être anti-ergonomiques ?
-
- Membre hOOnoraire
- Messages : 106
- Inscription : 11 sept. 2024 15:31
- Localisation : Pas loin du Canada
Re: [Base] Ouvrir un rapport en filtrant le résultat souhaité sur un useform.
Bonjour à tous les deux et merci pour vos retours,
Jeanmimi, j'ai testé l'exemple que tu m'as transmis.
Comme dans la base que tu m'as retournée, et comme l'avait proposé Dude, j'ai l'impression que je suis obligé de passer par un formulaire plutôt qu'une boite de dialogue. J'ai donc modifié légèrement le formulaire "Form_Selection_Agent_copie" afin qu'il réponde à ce que je souhaite (ou au moins m'en rapprocher). Ce n'est pas beau pour l'instant, mais je ferais la mise en page après
.
Il ne me reste plus qu'a trouver une macro pour ouvrir le rapport en fonction du nom sélectionné dans la liste (si c'est possible). Mais je pense que je vais devoir créer un nouveau post.
J'ai également vu la macro pour ouvrir les formulaires par tag, je la trouve pas mal du tous. Merci.
Dude, du coups je reprends ta proposition ci-dessous et je fais 2 rapports, un pour afficher tous le monde et un pour n'afficher qu'un agent sélectionné.
Comme vous vous en doutez, le plus compliqué c'est de me faire comprendre. Je ne connais pas bien le vocabulaire technique (comme pour le "Userform" par exemple (et encore quand je l'orthographie mal ça n'aide pas)) et ce n'est pas évident d'expliquer ce qu'on veux quand on a pas les bons mots.
Merci beaucoup à vous deux pour votre aide et votre patience.
Jeanmimi, j'ai testé l'exemple que tu m'as transmis.
Comme dans la base que tu m'as retournée, et comme l'avait proposé Dude, j'ai l'impression que je suis obligé de passer par un formulaire plutôt qu'une boite de dialogue. J'ai donc modifié légèrement le formulaire "Form_Selection_Agent_copie" afin qu'il réponde à ce que je souhaite (ou au moins m'en rapprocher). Ce n'est pas beau pour l'instant, mais je ferais la mise en page après

Il ne me reste plus qu'a trouver une macro pour ouvrir le rapport en fonction du nom sélectionné dans la liste (si c'est possible). Mais je pense que je vais devoir créer un nouveau post.
J'ai également vu la macro pour ouvrir les formulaires par tag, je la trouve pas mal du tous. Merci.
Dude, du coups je reprends ta proposition ci-dessous et je fais 2 rapports, un pour afficher tous le monde et un pour n'afficher qu'un agent sélectionné.
Pour ce qui est de tes autres messages :
Effectivement, j'ai oublié un "r", vraiment désolé... Mais je te remercie pour le lien fourni.Dude a écrit : ↑27 nov. 2024 07:56 Orthographie déjà correctement le terme et fais une recherche : viewtopic.php?t=68104&hilit=userform
Je ne dis pas que c'est anti-ergonomique, simplement moins pratique à mes yeux et pour la personne qui sera amenée à utiliser la base également. Mais bon, si ma demande est irréalisable sans faire une "usine à gaz", je ne vais pas insister.
Comme vous vous en doutez, le plus compliqué c'est de me faire comprendre. Je ne connais pas bien le vocabulaire technique (comme pour le "Userform" par exemple (et encore quand je l'orthographie mal ça n'aide pas)) et ce n'est pas évident d'expliquer ce qu'on veux quand on a pas les bons mots.
Merci beaucoup à vous deux pour votre aide et votre patience.

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.3.7.2 < Obligation de version 
Windows 10 Pro

Windows 10 Pro