Base : rapport filtré par donnée d'un formulaire

Bonjour,

je voudrais lancer un rapport à partir d'un formulaire.
Ce rapport prendrait la valeur en cours d'un champ du formulaire comme
filtre.

Un de vous sait-il comment s'y prendre ?

merci par avance

Chi

Bonjour,

je voudrais lancer un rapport à partir d'un formulaire.
Ce rapport prendrait la valeur en cours d'un champ du formulaire comme
filtre.

Un de vous sait-il comment s'y prendre ?

Bonjour,
Il faut une Macro appliquée au clic sur un bouton.
J.M

Bonjour

LeChi wrote

je voudrais lancer un rapport à partir d'un formulaire.
Ce rapport prendrait la valeur en cours d'un champ du formulaire comme
filtre.

Comme Jean-Michel l'a indiqué un peu de programmation est nécessaire.

Plusieurs approches seraient possibles. Je te joins un des exemples anciens
que j'avais proposé.

Dans l'exemple le rapport est fondé sur une requête. Il s'agit d'un rapport
non créé avec l'extension report builder (car à l'époque l'extension n'était
pas systématiquement installée). Toutefois le programme fonctionne aussi
si le rapport est créé par cette extension puisque c'est la requête source
qui sera modifiée.

La macro modifie le SQL de cette requête en fonction de la valeur des
champs du formulaire (en l'occurrence on veut limiter le rapport entre
deux dates).

RapportParam.odb
<http://nabble.documentfoundation.org/file/n4063544/RapportParam.odb>

Cordialement
Pierre-Yves

Suite...

pierre-yves samyn wrote

Je te joins un des exemples anciens que j'avais proposé.

Regardant d'un peu plus près cet exemple je m'aperçois qu'un
peu de "toilettage" y était nécessaire. Tu trouveras une version
"nettoyée" et un complément d'explications ici:

https://wiki.documentfoundation.org/Macros/Base/003/fr

Cordialement
Pierre-Yves

Merci,

mais, comment faire en sorte que le rapport prenne la valeur d'un champ du
formulaire comme filtre ?

Chi

Jean Michel PIERRE wrote

Bonjour

LeChi wrote

cependant, la base exemple (les deux) ne fonctionne pas chez moi.
Le rapport ne change pas, malgré les changements de dates que j'effectue.

As-tu téléchargé et enregistré la base sur ton poste ?
As-tu autorisé l'exécution des macros ?
Quel est le niveau de sécurité dans Outils> Options> LibreOffice>

Sécurité des macros (niveau moyen est un bon compromis)?

Tu ne donnes guère d'indications... Le formulaire comprend des dates
par défaut. Garder ces dates puis cliquer sur le bouton Rapport
ouvre ce dernier pour 2 enregistrements.
Modifier la date de début pour 01/06/12 (par exemple) puis
cliquer sur le bouton devrait afficher 5 enregistrements.

As-tu des messages d'erreur ?

Cordialement
Pierre-Yves

Merci Pierre-Yves

cependant, la base exemple (les deux) ne fonctionne pas chez moi.
Le rapport ne change pas, malgré les changements de dates que j'effectue.

Mon libre office est 4.0.2.2
Mon PC est sous linux mint 12

bien à toi

Chi

évidemment ...
la sécurité des macros était en "élevé", ce qui fait que rien ne se passait.
mise en "moyen", tout fonctionne.

merci Pierre-Yves,

je vais m'en inspirer pour ma base.

Cordialement,

Chi

Encore une question, ma donnée est dans un sous-formulaire.

Comment dois-je formuler

oForm = thisComponent.DrawPage.Forms.getByName("F_report")

pour arriver au sous-formulaire que j'appellerai "SF_report "

merci par avance

réponse à moi-même :

oForm =
thisComponent.DrawPage.Forms.getByName("F_Freres").getByName("SF_Freres")

résolu

merci