Ouvrir un formulaire en utilisant les donnés d'un autre
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 !
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 !
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
Ouvrir un formulaire en utilisant les donnés d'un autre
Bonjour,
Voici ce dont je dispose actuellement :
2 formulaires
Le 1er (nommé "personnes" contient un nom, un prénom, ... ainsi qu'un bouton "visites".
Quand je clic sur ce boutton, cela ouvre the second formulaire.
Le second formulaire (nommé "visites") contient a nom (lecture seule) ainsi qu'un sous formulaire, liste de dates (visites).
Je cherche à faire la chose suivante :
Si le 1er formulaire est positionné sur monsieur Robert, je voudrais qu'un clic sur le bouton "Visites" ouvre le second formulaire, et que celui-ci soit automatiquement positionné sur les visites de monsieur Robert.
Quelqu'un a il une idée de comment faire cela ?
Si oui, je lui serait infiniment reconnaissant de m'en parler !
Voici ce dont je dispose actuellement :
2 formulaires
Le 1er (nommé "personnes" contient un nom, un prénom, ... ainsi qu'un bouton "visites".
Quand je clic sur ce boutton, cela ouvre the second formulaire.
Le second formulaire (nommé "visites") contient a nom (lecture seule) ainsi qu'un sous formulaire, liste de dates (visites).
Je cherche à faire la chose suivante :
Si le 1er formulaire est positionné sur monsieur Robert, je voudrais qu'un clic sur le bouton "Visites" ouvre le second formulaire, et que celui-ci soit automatiquement positionné sur les visites de monsieur Robert.
Quelqu'un a il une idée de comment faire cela ?
Si oui, je lui serait infiniment reconnaissant de m'en parler !
OOo 2.0.2 sous WinXP SP2 (+ JRE 1.5.0)
-
- Membre OOrganisé
- Messages : 93
- Inscription : 03 avr. 2006 15:50
Tes formulaires se trouvent ou ?
Ce sont des fichiers Texte a part ou bien ils appartiennent a ton fichier Base ?
Le code de la macro change en fonction ...
L'idée c'est d'ouvrir le document que tu veux pas macro et de lui appliquer un filtre qui contient la valeur 'M. Robert' en gros.
Libre a toi ensuite d'ajouter un morceau de code pr la fermeture du premier formulaire par exemple.
Ce sont des fichiers Texte a part ou bien ils appartiennent a ton fichier Base ?
Le code de la macro change en fonction ...
L'idée c'est d'ouvrir le document que tu veux pas macro et de lui appliquer un filtre qui contient la valeur 'M. Robert' en gros.
Libre a toi ensuite d'ajouter un morceau de code pr la fermeture du premier formulaire par exemple.
OOo 2.0.2 sous windows XP
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
Pour l'instant, mes formulaires sont inclus dans le .odt, mais à terme, je pense les en extraire.
Je ne souhaite pas fermer le formualaire "personne", le second serait l'équivalent d'un popup.
Ta solution exploitant un filtre me semble parfaite, tu pourrais me donner des indication de code pour ces macros ?
Je ne souhaite pas fermer le formualaire "personne", le second serait l'équivalent d'un popup.
Ta solution exploitant un filtre me semble parfaite, tu pourrais me donner des indication de code pour ces macros ?
OOo 2.0.2 sous WinXP SP2 (+ JRE 1.5.0)
-
- Membre OOrganisé
- Messages : 93
- Inscription : 03 avr. 2006 15:50
je te conseil de les extrairent dès maintenant alors.
La macro d'ouverture n'étant pas tout a fait la meme ca va t'éviter de te retrouver avec un truc que tu pense terminer a reprendre dans le détail :S
http://user.services.openoffice.org/fr/ ... asc-0.html
tu as de bonnes explications ici mais faut prendre le temps de tester et de réadapter le code.
Changer ce qui doit l'être en fonction de ton programme ou non.
L'idée maitresse c'est ca :
change le code autour en fonction de tes besoins
++
La macro d'ouverture n'étant pas tout a fait la meme ca va t'éviter de te retrouver avec un truc que tu pense terminer a reprendre dans le détail :S
http://user.services.openoffice.org/fr/ ... asc-0.html
tu as de bonnes explications ici mais faut prendre le temps de tester et de réadapter le code.
Changer ce qui doit l'être en fonction de ton programme ou non.
L'idée maitresse c'est ca :
Code : Tout sélectionner
unForm.setPropertyValue("Filter", monFiltre)
unForm.setPropertyValue("ApplyFilter", True)
++
OOo 2.0.2 sous windows XP
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
-
- Membre OOrganisé
- Messages : 93
- Inscription : 03 avr. 2006 15:50
J'ai trouvé le plus d'infos dans ce forum.
En fouillant tout les topics :S c'est un peu long mais quand tu cherche vraiment une infos. Perso je débute donc il est évident que les questions que je me pose d'autres les ont surement déja posés ..
sinon tu as le site sun :
http://docs.sun.com/app/docs/doc/819-1328?l=fr
qui est pas mal, même si un peu court a mon gout ..
Les HowTo du site officiel :
http://fr.openoffice.org/Documentation/Index.html
Et les HowTo de ce forum.
Pour débuter, 'passer d'access a OOo' ou qqch ds ce gout est pas mal du tout.
le HowTo Andrew Pitonyak est carrement bien aussi par contre pas très aisé a comprendre quand on débute.
Un conseil, quand tu utilise Base ou les formulaires et qu'une chose te semble possible mais que tu ne sais pas comment, ne considère pas comme acquit le fait que Base est capable de le faire.
Cherche de suite ici ou ailleurs si Base est réellement capable de le faire (avec macro par exple) ca t'évitera de devoir changer tes plans et de bousculer ton planning continuellement.
En fouillant tout les topics :S c'est un peu long mais quand tu cherche vraiment une infos. Perso je débute donc il est évident que les questions que je me pose d'autres les ont surement déja posés ..
sinon tu as le site sun :
http://docs.sun.com/app/docs/doc/819-1328?l=fr
qui est pas mal, même si un peu court a mon gout ..
Les HowTo du site officiel :
http://fr.openoffice.org/Documentation/Index.html
Et les HowTo de ce forum.
Pour débuter, 'passer d'access a OOo' ou qqch ds ce gout est pas mal du tout.
le HowTo Andrew Pitonyak est carrement bien aussi par contre pas très aisé a comprendre quand on débute.
Un conseil, quand tu utilise Base ou les formulaires et qu'une chose te semble possible mais que tu ne sais pas comment, ne considère pas comme acquit le fait que Base est capable de le faire.
Cherche de suite ici ou ailleurs si Base est réellement capable de le faire (avec macro par exple) ca t'évitera de devoir changer tes plans et de bousculer ton planning continuellement.
OOo 2.0.2 sous windows XP
-
- Membre OOrganisé
- Messages : 93
- Inscription : 18 avr. 2006 10:13
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
Bon, les choses avancent (doucement, mais surement).
J'ai pour l'instant le code suivant :
Qui me permet d'ouvrir ma fiche "visites".
Il me reste à trouver comment lui passer l'identifiant d'une personne, et à y appliquer le filtre en découlant. L'idéal serait que je n'ai pas à écrire d'autre macro, et que tout puisse se passer dans celle-ci.
J'ai pour l'instant le code suivant :
Code : Tout sélectionner
Function OuvreVisites() as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
Dim sVisitesUrl As String, nSheetsUsed As Long
Dim visitesForm As Object
aProp(0).Name = "ActiveConnection"
aProp(0).Value = thisComponent.Drawpage.Forms(0).ActiveConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"
sVisitesUrl = ConvertToURL (CurDir & getPathSeparator() & "fiche-visites.odt")
visitesForm = starDesktop.loadComponentFromURL(sVisitesUrl, "visites", 0, aProp())
end function
Il me reste à trouver comment lui passer l'identifiant d'une personne, et à y appliquer le filtre en découlant. L'idéal serait que je n'ai pas à écrire d'autre macro, et que tout puisse se passer dans celle-ci.
OOo 2.0.2 sous WinXP SP2 (+ JRE 1.5.0)
-
- Membre enthOOusiaste
- Messages : 482
- Inscription : 20 mars 2006 15:15
- Localisation : Paris
Ce genre de question devrait être sur le forum "Macros et API"...
La question du passage de la valeur de filtre y a été posée et la réponse donnée !
http://user.services.openoffice.org/fr/ ... c1048.html
cris59
La question du passage de la valeur de filtre y a été posée et la réponse donnée !
http://user.services.openoffice.org/fr/ ... c1048.html
cris59
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
-
- Membre enthOOusiaste
- Messages : 482
- Inscription : 20 mars 2006 15:15
- Localisation : Paris
Pas grave, mais toutes les questions sur les macros concernent aussi une application particulière, et il est plus simple de les regrouper dans ce forum...
Le passage de la valeur de filtre s'applique aussi bien pour les formulaires inclus dans Base que pour les formulaires externes (Writer ou Calc)
cris59
Le passage de la valeur de filtre s'applique aussi bien pour les formulaires inclus dans Base que pour les formulaires externes (Writer ou Calc)
cris59
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
La solution avec les filtres est fonctionnelle, mais induit un inconvénient : elle interdit de fait un parcours linéaire des autres enregistrements que celui visé au départ.
Personne ne voit d'autre possibilité de résoudre mon problème ?
L'idée, ce serait d'utiliser plutôt ce qui, dans l'interface, est appelé "Recherche d'un enregistrement", plutôt que la fonction de filtres ...
Personne ne voit d'autre possibilité de résoudre mon problème ?
L'idée, ce serait d'utiliser plutôt ce qui, dans l'interface, est appelé "Recherche d'un enregistrement", plutôt que la fonction de filtres ...
OOo 2.0.2 sous WinXP SP2 (+ JRE 1.5.0)
-
- Membre lOOyal
- Messages : 37
- Inscription : 20 avr. 2006 13:17
ça permet une autre forme de navigation dans les données. Il serait interressant que je permette de parcourir les différentes "fiches visites", pour balayer rapidement les visites de tout les inscrits.
J'ai fait un bouton "débloquer le parcours" dans la fiche fiche visite.
Celui ci se contente d'enlever le filtre.
Mais ceci à deux inconvénients :
- ergonome plus que moyenne, car un clic supplémentaire est obligatoire, et le fonctionement n'est pas très intruitif
- pour appliquer le nouveau filtre, je dois recharger le formulaire. l'enregistrement affiché n'est donc plus celui qui était sépectionné avant. L'utilisateur risque d'être perdu.
Il doit bien être possible d'utiliser cette fonction de recherche via les macros !
J'ai fait un bouton "débloquer le parcours" dans la fiche fiche visite.
Celui ci se contente d'enlever le filtre.
Mais ceci à deux inconvénients :
- ergonome plus que moyenne, car un clic supplémentaire est obligatoire, et le fonctionement n'est pas très intruitif
- pour appliquer le nouveau filtre, je dois recharger le formulaire. l'enregistrement affiché n'est donc plus celui qui était sépectionné avant. L'utilisateur risque d'être perdu.
Il doit bien être possible d'utiliser cette fonction de recherche via les macros !
OOo 2.0.2 sous WinXP SP2 (+ JRE 1.5.0)
-
- Membre enthOOusiaste
- Messages : 482
- Inscription : 20 mars 2006 15:15
- Localisation : Paris