[Issue] [Base] Ouvrir un formulaire en ligne de commande

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 !
shenriod
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 01 mai 2010 03:31
Localisation : Khorog, Tadjikistan

[Issue] [Base] Ouvrir un formulaire en ligne de commande

Message par shenriod »

Bonjour,

désolé pour le double post (http://user.services.openoffice.org/fr/ ... 6&p=125674) mais, après des recherches dans le forum Macros, je n'ai pas réussi à trouver de piste qui me fasse avancer. Sûrement parce que je débute complètement avec les macros OOo et que je n'ai peut-être pas réussi à trouver de lien entre mon problème et ceux qui ont déjà été postés par ici.

Donc, pour paraphraser mon premier message:

j'utilise les données d'une base PostGreSQL dans 2 logiciels différents:

* QuantumGIS pour les analyses géographiques
* OpenOffice pour les rapports, entrées de données thématiques...

Dans QuantumGIS, il y a la possibilité de programmer des actions: lorsque l'utilisateur clique sur un objet, une commande est lancée, éventuellement avec des paramètres tirés de la table.

Ce que je souhaiterais faire c'est que, quand l'utilisateur clique sur un objet, s'ouvre automatiquement un formulaire de mon fichier odb, directement sur la page de l'enregistrement correspondant (via l'identifiant unique de chaque objet).

Si je voulais ouvrir dans irfanView l'image dont le path se trouve dans le champ pic je taperais:

Code : Tout sélectionner

action= "C:\Program Files\IrfanView\i_view32.exe"%pic
Dans mon post précédent, on m'a informé que je peux réaliser ceci en créant une macro et en appelant cette macro en ligne de commande. Mais honnêtement, je ne vois pas trop par où commencer! Si quelqu'un pouvait me mettre concrètement sur la voie, ça serait très volontiers!

Merci d'avance

Steph

PS: j'ai bien vu qu'il existe un livre dédié à la programmation sous OOo et je serais évidemment heureux d'en faire mon livre de chevet... mais pas de librairie ou de bibliothèque au milieu du Pamir tadjik malheureusement... et de là à se le faire envoyer par Amazon, on en sera déjà à OOo 12.4!
Dernière modification par shenriod le 17 juin 2010 03:53, modifié 1 fois.
OOo 3.2.1 sur Win 7 64bits et sur Ubuntu 10.10 64bits
Oracle Report Builder 1.2.1
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Base] Ouvrir un formulaire en ligne de commande

Message par Churay »

Bonjourn

Désolé, je n'ai pas la réponse, mais une précision :
shenriod a écrit :PS: j'ai bien vu qu'il existe un livre dédié à la programmation sous OOo et je serais évidemment heureux d'en faire mon livre de chevet..
.
Il ne s'agit pas d'un livre dédié à la programmation sous OOo, mais de la bible de référence....

suivie d'une idée :
mais pas de librairie ou de bibliothèque au milieu du Pamir tadjik malheureusement... et de là à se le faire envoyer par Amazon, on en sera déjà à OOo 12.4!
Il existe une version électronique : livraison instantanée...

cOOordialement
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Ouvrir un formulaire en ligne de commande

Message par Dude »

Désolé mais nous venons de constater que Base ne sait pas exécuter de macro en ligne de commande. Rapport d'anomalie 112450 qui a de grande chance de passer en demande d'amélioration.

Je t'invite à voter et à baliser ton sujet avec [Issue]
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Base] Ouvrir un formulaire en ligne de commande

Message par bm92 »

Bonsoir,
shenriod a écrit :Ce que je souhaiterais faire c'est que, quand l'utilisateur clique sur un objet, s'ouvre automatiquement un formulaire de mon fichier odb, directement sur la page de l'enregistrement correspondant (via l'identifiant unique de chaque objet).
Un formulaire n'est pas obligatoirement intégré dans un document Base. Un formulaire externe est un simple document Writer, donc on peut le lancer et exécuter une macro depuis une ligne de commande. Ainsi on devrait pouvoir contourner la limitation signalée par Dude.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
shenriod
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 01 mai 2010 03:31
Localisation : Khorog, Tadjikistan

Re: [Base] Ouvrir un formulaire en ligne de commande

Message par shenriod »

Churay: merci, je vais chercher cette bible alors... je n'avais pas pensé à la version électronique

Dude: ai voté! merci d'avoir fait remonter le problème

bn92: je ne suis pas sûr de bien comprendre... que le formulaire soit externe ou interne, comment faire pour l'appeler depuis un autre programme? Simplement avec un "C:\mon_path_vers_mon_document\mon_document.odt" ? Et comment spécifier l'enregistrement particulier sur lequel je veux arriver directement? Merci d'avance!
OOo 3.2.1 sur Win 7 64bits et sur Ubuntu 10.10 64bits
Oracle Report Builder 1.2.1
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Issue] [Base] Ouvrir un formulaire en ligne de commande

Message par Dude »

shenriod a écrit :que le formulaire soit externe ou interne, comment faire pour l'appeler depuis un autre programme?
Pour appeler une macro contenu dans un document ODT, il suffit de passer la ligne de commande sous Win7 :

Code : Tout sélectionner

"C:\Program Files (x86)\OpenOffice.org 3\program\soffice.exe" "chemin\vers\ton\document.odt" macro:///document/Standard.Module1.Test("OK") 
La macro dans le document sera sous la forme :

Code : Tout sélectionner

Sub Test (arg as string)
   MsgBox arg
End Sub
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: [Issue] [Base] Ouvrir un formulaire en ligne de commande

Message par Pierre-Yves Samyn »

Bonjour
Dude a écrit :Pour appeler une macro contenu dans un document ODT, il suffit de passer la ligne de commande sous Win7 :

Code : Tout sélectionner

"C:\Program Files (x86)\OpenOffice.org 3\program\soffice.exe" "chemin\vers\ton\document.odt" macro:///document/Standard.Module1.Test("OK") 
Je n'ai pas de windows 7 sous la main pour tester mais sous XP la syntaxe est :

Code : Tout sélectionner

"C:\Program Files\OpenOffice.org 3\program\soffice.exe" "chemin\vers\NomDocument.odt" macro://NomDocument/Standard.Module1.PysTest("Client") 
Autrement dit : derrière macro uniquement 2 // suivis du nom du document puis dans l'ordre NomBibliothèque.NomModule.NomProcedure

Je serais surpris que ce principe soit différent avec win7...
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Issue] [Base] Ouvrir un formulaire en ligne de commande

Message par Dude »

Le rapport vient d'être marqué en tant que bogue. Je vous encourage fortement à voter pour que sa prise en compte soit effective.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues