JasperSoft | BI experience

Archive pour la catégorie ‘JasperSoft’

Jaspersoft : rendre les rapports un peu plus dynamiques avec les hyperlinks

Mardi 18 mai 2010

Les rapports construits avec iReport et publiés sur Jasperserver sont des rapports assez statiques. Pour que l’utilisateur est une impression de dynamisme, l’option “liens hypertextes ou hyperlinks” peut être intéressante.

Dans ce post nous allons voir quelques exemples d’utilisation d’hyperlink.

  • Pour créer un rapport hyperlink qui va exécuter un autre rapport

L’exemple qui suit est basé sur la base de données : sugarcrm

1) Créer un  sous premier rapport (qui sera ensuite appelé dans un rapport main) qui continent un PiChart par exemple avec la requête suivante en dataset :

/*************************************/

SELECT
sales_state,
SUM(amount) as amount
FROM
sales_fact
INNER JOIN sales_person ON sales_person.id = sales_fact.sales_person_id
INNER JOIN sales_state ON sales_state.id = sales_fact.sales_state_id
WHERE
sales_state.id > 1 AND sales_state.id < 8
GROUP BY
sales_state

/*********************************/

2) Faire un Clique droit sur le graphique >Chart Data > Détails > Section Hyperlink.

  • Dans hyperlink target choisir :  Self = dans la même page ou  blank = dans une nouvelle page
  • dans hyperlink type mettre “Report Exectution”
  • Puis dans dans l’onglet link parameters mettre : _report et l’emplacement de son report “/reports/myExamples/hyperlink2″
  • Et enfin ajouter un second paramètre sales_state ou l’on précisera $F{sales_state}

piechart_hyperlink1

3) Ensuite il faudra créer un second report avec un “input control” juste lisible pour que le passage de paramètre puisse se faire correctement dans la requête

input_control

huperlink_rapports

Et c’est ainsi que lorsque l’utilisateur va cliquer sur une partie du camembert, le paramètre sera envoyé au second rapport “hyperlink2″ qui sera ensuite exécuté et ouvert.

  • Pour créer un hyperlink dans un même rapport d’un texfield vers un autre textfield par exemple (qui sera dans le même rapport ou dans un sous rapport)

1)Créer le texfield qui sera le lien faire clique droit dessus et mettre dans l’onget anchor >hyperlink anchor expression un identifiant unique dans le rapport exemple “coucou test”

hyperlink_simple1

2) Puis créer le textfield cible avec clique droit anchor name expression “coucou test” et le tour est joué !

hyerlink_simple2

  • Faire un lien qui pointe sur un document présent sur la plateforme

Comme vous pouvez le voir ci-dessous nous avons exécuter le rapport (en passant par le scheduler) pour créer une instance de ce rapport en PDF.

arbo_rapportsPuis je vais faire pointer un textfield sur ce document en faisant :

hyperlink3

Ll’hyperlink expression est l’adresse indiquée  lors de l’exécution d’hyperlink.pdf

  • Hyperlink vers une page Internet

page_internet

J’espère que ce post vous aura donné une petite vision de ce qu’il est possible de faire avec les hyperlinks proposés dans iReport.

Si vous avez d’autres astuces n’hésitez pas à poster!

Un point sur la solution Jaspersoft 3.7 version professionelle

Lundi 19 avril 2010

La restitution est le résultat du travail acharné de la MOA, MOE et des développeurs. Le choix de l’outil pour créer et afficher cette restitution est toujours difficile.

Pour la restitution nous avons misé sur la solution Jaspersoft. Nous avons actuellement la version 3.7 professionnelle.

Après un an de développement de rapports, nous avons été forcé de constater que notre plateforme de développement n’était pas toujours très stable.

Avant de mettre les rapports en production, nous avons fait intervenir un architecte afin qu’il fasse des tests de montée en charge. Le but étant de pouvoir agir en conséquence soit sur la base de données, soit sur le matériel, l’application TOMCAT…

Afin de réaliser les tests, nous lui avons fourni un rapport d’une dizaine de pages, d’une dizaine de sous rapports à exécuter.

Le temps nominal d’exécution de ce rapport était de 7 secondes. L’architecte a donc simulé l’attaque du serveur par plusieurs utilisateurs qui exécuteraient en même temps ce rapport. Il a joué sur plusieurs paramètres :  la fréquence, le nombre de rapports exécutés en même temps.

