Bonjour
J'ai mis en œuvre la solution décrite dans le fil http://user.services.openoffice.org/fr/ ... 29&t=14662
Le bouton Validation, permettant d'afficher les informations dépendantes de la sélection se révèle être parfois, d'une manipulation lourde, d'autant qu'il entraîne une demande de validation des modifications du formulaire.
Aussi, je recherche une façon de faire le rafraichissement d'écran par macro.
Pour cela, j'ai besoin de savoir comment on écrit dans l'API : rafraichir (refresh) le formulaire courant.
Je joins une base pour l'exemple. Cela me sera aussi nécessaire dans Writer.
CCA
Système XP Professionnel Version 5.1
Open Office 3.3.0 OOo330m20(build 9567)
[Résolu][Base] Éviter le bouton Validation
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 !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
CCA
- Membre OOrganisé

- Messages : 89
- Inscription : 29 nov. 2011 18:04
[Résolu][Base] Éviter le bouton Validation
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par CCA le 04 févr. 2012 14:23, modifié 3 fois.
Systeme Exploitation Windows 8.1
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
-
Dude
- IdOOle de la suite

- Messages : 26195
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Basic]Eviter le bouton Validation
Salut,
S'il s'agit juste d'avoir une liste qui raffraichit les enregistrements, il y a un exemple très simple dans ce fil : http://user.services.openoffice.org/fr/ ... 543#p17382
Tu vois qu'il n'y a aucun bouton pour la validation.
Néanmoins, le comportement d'une macro peut être différent suivant qu'il soit attaché ou non à un ODB.
Merci d'ajouter [Résolu] au début du titre de ton 1er message et de cocher la case de l'icône de sujet (le V vert).
Rien compris à ton histoire de lourdeur. Ton formulaire n'est pas bon.CCA a écrit :Le bouton Validation, permettant d'afficher les informations dépendantes de la sélection se révèle être parfois, d'une manipulation lourde, d'autant qu'il entraîne une demande de validation des modifications du formulaire.
S'il s'agit juste d'avoir une liste qui raffraichit les enregistrements, il y a un exemple très simple dans ce fil : http://user.services.openoffice.org/fr/ ... 543#p17382
Tu vois qu'il n'y a aucun bouton pour la validation.
Writer est le module utilisé par Base pour exécuter les formulaires.CCA a écrit :Cela me sera aussi nécessaire dans Writer.
Néanmoins, le comportement d'une macro peut être différent suivant qu'il soit attaché ou non à un ODB.
Merci d'ajouter [Résolu] au début du titre de ton 1er message et de cocher la case de l'icône de sujet (le V vert).
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
CCA
- Membre OOrganisé

- Messages : 89
- Inscription : 29 nov. 2011 18:04
Re: [Basic] Éviter le bouton Validation
Bonjour Dude et merci
Je doit vous dire que ce n'est pas encore résolu.
J'ai essayé de mettre en place la procédure AfficheChamp.
Si j'ai bien compris, cette macro est utilisée par un document Writer. J'ai saisi la macro dans mon contexte et fait un document Wrtier.
Quand je lance une sélection, le débugger Basic s’arrête sur l’instruction
"oForm = oDoc.DrawPage.Forms.getByName("Standard")"
Erreur d'exécution basic :
Une exception s'est produite
Type: com.sun.star.Container.NoSuchElementException
Ce n'est pas la première fois que je trouve ce type de message avec l'objet com.star
Pourquoi??
Je doit vous dire que ce n'est pas encore résolu.
J'ai essayé de mettre en place la procédure AfficheChamp.
Si j'ai bien compris, cette macro est utilisée par un document Writer. J'ai saisi la macro dans mon contexte et fait un document Wrtier.
Quand je lance une sélection, le débugger Basic s’arrête sur l’instruction
"oForm = oDoc.DrawPage.Forms.getByName("Standard")"
Erreur d'exécution basic :
Une exception s'est produite
Type: com.sun.star.Container.NoSuchElementException
Ce n'est pas la première fois que je trouve ce type de message avec l'objet com.star
Pourquoi??
Systeme Exploitation Windows 8.1
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
-
Dude
- IdOOle de la suite

- Messages : 26195
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Basic] Éviter le bouton Validation
Pas du tout, reprend le lien que je te donne. C'est un ODB qui est fourni comme exemple.CCA a écrit :Si j'ai bien compris, cette macro est utilisée par un document Writer.
-
CCA
- Membre OOrganisé

