Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > SDK
SDK Forum d'entraide pour la programmation des outils BO par des API (VBA, ASP, Java)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 09h07   #1
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
Par défaut BOV5 - Barre d'outils

Bonjour,
J'ai fait une macro qui à l'ouverture de mon document me charge une barre d'outils personnelle...
Je souhaiterai que les barres d'outils chargées par défaut disparaissent à l'ouverture et soit remises à la fermeture.

Pourriez vous me dire si c'est possible ?

MERCI
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 17h46   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 168
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 168
Points : 2 702
Points : 2 702
Bonjour,
Je n'ai plus la version 5 ni 6 sous la main ....
Mais je me souviens (qu'en version 6) on pouvait parcourir les Barres de menu et d'outils de la façon suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
FOR i = 1 TO Application.CmdBars.Count
   IF Application.CmdBars.Item(i).Type = boBarTypeMenuBar Then 
      -- on est sur la Barre de Menu 
   Else -- on est sur les Barres d'Outils
      IF Application.CmdBars.Item(i).Name = "MaBarre" Then
         Application.CmdBars.Item(i).Visible = True
      Else
        Application.CmdBars.Item(i).Visible = False
      End IF
   End IF
Next i
A vérifier car je ne peux pas le tester
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 07h55   #3
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
Bonjour et merci pour ta réponse.
j'avais effectivement fait un code similaire qui ne me garde que ma barre perso.
le problème est qu'a l'ouverture suivante de BO, je me retrouve dans cette même configuration.
j'aurai voulu qu'à l'ouverture, BO me garde en mémoire les barres sélectionnées, pour pouvoir le remettre à la fermeture...
mais je ne suis pas certain qu'il puisse le faire...
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 08h51   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 168
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 168
Points : 2 702
Points : 2 702
Pourquoi ne pas faire ça sur l'événement Open du document et l'inverse sur Close ?
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 10h29   #5
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
effectivement, mais comme plusieurs utilisateurs vont utiliser cette requête, je voudrais qu'ils récupèrent en sortant les barres d'outils qu'ils avaient en entrant...
Lorsque je réactive toutes les barres en sortant, elles seront toutes actives lors de la prochaine ouverture de BO...
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 16h34   #6
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Bonjour,

C'est tout à fait possible, bien qu'un peu fastidieux. En effet, il faudra passer avec ton code sur toutes les barres d'objets pour tester si à l'ouverture celles-ci sont visibles. Informations qu'il faudra stocker dans des variables ou dans un tableau de variables.

A la fermeture de BO (ou de ton rapport), il faudra s'appuyer sur ces variables pour remettre les barres dans l'état d'origine.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 00h13   #7
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 168
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 168
Points : 2 702
Points : 2 702
Citation:
Envoyé par TomDuBouchon Voir le message
Bonjour,

C'est tout à fait possible, bien qu'un peu fastidieux. En effet, il faudra passer avec ton code sur toutes les barres d'objets pour tester si à l'ouverture celles-ci sont visibles. Informations qu'il faudra stocker dans des variables ou dans un tableau de variables.

A la fermeture de BO (ou de ton rapport), il faudra s'appuyer sur ces variables pour remettre les barres dans l'état d'origine.

C'est à ça que j'avais pensé mais tu crois qu'il va dans l"événement Close récupérer les variables testées à l'ouverture ?
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 09h26   #8
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Il faut effectivement les placer en variables globales pour que ça fonctionne... Sinon pas de lien entre les deux méthodes (surtout qu'on ne peut pas leur passer de paramètre)
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 11h08   #9
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
Bonjour et merci pour vos réponses.
J'ai trouvé un code qui semble pouvoir faire ce que vous dites :
1er : code qui a priori enregistre les barres au départ
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
Sub EtatBarresOutilsDepart()
 
Dim Compteur AS Integer
Dim NbBarresOutils AS Integer
Dim NomBarreOutil AS String
Dim NbElements AS Integer
 
    SET BarresOutils = Application.CmdBars
    NbBarresOutils = BarresOutils.Count                             ' Compte le nombre de barres d'outils de BO
    '--------------- Compte le nombre de barre d'outil visibles
    NbElements = 0
    FOR Compteur = NbBarresOutils TO 1 Step -1
        SET BarreOutil = BarresOutils.Item(Compteur)
        IF BarreOutil.Visible Then                                  ' Teste si la barre d'outil est affichée
            NbElements = NbElements + 1
        End IF
    Next
    '--------------- Sauvegarde les noms des barres d'outils visibles
    ReDim ListeBarresOutils(NbElements - 1)                         ' Redimensionne le tableau de sauvegarde
    NbElements = 0                                                  ' Initialise le rang du tableau à 0
    FOR Compteur = NbBarresOutils TO 1 Step -1
        SET BarreOutil = BarresOutils.Item(Compteur)
        IF BarreOutil.Visible Then                                  ' Teste si la barre d'outil est affichée
            NomBarreOutil = BarreOutil.Name                         ' Charge le nom de la barre d'outil
            ListeBarresOutils(NbElements) = NomBarreOutil           ' Charge le nom de la barre d'outil dans le tableau
            NbElements = NbElements + 1                             ' Incrémente le rang du tableau
'
        End IF
    Next
 
End Sub
2eme : code qui restaure les barres ...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Sub EtatBarresOutilsFin()
 
Dim Compteur AS Integer
Dim NomBarreOutil AS String
Dim BarreExiste AS BOOLEAN
Dim NbElements AS Integer
Dim NbBarresOutils AS Integer
 
    SET BarresOutils = Application.CmdBars
    NbBarresOutils = BarresOutils.Count                             ' Compte le nombre de barres d'outils de BO
    ON Error Resume Next
    NbElements = UBound(ListeBarresOutils)
 
    FOR Compteur = 0 TO NbElements - 1
        NomBarreOutil = ListeBarresOutils(Compteur)                 ' Charge le nom de la barre d'outil
'
    Next
End Sub
Pourriez vous me dire si ça peut marcher, car si je teste en executant le code1 (qui devrait enregistrer l'état initial), puis j'enlève des barres d'outils et lance le code2, je devrait récupérer mes barres ... mais ça ne marche pas.

merci
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 11h26   #10
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Non... Il y a le principe mais pas les actions...

Ces deux codes ne masquent ni ne restaurent les barres... Il faudra le rajouter dans le code.

Dans le premier tu peux rajouter dans la dernière boucle : (dernière ligne du IF)
Code :
BarreOutil.Visible = False
Mais il faudra également que tu ajoutes l'affichage de ta barre perso.

Et inversement, dans le deuxième code, il faudra ajouter une instruction permettant d'afficher les barres d'outils sauvegardées dans ListeBarresOutils et masquer ta barre d'outils perso.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 13h50   #11
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
Merci beaucoup pour votre aide, ça marche !!!!

cordialement
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 11h01   #12
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
bonjour,
désolé de relancer le sujet ...
j'ai un petit soucis: j'ai pû créer ma barre d'outils perso qui se charge à l'ouverture de mon document et enlève les barres d'outils chargées par défaut.
j'ai dans ma barre perso un bouton qui permet de sortir de BO et de recharger avant les barres initiales...
mon problème vient du fait que si je ferme BO sans utiliser le bouton, mais en cliquant sur la croix (en haut à droite), BO se ferme mais ne recharge pas les barres d'outils, ni le menu ... d'où le problème lors de l'ouverture suivante de BO.

Pourriez vous me dire comment mettre une commande lorsque bo est fermé ainsi ?

MERCI
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 11h10   #13
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Il faut que tu reprennes le même code que tu as derrière ton bouton, et le placer dans un nouveau Sub avec la méthode suivante :
Code :
Document_BeforeClose(Cancel AS BOOLEAN)
(A placer dans "Document", et pas dans "General")
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h53   #14
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
j'avais déjà dans "document" la commande
Code :
1
2
3
4
5
Document_BeforeClose(Cancel AS BOOLEAN)
    Call EtatBarresOutilsFin   ''recharge mes barres initiales
    Call EffaceBarre         '' efface ma barre perso
 
End Sub
l'action derrière mon bouton est
Code :
1
2
3
4
Sub Enregistrement()
ThisDocument.Save
ThisDocument.Close
End Sub
donc, sauf erreur de ma part, lorsque je cliques sur mon bouton, le document est sauvegardé, puis la commande thisDocument.Close lance le sub Document_beforeClose ...
En cliquant sur le bouton je retrouve bien mes barres initiales
par contre ça ne marche pas lorsque l'on ferme avec la croix ...

merci
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 09h54   #15
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
bonjour,
Après plusieurs essais, il semblerait que
Code :
Document_BeforeClose(Cancel AS BOOLEAN)
ne marche pas lorsque je quitte BO avec la croix (blanche dans carré rouge)...
j'avais pensé utiliser "application.quit", sans trop savoir comment ...

merci
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 11h43   #16
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
C'est assez étonnant... Peut-être du au fait que tu quittes BO et non pas le document...
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 15h42   #17
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
c'est ce que j'ai également conclu ...

Y a t-il, pour contourner ce problème, moyen de masquer la croix de fermeture de BO, avec une commande du typeEncore merci...
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 15h55   #18
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Il ne me semble pas non...
Tu as une solution... Un peu fastidieuse il est vrai mais bon : A la place de placer ton code sur un document existant, il faut créer un nouveau document vide (enfin avec une requête, peu importe laquelle) dans lequel tu placeras ton code.
Ensuite, tu peux l'enregistrer en tant qu'add-in, extension .rea
Dès lors, il faudra placer ce fichier .rea dans le répertoire add-ins de chaque utilisateur
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 13h07   #19
Invité régulier
 
Inscription : avril 2005
Messages : 67
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 67
Points : 9
Points : 9
Bonjour,
Ce que je trouve bizarre, c'est que j'ai volontairement mis un bug dans ma macro
"EtatBarresOutilsFin" et que lorsque je je quitte l'application, ma commande :
Code :
1
2
3
Document_BeforeClose(Cancel AS BOOLEAN)
    Call EtatBarresOutilsFin   ''recharge mes barres initiales
  End Sub
lance bien ma macro et bugge ...

mais, la commande directe :
Code :
1
2
3
Private Sub Document_BeforeClose(Cancel AS BOOLEAN)
  Application.CmdBars("Structure").Visible = True
 End Sub
ne marche pas ...
antakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web