Lors de la génération de 10  rapports de ce genre en même temps  le temps de réponse s’en ait trouvé très fortement dégradé et certaines des demandes ne sont pas traitées et renvoyées directement en échec.

L’architecte s’est rendu compte que Jasperserver  :

  • ne permet pas de limiter le nombre de rapports générés simultanément
  • ne permet pas d’isoler l’IHM et le traitement des rapports
  • ne dispose pas de mécanisme de file d’attente

Si le serveur ne tombe pas actuellement dans ces conditions, c’est grâce à un nombre de pool de connexion limité à 5 dans les fichiers de configuration de Jaspersoft.

Nous avons donc contacté Jaspersoft avec l’architecte. Pour pallier à ces problèmes ils  nous ont donc recommandé d’augmenter la JVM dans TOMCAT(configurer JAVA_OPTS dans <TOMCAT>/bin/setclasspath.sh) ainsi que d’augmenter la puissance de notre hardware.

Ces problèmes Jaspersoft les traitera dans les prochaines versions. En attendant il faudra passer par un fork en faisant appel à des solutions standards pour ajouter les options que Jasperserver ne gère pas actuellement. En effet nous avions proposé de développer une solution chez nous puis de la reverser à la communauté mais  leur système de validation à l’air très compliqué et cela pourrait prendre trop de temps à être accepté. Ils préfèrent développer ces options en interne.

Voici l’architecture finalement attendue :

architecture_jasper2

JasperServer-pro 3.7

Dimanche 10 janvier 2010

Dès ce début Janvier Jasperspoft sort une nouvelle version de son logiciel :

Jasperserver pro 3.7 donnera accès à :

  • un rapport d’Audit sur l’utilisation des rapports
  • à une fonction help pour les utilisateurs
  • dans l’utilisation des domaines l’utilisateur pourra utiliser des filtres, des liens hypertext, faire des requêtes MDX pour les topics, pourvoir ajouter du texte
  • des maps de type fusion maps (voir le précédent post), widget pro et des charts pro
  • l’utilisateur pourra rencontrer des cascading parameters (des input control liés entre eux => exemple : l’utilisateur choisi le pays puis il aura accès aux villes de ce pays seulement) que le développeur aura pu créer avec iReport professional 3.7

Le but de jaspersoft est de remplacer l’exploitation jpivot par celle du requêteur ad-hoc.

J’espère vous mettre d’autres informations sur cette nouvelle version lors de l’utilisation de cette dernière. En effet nous sommes actuellement en train de faire l’update.

Première installation de Jasperserver-pro 3.5.1

Mardi 17 novembre 2009

Ayant installé la version professionelle  de Jasperserver, je voulais juste faire un récapitulatif des étapes à suivre:

1)Installer APACHE-TOMCAT
2)Installer le SGBD où sera la base de données référentiel de Jasperserver.
3)Créer la base données : jasperserver_pro pour ce faire il faudra configurer le fichier master_default.properties. Un exemple fournit dans jasperserver-pro-3.5.1-bin/buildomatic/sample_conf : (la déclaration du home de Tomcat dans ce fichier est très importante)
/*******petit exemple*********************/
appServerDir = C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0
#appServerDir = /home/devuser/apache-tomcat-6.0.18
# actual db we’re using
dbType=mysql
# other db-related parameters
dbUsername=root
dbPassword=toor
dbHost=localhost
# other params have defaults in db props file but can be overridden here
# dbPort=3306 (default value)
dbPort=3307

/*********************************************************/

Ce fichier master_default.properties devra être placé  dans jasperserver-pro-3.5.1-bin/buildomatic/

Puis en ouvrant la console cmd vous exécuterez les commandes suivantes mais attention votre application server (Tomcat, Jboss) doit être arrêté :

  • js-ant create-js-db
  • js-ant create-sugarcrm-db
  • js-ant create-foodmart-db
  • js-ant load-sugarcrm-db
  • js-ant load-foodmart-db
  • js-ant update-foodmart-db
  • js-ant init-js-db-pro
  • js-ant import-minimal-pro
  • js-ant import-sample-data-pro
  • js-ant deploy-webapp-pro => Jasperserver-pro va être déployé dans votre application server

4)Mettre le driver de la base de données dans le dossier  lib de TOMCAT (exemple : mysql-connector-java-5.1.5.jar pour MySQL)

7) Placer la licence aux emplacements indiqués lors de la première connexion à http://host:8080/jasperserver-pro/

