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 04/01/2012, 15h02   #1
Invité de passage
 
Homme cyril Buisset
Ingénieur d'étude
Inscription : décembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme cyril Buisset
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : décembre 2011
Messages : 21
Points : 0
Points : 0
Par défaut Visibilité ou pas d'entetes colonnes

Bonjour,

dans un rapport, j'ai une table; je souhaite que la ligne entête de cette table ne soit visible que si au moins un enregistrement est trouvé dans la partie détail de cette table, comment paramétrer cela ?
je vois qu'il y a un paramètre visibility au niveau de la ligne de la table et qu'on peut coder une fonction 'Fx' mais je ne suis pas un cador en SQL et je ne sais pas coder ce que je souhaite;
si quelqu'un peut me renseigner ou m'aiguiller ?
par avance merci beaucoup
Hawaisunset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 16h05   #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 ce genre de chose je pense qu'il faut utiliser des scripts. Donc sélectionner la table->onglet script, et il faut écrire des petits scripts dans chacun des 3 évènements onPrepare, onCreate, onRender. L'idée est de créer une variable globale à 0 dans le "onPrepare", qui passe à 1 dans le "onCreate" si au moins une ligne existe, et de désactiver la visibilité dans le "onRender" si la var est toujours à 0.

Je n'ai malheureusement pas d'exemple sous la main pour une table, celui ci dessous fonctionne pour les crosstabs, tu devrais pouvoir l'adapter :

onPrepare
Code :
1
2
3
4
function onPrepareCrosstab( crosstab, reportContext )
{
	reportContext.setPersistentGlobalVariable("displayWidgets", "0");
}
onCreate
Code :
1
2
3
4
5
6
function onCreateCell( cellInst, reportContext )
{
	if( cellInst.getCellType() == "aggregation"){
		reportContext.setPersistentGlobalVariable("displayWidgets", "1");	
	}
}
onRender
Code :
1
2
3
4
5
6
7
function onRenderCrosstab( crosstabInst, reportContext )
{
	var display = reportContext.getPersistentGlobalVariable("displayWidgets");
	if( display == "0" ){
		crosstabInst.getStyle().display = "none";
	}
}
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2012, 03h44   #3
Membre régulier
 
Avatar de adil_vpb
 
Inscription : août 2006
Messages : 315
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : août 2006
Messages : 315
Points : 80
Points : 80
Envoyer un message via MSN à adil_vpb Envoyer un message via Yahoo à adil_vpb
Bonsoir,
C'est très intéressant ! Merci, cependant, je souhaite travailler avec ces scripts :
Code :
1
2
reportContext.setPersistentGlobalVariable("var_name", value);
reportContext.getPersistentGlobalVariable("var_name");
Mon cas c'est de stocker une valeur d'une agrégation dataSetRow["montant_comput"] , afin de la réutiliser dans une zone Data qui se trouve en bas, comment puis-je faire ceci ?

Merci d'avance.
__________________
On est là pour partager notre savoir-faire !
adil_vpb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 12h07   #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
Salut,
Il faut cliquer sur la cellule contenant l'agrégation, et affecter la variable gobale dans l'évènement onRender:
Code :
reportContext.setPersistentGlobalVariable("var_name", this.getValue());
On peut ensuite l'invoquer dans l'évènement onRender des objets où on veut l'utiliser. Par exemple dans une zone texte:
Code :
this.text=reportContext.getPersistentGlobalVariable("var_name");
D'ailleurs dans ce cas précis il n'est pas indispensable de l'utiliser en "Persistent".
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 03h57.


 
 
 
 
Partenaires

Hébergement Web