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 20/08/2007, 12h27   #1
Invité régulier
 
Inscription : juillet 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 23
Points : 6
Points : 6
Par défaut [2.2.0] Conversion de types (String<->Date) dans BIRT ?

Bonjour,

je fais des rapports dans BIRT avec une JDBC Data Source connectée à une base Lotus avec driver ODBC.
Je récupere différentes dates dans mon DataSet et je voudrais calculer des délais.
Mes dates sont au format 2006-05-20
je me dirige alors vers la section "computed columns", ou je crée une colonne appelée Délai et je mets naivement row["date1"]-row["date2"] en guise d'expression, et je n'arrive a rien.
Quelque soit le data type que je donne à la colonne, je n'arrive pas a récupérer des valeurs pertinentes.
type "DateTime" -> erreur SQL : "The data type of computed column "Delai" is java.util.Date, but one of its value is "NaN", which cannot be converted to java.util.Date"
type "Date" -> erreur SQL aussi, mais avec java.sql.Date
type "Any" -> la requete marche mais sort NaN pour tous les resultats
type "String" -> idem

les autres types (Integer, Float...) j'ai pas essayé.

Il semblerait que mes dates soient récupérées sous forme de type String, et non de Date. Je pense que c'est en amont de BIRT.
Dans "Output columns", quand je clique sur ma Date, il est écrit que le type de la donnée est String. Ce champ est grisé, je ne peux pas le changer.

D'ou ma question : peut-on convertir le type d'un champ de DataSet ? j'entends par là le faire en amont, au niveau du DataSet, pas au niveau de la mise en page (car là jai cru voir qu'on peut choisir le format de Date), puisque j'ai besoin de faire des calculs dessus.

Bien entendu si vous avez d'autres idées que celle-là pour résoudre mon probleme, elles sont bienvenues.


Merci !
drkarma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 12h42   #2
Invité régulier
 
Inscription : juillet 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 23
Points : 6
Points : 6
J'essaie aussi de le faire directement en SQL dans la requete (tant pis pour Computed columns)


J'ai tenté la fonction to_Date : select to_date(VUNV800."_88","YYYY-MM-DD")
BIRT n'aime pas du tout : la requete ne marche pas et le message d'erreur dit "FROM clause expected"

il me sort la meme chose avec CAST(VUNV800."_88" AS DATE)
drkarma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 17h12   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 5
Points : 3
Points : 3
vu le message que Birt te met tu as du oublier de mettre un FROM dans ton select si je comprends bien le nom de ta btable est VUNV800, alors t'as requete de sélection de la date doit etre :
select to_date(VUNV800."_88","YYYY-MM-DD") FROM VUNV800;
delphine7983 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 17h37   #4
Invité régulier
 
Inscription : juillet 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 23
Points : 6
Points : 6
Merci d'avoir répondu, mais non, justement, je n'ai pas oublié le FROM

La requete
select to_date(VUNV800."_88","YYYY-MM-DD") FROM VUNV800;
ne marche pas
drkarma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 18h01   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 5
Points : 3
Points : 3
Je sais que parfois il faut utiliser les cotes à la place des guillemets :

select to_date(VUNV800."_88",'YYYY-MM-DD') FROM VUNV800;
delphine7983 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 11h33   #6
Invité régulier
 
Inscription : juillet 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 23
Points : 6
Points : 6
j'ai essayé, ça ne change rien.
drkarma 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 09h07.


 
 
 
 
Partenaires

Hébergement Web