4 messages in org.openoffice.fr.progRe: [prog] Re: [qa-test] OOo 310 RC2 ...
FromSent OnAttachments
Jean-Baptiste FaureMay 16, 2009 9:03 am.odb
Bernard MarcellyMay 16, 2009 1:32 pm 
Jean-Baptiste FaureMay 17, 2009 7:44 am 
Bernard MarcellyMay 17, 2009 12:11 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Re: [qa-test] OOo 310 RC2 Problèmes affichage dans BaseActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:May 16, 2009 1:32:27 pm
List:org.openoffice.fr.prog

Message de Jean-Baptiste Faure date 2009-05-16 18:04 :

Le 16.05.2009 16:59, Didier LAMARE a écrit :

Bonjour Jean-Baptiste,

Merci pour le lien sur les nouveautés dans Base. Je l'avais déjà parcouru.

Le problème avec Lock/UnlockController est résolu, il suffit de remplacer "ThisComponent.lockControllers" par "ThisDataBaseDocument.lockControllers".

Par contre le deuxième problème est toujours d'actualité, et je suis à peu prés sûr que c'est un bug. En effet j'arrive à utiliser les autres méthodes de cet objet (getText, setEnable) et la métode isVisible me renvoie bien son statut (False ou True), mais il reste affiché à l'écran, alors que le statut est False.

Est-il possible d'ouvrir un incident?

Je joins un nouveau document, plus simple. Dans le formulaire "Formulaire1" les deux boutons réalisent la même opération, rendre visible ou invisible le champs d'étiquette "Cible". La différence est dans la manière d'accéder au document, le bouton "Change Etat_1" est la méthode utilisée en 301 avec la macro dans le formulaire, l'autre "Change Etat_2" est le méthode utilisée avec la 310, la macro est dans le fichier .odb. J'espère être clair.

Je te souhaire une bonne journée.

Cordialement Didier

Bonjour Didier,

On peut bien sûr soumettre un rapport de bug mais je crois qu'il est utile avant de le faire de demander confirmation sur la liste prog-fr où il y a des experts de la programmation dans OOo. Je mets donc la liste prog en copie. Comme je ne connais pas grand-chose aux macros et à OOo-Base je suis bien en peine de confirmer le problème et de l'expliquer en anglais sur IZ. Donc si un expert es macros pouvait nous en dire plus, ce serait sympa. Je remets le fichier de test en pièce jointe.

Le codage de la macro "Main" est inutilement complexe. Mais effectivement, le basculement de Visible ne fonctionne pas.

1 - La macro étant déclenchée depuis un formulaire, ThisComponent renvoie le document formulaire. A partir de là, on récupère facilement le contrôle. 2 - le formulaire utilise un contrôle Etiquette. Je l'ai remplacé par un contrôle Texte pour voir ce qui se passe quand le contrôle est supposé
invisible. 3 - Si on bascule un contrôle en invisible, il est inutile de basculer son état Enable, car on ne peut plus le modifier. 4 - OOoBasic n'optimise pas les codages : répéter les séquences xx.yy.zz est non seulement pas clair mais pas rapide. J'ai employé des variables intermédiaires.

Voilà le résultat:

Sub Main Dim formulaireEnCours as Object, ctrlTexte As Object, vueCtrl As Object Dim oView As Object

formulaireEnCours = ThisComponent.DrawPage.Forms.getByName("Standard") ctrlTexte = formulaireEnCours.getByName("Cible") oView = ThisComponent.CurrentController vueCtrl = oView.getControl(ctrlTexte) vueCtrl.Visible = not vueCtrl.isVisible MsgBox("Visible ? " & vueCtrl.isVisible) End Sub

A l'exécution on constate : - le message affiche bien False, True, False, avec des appuis successifs du
bouton. - le contrôle reste toujours visible, mais il ne peut être modifié quand il est "supposé invisible".

Tu peux faire un rapport en fournissant un document simplifié (changer la macro Main, mettre un contrôle Zone de texte, supprimer le bouton et la macro concernant la version 3.0.1).

Cordialement, Bernard