[Résolu] [Calc] Ouvrir un formulaire depuis un classeur

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 !
Lauris
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 22 juil. 2017 12:30

[Résolu] [Calc] Ouvrir un formulaire depuis un classeur

Message par Lauris »

Bonjour à tous,

Alors voilà, dans le cadre d'un projet que je dois effectuer pour mon rapport de stage (je suis en BTS CIG en alternance) j'essaye de construire un petit planning, j'ai avancé depuis les quelques messages postés sur le forum et les recherches que j'y ai effectué. Cependant je reste encore bloqué sur certains points, dont celui-ci :

Mais avant tout, le problème traité ici est très lié avec mon deuxième problème (c'est la finalité du premier en quelques sortes), mais je vais ouvrir un autre fil pour celui-ci car ils sont tout de même différents : https://forum.openoffice.org/fr/forum/v ... =8&t=55907

Pour en revenir à mon premier problème, il s'agit en fait d'ouvrir un formulaire depuis un classeur, alors après quelques recherches, j'ai vu que certains avaient eu le même problème que moi, je suis tombé sur ce code (qui a été repris ensuite sur pas mal de fils équivalent mais je n'arrive malheureusement pas à le faire fonctionner)

Code : Tout sélectionner

Sub OuvreFormulaire( oEvent as variant )
Dim oform as Object

oform=OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, OEvent.Source.Model.Parent.ActiveConnection, "FDossier")

End Sub
et la fonction

Code : Tout sélectionner

Function OpenForm( formContainer as variant, oConnection as variant, sFormName as string, optional strMode as string ) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
dim openMode as string
   if ismissing( strMode ) then
      openMode = "open"
   else
      openMode = strMode
   endif
    aProp(0).Name = "ActiveConnection"
    aProp(0).Value = oConnection
    aProp(1).Name = "OpenMode"
    aProp(1).Value = strMode
    OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
End Function
(Je précise bien qu'il faut l'ouvrir depuis un classeur, car il y a beaucoup de solutions sur le forum mais pour ouvrir un formulaire depuis un autre formulaire, ce n'est pas le cas ici )

En cherchant encore, je suis tombé sur ce code

Code : Tout sélectionner

Sub OuvreBDD
   dim Args()
   dim oDesktop as object
   dim oDoc as object
   dim cURL as string

   oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
   cURL = ConvertToURL( "Z:/RapportdeStage/Tests/BDD-Planning_TEST.odb" )
   if FileExists (cUrl) then
      oDoc = oDesktop.loadComponentFromURL(cURL , "_blank", 0, args() )
   end if
End Sub
Celui-là fonctionne, le lien se fait bien mais avec la base de données, alors oui je chipote un peu mais c'est vraiment par ce que je pense que le fait d'ouvrir directement le formulaire vas faciliter le travail sur le deuxième problème.
Evidemment le classeur et la base de données sont joints

Recherches effectuées sur le sujet : - https://forum.openoffice.org/fr/forum/v ... 7&t=15346#


Merci d'avance à tout ceux qui prendront le temps de se pencher sur le problème

Bonne journée/ou soirée à tous :D
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Lauris le 19 oct. 2017 19:34, modifié 1 fois.
OpenOffice 4.1.3 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Piaf »

Bonjour
Première question sur ta base : Quel est l'intérêt d'avoir deux tables différentes avec une relation 1 à 1 ?
Relation.png
Deuxième question sur le fichier Calc : Pourquoi ne pas créer directement le formulaire dans ton tableur ?
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Lauris
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 22 juil. 2017 12:30

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Lauris »

Bonjour,
Quel est l'intérêt d'avoir deux tables différentes avec une relation 1 à 1 ?
Alors effectivement il n'y a aucun intérêt, ne serait-ce que ce sont des informations d'un ordre tout à fait différent qui sont renseignées dans ces deux tables et je pense en effet que le fait d'avoir fait 2 tables était plus psychologique qu'utile.
Pourquoi ne pas créer directement le formulaire dans ton tableur ?[/quote
C'est vrai que je suis tombé sur plusieurs fils qui évoqué cette solution, dont un de toi Piaf https://forum.openoffice.org/fr/forum/v ... 15&t=40452 et c'est vrai que cette solution est très intéressante mais en l'utilisant je suis devant l'impossibilité de créer une base de données ? Enfin c'est ce que j'ai compris
 Ajout : Autant pour moi il est possible de créer une base de données à partir des infos présentes dans une feuille Calc (excusez mon ignorance :roll: ), mais alors une seule question me viens à l'esprit, est-il possible d'automatiser le 'transport' des données contenues dans la feuille Calc dans la base de données ? Parce ce qu'il serait très contraignant de le faire manuellement 
Dernière modification par Lauris le 12 oct. 2017 13:58, modifié 1 fois.
OpenOffice 4.1.3 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Piaf »

Re
Le fil que tu cites concerne un dialogue, pas un formulaire.
Il est tout à fait possible de créer un formulaire dans Calc à partir d'un fichier Base.
Formulaire.png
Formulaire1.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Lauris
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 22 juil. 2017 12:30

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Lauris »

Re,
Merci d'avoir répondu aussi rapidement,

Une fois que j'ai renseigné tout mes champs et que j'enregistre à partir du navigateur de formulaire rien ne s'enregistre dans la base de donnée est-ce normal ?
OpenOffice 4.1.3 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Piaf »

Re
Pas compris l'enregistrement à partir du navigateur de formulaire.
Lauris a écrit : rien ne s'enregistre dans la base de donnée est-ce normal ?
Je ne reproduis pas
Formulaire2.png
On ne connaît toujours pas la finalité de la manip. A partir du moment ou tu travailles sous Base, à quoi sert le fichier Calc ?
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Lauris
NOOuvel adepte
NOOuvel adepte
Messages : 13
Inscription : 22 juil. 2017 12:30

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Lauris »

Re, j'ai encore 2 petits problèmes,

1 : Lorsque que je sélectionne un champ dans ma liste celui-ci s'affiche et lorsque je clique sur une autre zone de liste, le champ sélectionné dans la liste précédente disparaît...

2 : Dans le formulaire sous base, l'ID_Dossier est censé être du texte, exemple : 'DossierGuideescalade' mais là ce n'est pas possible d'insérer du texte, comment y remédier ?
 Ajout : 2 petits problèmes résolus 
Mais deux autres a fait surface, lorsque que je ferme et ré_ouvre le Calc, les données saisies disparaissent des champs, y'a t-il une solution pour les laisser en place jusqu'au prochain enregistrement ? Peut-être en mettant une cellule sous chaque champs de formulaire et lier les 2, afin que lorsque je choisi dans mon champ 'Graphiste' > 'Jeff' par exemple, la saisie ('Jeff') vienne automatiquement s'inscrire dans la cellule qui est sous mon champs de formulaire, est-ce possible ?
On ne connaît toujours pas la finalité de la manip. A partir du moment ou tu travailles sous Base, à quoi sert le fichier Calc ?
Pour remettre dans le contexte, c'est pour permettre à la personne qui s'occupe du 'planning' d'avoir une vue d'ensemble, clair du planning de la semaine à tout moment et lui permettre d'avoir un oeil sur l'avancement des travaux en cours
OpenOffice 4.1.3 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Ouvrir un formulaire depuis un classeur

Message par Piaf »

Re
Lauris a écrit : Pour remettre dans le contexte, c'est pour permettre à la personne qui s'occupe du 'planning' d'avoir une vue d'ensemble, clair du planning de la semaine à tout moment et lui permettre d'avoir un oeil sur l'avancement des travaux en cours
je n'ai vu aucun planning dans les fichiers que tu as mis en ligne, je veux bien que j'ai la vue qui baisse mais pas à ce point j'espère :lol:
Et la question est :
Piaf a écrit :A partir du moment ou tu travailles sous Base, à quoi sert le fichier Calc ?
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64