- Messages : 89
- Inscription : 29 nov. 2011 18:04
Re: [Basic] Éviter le bouton Validation
Dude
Voici donc le résultat de mon essai sur la base.
J'ai écrit la macro 'AfficheEcran' et je l'ai affectée à l'évènement Modifié du contrôle de sélection.
Arrêt et débogage. La propriété Text n'existe pas pour une Zone de Liste. Quelle est la propriété de cet objet qui donne sa valeur.
Je joins mon essai sur une base restreinte. Voir le formulaire ADM_Sociétés
J'ai cherché aussi une autre prise : une méthode de rafraichissement du formulaire principal. C'est le formulaire ADM_Sociétés_bis.
Même punition
Est-ce quelqu’un connait la syntaxe et pourrait m'aider.
Ou bien quelqu'un puisse m'indiquer la documentation permettant de trouver les propriétés des contrôles (j'ai trouvé les méthodes) avec exemple d'utilisation. Ainsi que les méthodes de formulaire.
Merci
Claude
Voici donc le résultat de mon essai sur la base.
J'ai écrit la macro 'AfficheEcran' et je l'ai affectée à l'évènement Modifié du contrôle de sélection.
Arrêt et débogage. La propriété Text n'existe pas pour une Zone de Liste. Quelle est la propriété de cet objet qui donne sa valeur.
Je joins mon essai sur une base restreinte. Voir le formulaire ADM_Sociétés
J'ai cherché aussi une autre prise : une méthode de rafraichissement du formulaire principal. C'est le formulaire ADM_Sociétés_bis.
Même punition
Est-ce quelqu’un connait la syntaxe et pourrait m'aider.
Ou bien quelqu'un puisse m'indiquer la documentation permettant de trouver les propriétés des contrôles (j'ai trouvé les méthodes) avec exemple d'utilisation. Ainsi que les méthodes de formulaire.
Merci
Claude
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Systeme Exploitation Windows 8.1
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
-
gilles75
- Membre lOOyal

- Messages : 28
- Inscription : 06 juin 2010 19:10
Re: [Basic] Éviter le bouton Validation
Bonsoir,
En installant Xray et le SDK (voilà pour la doc) vous auriez trouvé .CurrentValue comme propriété pour une zone liste.
Attention, vous avez utilisé dans le 1er formulaire le même nom pour la zone de liste et son étiquette.
Bonne continuation
En installant Xray et le SDK (voilà pour la doc) vous auriez trouvé .CurrentValue comme propriété pour une zone liste.
Attention, vous avez utilisé dans le 1er formulaire le même nom pour la zone de liste et son étiquette.
Bonne continuation
LibO 3.5.4 officielle sous Ubuntu 12.04
-
CCA
- Membre OOrganisé

- Messages : 89
- Inscription : 29 nov. 2011 18:04
Re: [Basic] Éviter le bouton Validation
Merci Gilles, tu m'as permis de comprendre, comment on appelle un contrôle, un formulaire et le lien Parent-Collection.
J'ai été longue, mais j'ai fait des pas en avant.
Toutefois, je me suis penchée sur la piste reload et non refresh comme dit dans mon mail précédent.
Il me semble comprendre que "reload" relit les données dans la base et les ré-affiche, dans l'état initial.
OK
Pour moi, je voudrais connaître le service du formulaire qui permet de réinterroger la base avec la nouvelle valeur qui a été choisie dans la boite de sélection ( Voir la base donnée en exemple) l'équivalent de l'action "rafraichir le formulaire" d'un bouton.
Puisque les sources sont accessibles, n'y a-t-il pas un crac qui saurait me répondre?
Merci
Claude
J'ai été longue, mais j'ai fait des pas en avant.
Toutefois, je me suis penchée sur la piste reload et non refresh comme dit dans mon mail précédent.
Il me semble comprendre que "reload" relit les données dans la base et les ré-affiche, dans l'état initial.
OK
Pour moi, je voudrais connaître le service du formulaire qui permet de réinterroger la base avec la nouvelle valeur qui a été choisie dans la boite de sélection ( Voir la base donnée en exemple) l'équivalent de l'action "rafraichir le formulaire" d'un bouton.
Puisque les sources sont accessibles, n'y a-t-il pas un crac qui saurait me répondre?
Merci
Claude
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Systeme Exploitation Windows 8.1
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
-
spYre
- InconditiOOnnel

- Messages : 888
- Inscription : 29 oct. 2008 19:02
- Localisation : Liège, Belgique
Re: [Basic] Éviter le bouton Validation
Bonjour CCA,
L'action "Rafraîchir" prédéfinie implique une séquence d'actions distinctes : validation de la saisie, envoi de la valeur dans la base de données, mise à jour du formulaire d'appel.
Pour reproduire ce comportement par macro, il faut donc explicitement envoyer chacune de ces instructions :
Cordialement.
L'action "Rafraîchir" prédéfinie implique une séquence d'actions distinctes : validation de la saisie, envoi de la valeur dans la base de données, mise à jour du formulaire d'appel.
Pour reproduire ce comportement par macro, il faut donc explicitement envoyer chacune de ces instructions :
Code : Tout sélectionner
Sub RafraichirFormulaire (Event)
ListBox = Event.Source.Model
ListBox.commit()
oForm = ListBox.Parent
oForm.updateRow()
oForm.reload()
end SubVous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
-
CCA
- Membre OOrganisé

- Messages : 89
- Inscription : 29 nov. 2011 18:04
Re: [Basic] Éviter le bouton Validation
Merci spYre, c'est exactement ce que je cherchais.
Si quelqu'un tombe sur cette question, sachez que cela marche du feu de Dieu. Et en plus, spYre nous explique le pourquoi du Comment.
Mes excuses du long silence, j'étais absente.
Bonne suite
Claude
Si quelqu'un tombe sur cette question, sachez que cela marche du feu de Dieu. Et en plus, spYre nous explique le pourquoi du Comment.
Mes excuses du long silence, j'étais absente.
Bonne suite
Claude
Systeme Exploitation Windows 8.1
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45
Apache Open Office 4.1.0
Moteur de base de donnes MYSQL 5.0.45