F.A.Q. Business-ObjectsConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 101, dernière mise à jour : 10 juillet 2013 

 
OuvrirSommaire Reporter / Desktop Intelligence (Client lourd) Conception d'un document BO

On appelle Document BO un fichier portant l'extension .rep (comme report) généré par le logiciel BusinessObjects.
Bien que l'on entende couramment j'ai fait un rapport BO, le terme approprié est document.

Un document BO peut être constitué d'un ou plusieurs Rapports BO.
Pour faire simple, les rapports correspondent aux onglets en bas de l'écran et sont au document ce que les feuilles de calcul sont au fichier Excel.

Un Rapport revêt généralement la forme de tableaux simples ou croisés et/ou de graphe(s).

Ces différents éléments sont alimentés par une ou plusieurs requêtes, appelées aussi Fournisseurs de données qui peuvent être indépendantes ou synchronisées entre elles.

Pour cela, BO met à notre disposition :

  • Des univers BO (Listes d'objets organisés en classes et sous-classes créées dans le module Designer).
  • Du SQL à la carte (Interrogation rédigée dans le langage approprié à la base de données sur laquelle il s'appuie).
  • Un fichier de données personnelles (fichier texte, Excel, dBase, xml).
  • Une procédure stockée (SGBD).
  • Une procédure VBA.
  • Un fournisseur de données xml.
  • Une source OLAP.
Créé le 6 décembre 2007  par Bruno2r

Pourquoi ?

Définir une variable offre des possibilités très pratiques.
Définir une variable consiste à nommer une formule pour en étendre les possibilités d'utilisation.

L'avantage principal : chaque nouvelle variable créée deviendra disponible ...

  • dans le gestionnaire de rapports
  • dans l'éditeur de formule
  • dans le choix d'un filtre
  • dans la fenêtre de rotation

Et lorsque ce sont des variables de type Dimension (par exemple le libellé d'un produit suivi de son code):

Les variables seront utilisables :

  • pour la création d'une section
  • pour l'ajout d'une rupture
  • pour la création d'un palmarès

Comment ?

Deux méthodes aboutissent au même résultat.

Méthode 1) Vous avez mis au point votre formule dans votre tableau (idéal pour débuter) :
Une fois votre formule mise au point dans sa colonne (si elle n'est pas sélectionnée, sélectionnez-la).
Il suffit alors de cliquer sur l'outil "Définir en tant que variable" ou Menu /Données / Définir en tant que variable.

Généralement vous aurez à choisir entre deux options :

  • Evaluer la formule dans son contexte (ce qui fige les contextes d'entrée et de sortie), voir dans la FAQ.
  • Garder la forme générique (la formule s'adaptera au niveau où elle sera utilisée).

Vous devrez ensuite lui attribuer un nom :

  • Pensez que c'est ce nom, et sous la forme que vous aurez choisie, qui apparaitra en entête de colonne.

Méthode 2) Vous voulez la créer directement :

Procédez de la façon suivante :
  • Menu Données / Commandes Variables...
  • Cliquez sur Ajouter.
  • Dans l'onglet Définition donnez un nom, choisissez le type d'objet (Dimension, Information, Indicateur).
  • Dans l'onglet Formule, mettez au point votre formule.
  • Puis validez.

Enfin, et pour terminer, vous pouvez dans la fenêtre listant les variables non seulement en Ajouter, mais aussi en Supprimer et surtout les Editer pour les corriger.

Créé le 9 décembre 2007  par Bruno2r

Pourquoi ?

Par défaut, lorsque vous créez un fournisseur de données, BO le nomme Requête 1 sur Nom de l'univers.
Une seconde requête sur le même univers sera nommée Requête 2 sur Nom de l'univers, et ainsi de suite.

Cela présente plusieurs inconvénients :

  • Lorsque vous avez plusieurs requêtes, il devient difficile de savoir à quoi elle se rapportent, donc de les distinguer.
  • Lorsque ces différentes requêtes ont des objets en commun, le nom de ces objets d'ans l'entête des tableaux est suivi du nom du fournisseur de données entre parenthèses.
  • Il devient alors difficile de gérer la largeur des colonnes affichant ANNEE (Requête1 sur Univers).
  • Lorsque ces objets communs apparaissent dans l'éditeur de requêtes, dans le gestionnaires de rapports ou dans la fenêtre de rotation, vous avez la possibilité de les trier par fournisseur d'accès.

Prenez donc la peine de renommer vos fournisseurs de données en gardant à l'esprit que le libellé choisi apparaitra en entête de colonne et selon la forme graphique que vous aurez choisi Minuscule ou Majuscule.

Comment ?

Pour renommer les fournisseurs de données procédez de la façon suivante :

  1. Menu Données
  2. Commande Gestionnaire de données ...
  3. Sélectionner la première requête.
  4. Allez sur l'onglet Définition.
  5. Sélectionnez son nom actuel.
  6. Tapez le nom distinctif que vous voulez lui donner (Ventes, Effectifs, Absences, Budget ....).
  7. Sélectionnez les requêtes suivantes et répétez l'opération.
  8. A la fin seulement Validez.
Créé le 27 janvier 2008  par Bruno2r

Définition de Titre dynamique :

Un titre est dynamique si, une fois réalisé, vous n'avez plus à le corriger pour qu'il reste adapté à l'évolution des données de votre rapport.
Pour cela il convient d'en repérer les éléments variables et de les automatiser à l'aide d'une formule pour s'assurer de leur mise à jour.

Méthode :

Les éléments variables d'un titre peuvent être divers :

  • Références temporelles - date(s), année(s) ou périodes de référence.
  • Indicateur principal d'activité - chiffre d'affaires, niveau de dépenses, nombre de pièces produites ...
  • Périmètre d'observation - échelle de l'étude, localisation de l'activité.

Ces éléments peuvent être récupérés :

  • Dans les propriétés du document, c'est notamment le cas du nom de l'auteur.
  • Dans la requête lorsqu'il s'agit de la réponse à une invite.
  • Parmi les variables représentant les objets ou créées par vous.

La partie fixe d'un titre étant, par définition, un texte, elle devra toujours être encadrée de double-guillemets.
Les éléments variables, s'ils s'appuient sur des données numériques ou des dates seront convertis en texte pour permettre la concaténation de l'ensemble. L'opérateur de liaison entre les éléments est le & ou car( 38 ) .

Concaténation simple de données texte :

EVOLUTION DE L'ACTIVITÉ DU SERVICE ACHATS

Dans ce titre, la partie soulignée représente les éléments fixes.
ACHATS représente le nom du service étudié c'est la partie variable qui doit s'adapter selon le critère choisi dans la requête.

Le libellé du titre nous indique que ce rapport ne concerne qu'un seul service (DU SERVICE).
Si le critère est déterminé par une invite, la formule suivante permettra de récupérer la réponse qui a été faite au moment du rafraîchissement.

 
Sélectionnez
= RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?")

où [Variable] est n'importe quelle variable de la requête portant l'invite (permet de déterminer le fournisseur de données plutôt que de le désigner par son nom qui peut être modifié)
et "Quel service ?", le texte de l'invite dont vous voulez récupérer la réponse.

Pour obtenir le titre complet on complètera la formule en ajoutant la partie fixe.

 
Sélectionnez
="ÉVOLUTION DE L'ACTIVITÉ DU SERVICE " & RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?")

Ce titre est dynamique, le nom du service se mettra à jour chaque fois qu'une réponse différente sera donnée à l'invite "Quel service ?"

Mais il peut être amélioré.
En effet, lorsque l'on parle d'évolution de l'activité, on doit préciser la période observée.
Lors de la conception de la requête, nous avons précisé les années que nous voulions prendre en compte (ici Objet ANNEE Dans Liste(2005;2006;2007)).

Il nous faut donc mentionner la période retenue dans le titre afin d'obtenir l'affichage suivant :

ÉVOLUTION DE L'ACTIVITÉ DU SERVICE ACHATS DE 2005 A 2007

La formule suivante permettra de récupérer les bornes 2005 et 2007 en ajoutant les mots de liaison

 
Sélectionnez
= " DE " & Min([ANNEE]) & " A " & Max([ANNEE])
que l'on ajoutera à la formule de titre précédente
= "ÉVOLUTION DE L'ACTIVITÉ DU SERVICE " & RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?") & " DE " & Min([ANNEE]) & " A " & Max([ANNEE])
Mis à jour le 2 février 2008  par Bruno2r

On appelle filtre complexe tout filtre faisant l'objet d'un test logique (au résultat booléen vrai ou faux) par opposition avec le filtre simple qui compare des valeurs.

Pour cela il suffit de :

  1. Clic droit de la souris en dehors des tableaux (sur le fond blanc).
  2. Formater les filtres.
  3. Sélectionner global (application à tous les objets du rapport) ou le tableau concerné.
  4. Cliquer sur le bouton Ajouter.
  5. Choisir la variable Date qui subira le filtre.
  6. Cliquer sur le bouton Définir.
  7. Ouvrir la classe des Fonctions Date.
  8. Double clic sur la fonction MoisEntre(date1,date2).
  9. Se positionner avant la virgule pour indiquer le paramètre Date1.
  10. Sélectionner la variable Date à tester.
  11. Se positionner après la virgule pour indiquer le paramètre Date2.
  12. Double clic sur la fonction DateActuelle() en version Xi ou DateCourante() pour ceux qui sont en V5 ou V6 !!!
  13. Double clic sur l'opérateur <= et saisir 12.
  14. Valider par OK.
  15. Sortir des filtres par OK.

Les dates des 12 derniers mois sont filtrées

Mis à jour le 2 février 2008  par Bruno2r

Problème :

Si on fait un filtre complexe du type :
Sélectionnez
<période> = RéponseUtilisateur(FournisseurDeDonnées(<Variable de la requête>), "Question posée")

BO refuse le filtre et demande une réponse booléenne

Comment faire ?
En revanche, si on crée une variable testpériode à l'aide d'une des formules suivantes

Si la variable Annéemois est de type caractère :
Sélectionnez
= Si(RéponseUtilisateur(FournisseurDeDonnées( <Année> ) ,"Quelle période ?") = <Annéeemois> ) Alors 1 Sinon 0
Si la variable Annéemois est de type numérique :
Sélectionnez
= Si(EnNombre(RéponseUtilisateur(FournisseurDeDonnées( <Année> ) ,"Quelle période ?")) = <Annéeemois> ) Alors 1 Sinon 0
Il suffit ensuite de poser un filtre :
Sélectionnez
<testpériode> = 1

Cerise sur le gateau :
Ca marche aussi pour les alerteurs, ce qui permet de mettre en gras les lignes correspondant à la période choisie par l'utilisateur dans le tableau affichant toutes les périodes

Créé le 14 juillet 2008  par Bruno2r

Pour poser des filtres complexes qui ne sont pas acceptés dans BO comme :

 
Sélectionnez

[variable1]>[variable2]

ou

 
Sélectionnez

[variable]=(max([variable]) IN ([month]))

Il faut créer une variable qu'on filtrera sur la valeur 1 ou 0 dont la formule est :

 
Sélectionnez

=IF(condition a tester;1;0)
Créé le 10 juillet 2013  par EmmanuelleC
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.