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 30/06/2011, 00h43   #1
Invité régulier
 
Inscription : août 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 27
Points : 8
Points : 8
Par défaut Formatage d'un second axe Y

Bonjour,
j'ai dans un chart deux axes Y.
Un qui doit s'exprimer en Numérique et l'autre en HH:MM:SS.
En script j'utilise :
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
function beforeDrawAxisLabel( axis, label, icsc )
{
	importPackage(Packages.org.eclipse.birt.chart.model.attribute); 
 
	if (axis.getType() == AxisType.LINEAR_LITERAL ){
		var str =label.getCaption().getValue();
	str = str+'';
    str = str.replace(/\s+/g, "");
	var seconds = parseInt(str);
		var hours = 0;
		var minutes = 0;
		if (seconds / 3600 >= 1) {
			hours = Math.floor(seconds / 3600);
			seconds = seconds % 3600;
		}
		if (seconds / 60 >= 1) {
			minutes = Math.floor(seconds / 60);
			seconds = seconds % 60;
		}
		if (hours < 10)
			hours = "0"+hours;
		if (minutes < 10)
			minutes = "0"+minutes;
		label.getCaption().setValue(hours+":"+minutes);
	}
}
Qui met les axes au format HH:MM:SS. Comment fait t on pour préciser que l'on veut uniquement le second axe Y dans ce format? Merci
iReporter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 14h26   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Bonjour,

Le formatage par les scripts n'est pas une bonne solution.

Tu édites ton graphique et tu vas dans l'onglet Format Chart > Chart Area > Axis :
  • Y-Axis 1 : Type : Linear
  • Y-Axis 2 : Type : DateTime (Format > Advanced : HH:mm:ss)
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h05   #3
Invité régulier
 
Inscription : août 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 27
Points : 8
Points : 8
Bonjour,
Je précise que je dois calculer une durée en HH:MM:SS à partir de secondes c'est pour que j'utilise les scripts.
J'ai trouvé pour l'axe :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	if (axis.getTitle().getCaption().getValue() == "axe2") { 
 
		var str =label.getCaption().getValue();
	str = str+'';
    str = str.replace(/\s+/g, "");
	var seconds = parseInt(str);
		var hours = 0;
		var minutes = 0;
		if (seconds / 3600 >= 1) {
			hours = Math.floor(seconds / 3600);
			seconds = seconds % 3600;
		}
		if (seconds / 60 >= 1) {
			minutes = Math.floor(seconds / 60);
			seconds = seconds % 60;
		}
		if (hours < 10)
			hours = "0"+hours;
		if (minutes < 10)
			minutes = "0"+minutes;
		label.getCaption().setValue(hours+":"+minutes);
	}
}
Mais pour le label des points (beforeDrawDataPointLabel)je trouve aucunes fonction qui me permet de dire par exemple si c'est la série = 'serie2' alors affiche moi les label en HH:MM:SS. Une idée?
iReporter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h51   #4
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Par contre, tu peux faire un formattage automatique sur des millisecondes donc tu fais à la sélection de ta colonne (ou avec une colonne calculée dans le databinding) *1000. Et après, tu peux calculer, un formattage là dessus.

N'oublie pas de mettre GMT (au lieu de GMT +1 ou 2).
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h12   #5
Invité régulier
 
Inscription : août 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 27
Points : 8
Points : 8
Ok mais cette méthode donne une date. Moi je traite un durée en secondes.
iReporter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h21   #6
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Tu t'en fiches, ce n'est que pour une question de rendu au final.

Tu formattes ta date de sorte à ne voir que les heures, minutes et secondes comme expliqué plus haut.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 16h23   #7
Invité régulier
 
Inscription : août 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 27
Points : 8
Points : 8
Je ne comprends pas.
j'ai fait ce que tu m'as dit histoire de tester j'ai créer un nouveau champ ( new Date(monchamp*1000)) et j'ai modifier le formatage(HH:mm:ss). Et comme ce que je pensais on obtient une date et pas une durée calculée en HH:MM:ss a partie de mon champ en secondes.
iReporter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 15h25   #8
Invité régulier
 
Inscription : août 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 27
Points : 8
Points : 8
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
function beforeDrawDataPointLabel(dph, label, icsc)
{
if (  dph.getSeriesValue()=="seri2")
{
 
	var str =label.getCaption().getValue();
	str = str+'';
    str = str.replace(/\s+/g, "");
	var seconds = parseInt(str);
	var hours = 0;
	var minutes = 0;
	if (seconds / 3600 >= 1) {
		hours = Math.floor(seconds / 3600);
		seconds = seconds % 3600;
	}
	if (seconds / 60 >= 1) {
		minutes = Math.floor(seconds / 60);
		seconds = seconds % 60;
	}
	if (hours < 10)
		hours = "0"+hours;
	if (minutes < 10)
		minutes = "0"+minutes;
	if (seconds < 10)
		seconds = "0"+seconds;
	label.getCaption().setValue(hours+":"+minutes);
 
}
}

Merci!
iReporter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web