Si des problèmes persistent, n’hésitez pas à consulter les logs de tomcat présent dans : tomcat >logs >host.xxxx-xx-xx.log

Grâce à ces commandes js-ant tout est automatisé!

les styles d’iReport sous toutes ses coutures

Vendredi 30 octobre 2009

Lors de la création d’un rapport, le choix s’offre à nous de personnaliser toujours plus la mise en page. Pour ce faire iReport nous propose soit de faire la modification directement dans les propriétés de l’objet, soit de créer des styles.

Ces styles pourront être réutilisés sur plusieurs objets d’un rapport rapidement et facilement avec une technique du drag and drop des différents styles sur ces objets.

Lors de la création de styles, le développeur pourra avoir deux approches :

  • soit il traitera de styles créés spécialement pour le rapport qu’il est en train de créer (dans le menu ci-dessous correspond à “style”)
  • soit pour une problématique d’uniformisation des styles des rapports, un template de style pourra être créé. (dans le menu ci-dessous correspond à “style reference”)

menu_style

Cas pratique: avec la base de données sugarcrm fournit dans ireport community, créez un rapport avec la requête suivante :

“SELECT user_name, last_name, title FROM users”

rapport

Prenons dans un premier temps le cas du style simple :

menu_style2

propriete_titre

Puis le cas d’un style conditionnel

conditional_style1

conditional_style2

style_prenom_result

Et voici le résultat

result_rapport

Comme nous l’avons mis plus haut afin d’uniformiser la pagination des rapports, iReport permet de créer des templates :

Outil >modeles>report>Style template

Si vous voulez plus de détails techniques, n’hésitez pas à aller voir dans JasperReports Ultimate Guide Third Edition p47

Exemple de styles créer dans le template (template.jrtx)

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE jasperTemplate PUBLIC “-//JasperReports//DTD Template//EN” “http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd”>

<jasperTemplate>

<style name=”titre” isDefault=”false” mode=”Opaque” forecolor=”#FFFFFF” backcolor=”#003399″
scaleImage=”RetainShape” hAlign=”Center” vAlign=”Middle” rotation=”None” lineSpacing=”Single” markup=”styled”
fontSize=”10″ isBold=”false” isItalic=”false” isUnderline=”false” isStrikeThrough=”false”/>

<style name=”titre2″ isDefault=”false” mode=”Opaque” forecolor=”#003399″ backcolor=”#FFFFFF”
hAlign=”Center” vAlign=”Middle” rotation=”None” lineSpacing=”Single” markup=”styled” fontSize=”10″
isBold=”false” isItalic=”false” isUnderline=”false” isStrikeThrough=”false”/>

</jasperTemplate>

Dans le menu Fenêtre vous pourrez remarquer le présence d’une fenêtre appelée Styles Library.

Cette fenêtre permettrait de faire le lien avec ce fichier .jrtx (le template de style) présent sur le serveur : JasperServeur avec l’utilisation de ces styles en local.

En effet il faudrait juste copier coller les styles créer du template dans cette fenêtre pour avoir les styles en local lors de la création d’un nouveau rapport.

Si j’écris au conditionnel, c’est parce que cette fenêtre n’est pas encore utilisable en ces termes dans la version 3.6.0. D’après JasperSoft ce problème sera réglé dans la version 3.6.1. Soyons patient!

Donc voici la une astuce pour voir les styles créés dans le template en local.

1) Insérer le template en faisant comme plus haut Style>Style reference en indiquant avec une adresse locale (du type : C:\montemplatedestyles.jrtx) le fichier que vous aurez créé au préalable en passant par le menu Outil > Modele >>report>Style template.

2) Ce fichier devra être aussi insérer dans JasperServer dans un dossier styles par exemple que vous aurez créé dans l’arborescence.

3) Lors de l’enregistrement du rapport sur le serveur il faudra remettre une adresse qui indiquera sa place dans le repository (du type : “repo: styles/montemplatedestyles.jrtx)

Et si ce rapport doit être repris par la suite en local avec iReport n’oubliez de jongler avec les deux types d’adresses :

  • C:\montemplatedestyles.jrtx (ou l’on aura accès au styles pour faire du drag and drop en local)

menu_style_ref

  • “repo: styles/montemplatedestyles.jrtx (ou lors de la compilation sur Jasperserver, ce dernier trouvera la référence à ces styles)

propriete_menu_style_ref2


L’utilisation des styles peut vraiment améliorer le temps de création d’un rapport, alors pour plus de productivité, n’hésitez pas à créer vos templates !