Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
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 29/09/2011, 13h29   #1
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Par défaut DateTime dans Birt

Bonjour,

je débute dans birt, Je génère un graphe avec la Classe Edition (Bérénice MAUREL http://business-intelligence.develop...eneration_j2ee) depuis un fichier CSV qui contient : champ1, champ2, datetime (exemple : 08/10/11 15:26:49)

Je voudrais avoir en entré une date debut et fin pour pouvoir choisir les lignes CSV a afficher.


Ma question c'est quel type je doit choisir pour la date? en java et sous BIRT dans le rapport?
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h00   #2
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Salut,

Pour conserver le détail de l'heure il faut utiliser le type Datetime sous Birt, et le type java correspondant est Timestamp (java.sql.Timestamp)

Bon courage a+
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h26   #3
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Citation:
Envoyé par donino Voir le message
Salut,

Pour conserver le détail de l'heure il faut utiliser le type Datetime sous Birt, et le type java correspondant est Timestamp (java.sql.Timestamp)

Bon courage a+
Avec Timestamp ça marche j'ai pas d'erreurs d’exécution.

Le temps est affiché sur l'axe X, si je fait un if sur dateDebut<row["timestamp"] mon graphe afficheras que les ligne supérieur a la dateDebut?

Si ça marche de cette manière j'arrive pas a comparé : row["timestamp"] avec params["dateDebut"].value j'ai essayer avec plein de méthodes javascript : getTime()...
Une solution?
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h45   #4
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Citation:
Le temps est affiché sur l'axe X, si je fait un if sur dateDebut<row["timestamp"] mon graphe afficheras que les ligne supérieur a la dateDebut?
C'est bien ça, tu peux appliquer ce filtre dans le dataset ou dans le graphe.

Citation:
Si ça marche de cette manière j'arrive pas a comparé : row["timestamp"] avec params["dateDebut"].value j'ai essayer avec plein de méthodes javascript : getTime()...
Une solution?
dateDebut est bien déclaré en Datetime (pas en Date simple)? Assures toi bien que timestamp est déclaré aussi en Datetime dans le dataset
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h12   #5
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Citation:
Envoyé par donino Voir le message
dateDebut est bien déclaré en Datetime (pas en Date simple)? Assures toi bien que timestamp est déclaré aussi en Datetime dans le dataset
Le parametre dateDebut est declaré DateTime et aussi timestamp est declaré en DateTime dans le DataSet.

Maintenant pour filtrer les lignes j'utilise le filtre dans l’édition de mon chart et je fait :
row["timestamp"] Greater than params["debut"].value
ou
row["timestamp"].getTime() Greater than (params["debut"].value).getTime()

En vain ca filtre pas mes dates
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h00   #6
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
J'arrive plus ou moins à reproduire ce problème. Je fais quelques essais de mon coté et je te tiens au courant
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h18   #7
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Citation:
Envoyé par donino Voir le message
J'arrive plus ou moins à reproduire ce problème. Je fais quelques essais de mon coté et je te tiens au courant

Merci de ton implication.
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h16   #8
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Voila,

et bien merci à toi j'ai pu corriger un petit bug de mon appli sur ce type de paramètre grâce à ce cas

Il s'avère que par exemple le test ci dessous renvoie toujours faux quelle que soit la valeur donnée au paramètre "datetime" issu d'un timestamp java:

Code :
params["datetime"].value>BirtDateTime.now()
Il ne s'agit pourtant pas d'une erreur de format de saisie puisque en effectuant le test suivant les résultats sont cette fois corrects:

Citation:
params["datetime"].value.getTime()>BirtDateTime.now().getTime()
Je suggère donc d'utiliser getTime() pour effectuer les filtres et cela devrait fonctionner. Mais puisque tu as déjà fait ce test sans succés, la seule explication est que l'un des 2 composants retourne null. Affiche donc dans ton rapport:
params["dateDebut"].value.getTime() dans un libellé text dynamique
row["timestamp"].getTime() par exemple dans une colonne calculée

Avec ces informations tu trouveras très facilement pourquoi le test ne passe pas. C'est sans doute row["timestamp"].getTime() qui sera vide, soit parce que le format de la colonne n'est pas celui attendu par Birt, soit parce que birt n'autorise pas d'appliquer .getTime() directement sur row["timestamp"], même si il a été déclaré avec le bon type dans le dataset (auquel cas il faudra peut être faire un truc genre new date(...) )...

Tiens nous au courant bon courage!
donino 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 20h51.


 
 
 
 
Partenaires

Hébergement Web